Skip to main content

Penerapan Text Mining Metode Cosine Similarity dan pembobotan TF-IDF

Penerapan Metode Cosine Similarity dan pembobotan TF-IDF

 

Kegiatan yang umum dilakukan oleh sebuah instansi adalah kegiatan pengarsipan dokumen, baik dokumen dalam bentuk fisik maupun elektronik. Umumnya kegiatan pengarsipan melibatkan dokumen dengan jumlah yang cukup besar, sehingga diperlukan suatu metode yang praktis dan efisien dalam pengelolaanya, seperti metode cosine similarity.

 

Pengklasifikasian dokumen elektronik dengan jumlah yang banyak diperlukan agar data yang terkumpul dapat diproses menjadi informasi yang tepat. Pengklasifikasian dokumen dilakukan dalam upaya memisahkan atau mengelompokkan dokumen berdasarkan ciri-ciri atau kategori tertentu. Dengan banyaknya dokumen proses pengklasifikasian tidak mungkin dilakukan secara manual karena memerlukan banyak waktu dan tenaga. Salah satu metode yang dapat digunakan adalah dengan pengklasifikasian secara otomatis dengan text mining. Banyak metode text mining yang digunakan dalam mengklasifikasikan dokumen atau teks, salah satunya adalah algoritma cosine similarity. Cosine Similarity dapat diimplementasikan untuk menghitung nilai kemiripan antar kalimat dan menjadi salah satu teknik untuk mengukur kemiripan  teks yang  popular.

 

Cosine Similarity adalah suatu metode untuk membandingkan kemiripan antar dokumen, dalam hal ini yang dibandingkan adalah query dengan dokumen latihan

 

Rumus Cosine Similarity

 

 

Contoh :

Berikut contoh query dan dokumen latihan. Sebelumnya saya jelaskan kembali, query merupakan kalimat yang digunakan sebagai kunci sedangkan dokumen latihan adalah dokumen yang disediakan dalam database (cara gampangnya kurang lebih begitu).

Query

MAMPU MELAKSANAKAN PEMELIHARAAN DISTRIBUSI TEGANGAN RENDAH

D1

ASSISTANT TECHNICIAN PEMELIHARAAN JARINGAN TEGANGAN RENDAH

D2

MELAKSANAKAN PROSES ADMINISTRASI PELANGGAN

D3

JUNIOR TECHNICIAN PENYAMBUNGAN DAN PEMUTUSAN/ JUNIOR TECHNICIAN PEMELIHARAAN DISTRIBUSI TEGANGAN RENDAH

D4

MELAKSANAKAN SETELMEN TRANSAKSI ENERGI LISTRIK

D5

ASSISTANT TECHNICIAN PEMELIHARAAN ALAT PENGUKURAN DAN PEMBATAS (APP)

 

Langkah-langkah penyelasaian sebagai berikut :

 

1. Tahap Proses Preprocessing

Tahap preprocessing memiliki tiga tahapan, adapun tahapannya sebagai berikut : tokenizing, filtering dang steaming.

Query dan dokumen latihan akan melewati tahapan tokenizing, filtering dan steaming untuk menghasilkan kata dasar.

Proses Tokenizing

Proses ini, query dan dokumen latihan diubah menjadih huruf kecil semua. Sampel sebagai berikut :

Sebelum

Menjadi

Sesudah

ASSISTANT

 

assistant

(APP)

 

app

PEMUTUSAN/

 

pemutusan

 

Hasil dari contoh :

assitant

junior

rendah

pengukuran

technician

technician

melaksanakan

dan

pemeliharaan

penyambungan

sentelemen

pembatas

jaringan

dan

transaksi

app

tegangan

pemutusan

energi

mampu

rendah

junior

listrik

melaksanakan

melaksanakan

technician

assistant

pemeliharaan

proses

pemeliharaan

technician

distribusi

administratsi

distribusi

pemeliharaan

tegangan

pelanggan

tegangan

alat

rendah

 

Proses Filtering

Proses filtering adalah semua kata penghubung preposisi, konjungsi, adjectiva, interjeksi, adverbia, verb dan pronomia yang terkandung dalam kata akan dihapus. Sampel sebagai berikut :


Sebelum

Sesudah

dan

dihapus

pembatas

pembatas

satu

satu

 

Hasil dari contoh :

assitant

junior

melaksanakan

pembatas

technician

technician

sentelemen

app

pemeliharaan

penyambungan

transaksi

mampu

jaringan

pemutusan

energi

melaksanakan

tegangan

junior

listrik

pemeliharaan

rendah

technician

assistant

distribusi

melaksanakan

pemeliharaan

technician

tegangan

proses

distribusi

pemeliharaan

rendah

administratsi

tegangan

alat

 

pelanggan

rendah

pengukuran

 

Proses Steaming

Proses Steaming adalah data dari hasil filtering akan diproses kembali melewati proses steaming. Di mana semua kata akan dicek, apakah kata mengandung imbuhan prefiks, infiks, sufiks dan konfiks. Jika kata mengandung imbuhan, maka imbuhan akan dipotong dan kata akan menjadi kata dasar. Sampel sebagai berikut :

Sebelum

Menjadi

Sesudah

pengukuran

 

ukur

pembatas

 

batas

jaringan

 

jaring

pembuatan

 

buat

 

Hasil dari contoh :

assitant

junior

laksana

batas

technician

technician

sentelemen

app

pelihara

sambung

transaksi

mampu

jaring

putus

energi

laksana

tegang

junior

listrik

pelihara

rendah

technician

assistant

distribusi

laksana

pelihara

technician

tegang

proses

distribusi

pelihara

rendah

administrasi

tegang

alat

 

 

langgan

rendah

ukur

 

2. Tahapan Hapus Duplikat dan TF-IDF

Setelah melalui tahap steaming, maka akan dicek apakah ada duplikat pada setiap kata. Duplikat pada setiap kata jika sudah terhapus maka akan dilanjutkan ke tahapan TF-IDF seperti pada Tabel dibawah ini :

A. Proses Term Frequency

Kata

tfq

tfd1

tfd2

tfd3

tfd4

tfd5

assitant

0

1

0

0

0

1

technician

0

1

0

2

0

1

pelihara

1

1

0

1

0

1

jaring

0

1

0

0

0

0

tegang

1

1

0

1

0

0

rendah

1

1

0

1

0

0

laksana

1

0

1

0

1

0

proses

0

0

1

0

0

0

administrasi

0

0

1

0

0

0

langgan

0

0

1

0

0

0

junior

0

0

0

2

0

0

sambung

0

0

0

1

0

0

putus

0

0

0

1

0

0

distribusi

1

0

0

1

0

0

sentelemen

0

0

0

0

1

0

transaksi

0

0

0

0

1

0

energi

0

0

0

0

1

0

listrik

0

0

0

0

1

0

alat

0

0

0

0

0

1

ukur

0

0

0

0

0

1

batas

0

0

0

0

0

1

app

0

0

0

0

0

1

mampu

1

0

0

0

0

0

 

Semua duplikasi di hapus, dan setiap kata akan di lihat kemiripannya dengan query dan dokumen.

B. Dokumen Frequency

Kata

df

assitant

2

technician

4

pelihara

4

jaring

1

tegang

3

rendah

3

laksana

3

proses

1

administrasi

1

langgan

1

junior

2

sambung

1

putus

1

distribusi

2

sentelemen

1

transaksi

1

energi

1

listrik

1

alat

1

ukur

1

batas

1

app

1

mampu

1

 

Hasil semua kemiripan akan dilakukan penghitungannya seperti tabel diatas.  Selanjutnya akan dihitung inverse document frequency (idf). Adapun perhitungan dengan contoh yang sudah ada sebagai berikut :

-Kata 1 : mampu

Dik : n = jumlah dokumen = 5

df = 1

Dit : idf =...?

Jawab :

Langkah 1 : n/df =5/1=5

Langkah 2 : idf = log(n/df)

       = log(5)

       = 0,6990

-Kata 2 : assistant

Dik : n = jumlah dokumen = 5

df = 2

Dit : idf =...?

Jawab :

Langkah 1 : n/df = 5/2 =2,5

Langkah 2 : idf = log (n/df)

       = log(2,5)

               = 0,3979

Berikut merupakan hasil Inverse Document Frequency :

Kata

n/df

idf=(log(n/df))

assitant

2,5

0,3979

technician

1,25

0,0969

pelihara

1,25

0,0969

jaring

5

0,6990

tegang

1,6667

0,2218

rendah

1,6667

0,2218

laksana

1,6667

0,2218

proses

5

0,6990

administrasi

5

0,6990

langgan

5

0,6990

junior

2,5

0,3979

sambung

5

0,6990

putus

5

0,6990

distribusi

2,5

0,3979

sentelemen

5

0,6990

transaksi

5

0,6990

energi

5

0,6990

listrik

5

0,6990

alat

5

0,6990

ukur

5

0,6990

batas

5

0,6990

app

5

0,6990

mampu

5

0,6990

 

Setelah melewati tahapan term frequency   dan inverse document frequency selanjutnya akan melewati tahapan proses bobot dokumen. Di dapat perhitungan seperti contoh dari tahapan sebelumnya sebagai berikut :

-Bobot Query : mampu

Dik : tfq = 1

      idf = 0,6990

Dit : wq = tfq *idf

       Wq = 1*0,69897 = 0,69897

-Bobot Dokumen : (wd1) : asistant

Dik : tfd1= 1

     idf =  0,3979

Dit : wd1 = tfd1 * idf

       Wd1 = 1 *  0,3979

   = 0,3979

Berikut merupakan hasil perhitungan bobot dokumen :

Kata

wq=

tfq*idf

wd1=

tfd1*idf

wd2=

tfd2*idf

wd3=

tfd3*idf

wd4=

tfd4*idf

wd5=

tfd5*idf

assitant

0

0,3979

0

0

0

0,3979

technician

0

0,0969

0

0,1938

0

0,0969

pelihara

0,0969

0,0969

0

0,0969

0

0,0969

jaring

0

0,6990

0

0

0

0

tegang

0,2218

0,2218

0

0,2218

0

0

rendah

0,2218

0,2218

0

0,2218

0

0

laksana

0,2218

0

0,2218

0

0,2218

0

proses

0

0

0,6990

0

0

0

administrasi

0

0

0,6990

0

0

0

langgan

0

0

0,6990

0

0

0

junior

0

0

0

0,7959

0

0

sambung

0

0

0

0,6990

0

0

putus

0

0

0

0,6990

0

0

distribusi

0,3979

0

0

0,3979

0

0

sentelemen

0

0

0

0

0,6990

0

transaksi

0

0

0

0

0,6990

0

energi

0

0

0

0

0,6990

0

listrik

0

0

0

0

0,6990

0

alat

0

0

0

0

0

0,6990

ukur

0

0

0

0

0

0,6990

batas

0

0

0

0

0

0,6990

app

0

0

0

0

0

0,6990

mampu

0,6990

0

0

0

0

0

 

jarak query dicari setelah pencarian bobot dokumen  Perhitungan jarak query dapat dilihat sebagai berikut :

Kata 1 : mampu

Dik : wq = 0,6990

Dit : |q|=..?

Jawaban : |q| =0,6990 2 = 0,4886

                 - Kata 2 : assistant

Dik : wq= 0

Dit : |q| =...?

Jawaban : |q|=02= 0

 

Berikut merupakan hasil perhitungan jarak query :

Kata

|q|

assitant

0

technician

0

pelihara

0,0094

jaring

0

tegang

0,0492

rendah

0,0492

laksana

0,0492

proses

0

administrasi

0

langgan

0

junior

0

sambung

0

putus

0

distribusi

0,1584

sentelemen

0

transaksi

0

energi

0

listrik

0

alat

0

ukur

0

batas

0

app

0

mampu

0,4886

Jumlah

0,8040

Akar

0,8966

 

Setelah mendapatkan bobot dokumen, selanjutnya akan di cari jarak dokumen. Berikut adalah contoh perhitungan jarak dokumen  :

Kata  1 :  mampu

Dik  : wd1 = 0

Dit : |dj| =...?

Jawab : |dj| = 02 = 0

Kata 2 : asistant

Dik : wd1 = 0,3979

Dit : |dj| =...?

Jawab = |dj| = 0,39792 = 0,1584

 

Berikut merupakan hasil perhitungan jarak dokumen:

Kata

wd1^2

wd2^2

wd3^2

wd4^2

wd5^2

assitant

0,1584

0

0

0

0,1584

technician

0,0094

0

0,0376

0

0,0094

pelihara

0,0094

0

0,0094

0

0,0094

jaring

0,4886

0

0

0

0

tegang

0,0492

0

0,0492

0

0

rendah

0,0492

0

0,0492

0

0

laksana

0

0,0492

0

0,0492

0

proses

0

0,4886

0

0

0

administrasi

0

0,4886

0

0

0

langgan

0

0,4886

0

0

0

junior

0

0

0,6334

0

0

sambung

0

0

0,4886

0

0

putus

0

0

0,4886

0

0

distribusi

0

0

0,1584

0

0

sentelemen

0

0

0

0,4886

0

transaksi

0

0

0

0,4886

0

energi

0

0

0

0,4886

0

listrik

0

0

0

0,4886

0

alat

0

0

0

0

0,4886

ukur

0

0

0

0

0,4886

batas

0

0

0

0

0,4886

app

0

0

0

0

0,4886

mampu

0

0

0

0

0

Jumlah

0,7641

1,5149

1,9143

2,0035

2,1314

Akar

0,8741

1,2308

1,3836

1,4154

1,4599

 

Selanjutnya akan dicari jarak dokumen query sebagai berikut :

  -Kata 1  : mampu

Dik : wq = 0,6990

       wd1= 0

Dit : q,dj =...?

Jawab :q,dj = wq*wd1

        = 0,6990 * 0 = 0

    -Kata 2 : assistant

Dik : wq = 0

       wd1= 0,3979

Dit : q,dj =...?

Jawab :q,dj = wq*wd1

        = 0*0,3979= 0

Hasil perhitungan jarak dokumen query adalah sebagai berikut :

Kata

wq*wd1

wq*wd2

wq*wd3

wq*wd4

wq*wd5

assitant

0

0

0

0

0

technician

0

0

0

0

0

pelihara

0,0094

0

0,0094

0

0,0094

jaring

0

0

0

0

0

tegang

0,0492

0

0,0492

0

0

rendah

0,0492

0

0,0492

0

0

laksana

0

0,0492

0

0,0492

0

proses

0

0

0

0

0

administrasi

0

0

0

0

0

langgan

0

0

0

0

0

junior

0

0

0

0

0

sambung

0

0

0

0

0

putus

0

0

0

0

0

distribusi

0

0

0,1584

0

0

sentelemen

0

0

0

0

0

transaksi

0

0

0

0

0

energi

0

0

0

0

0

listrik

0

0

0

0

0

alat

0

0

0

0

0

ukur

0

0

0

0

0

batas

0

0

0

0

0

App

0

0

0

0

0

Mampu

0

0

0

0

0

Jumlah

0,1078

0,0492

0,2662

0,0492

0,0094

 

3. Cosine Similarity

Langkah terakhir adalah melakukan cosine similarity untuk mendapatkan rekomendasi tingkat kemiripan suatu dokumen dengan query. Adapun perhitungan sebagai berikut :

-Dokumen 1 (d1)

Dik : q.d1 = 0,1078

  |q| = akar jarak query = 0,8966

d1 = akar jarak dokumen = 0,8741

Jawab : sim(q,d1)== 0,1051

 

Hasil perhitungan Cosine Similarity adalah sebagai berikut :

d1

d2

d3

d4

d5

0,1051

0,0675

0,4107

0,0777

0,0153

 

Hasil Rangking Cosine Similarity sebagai berikut :

d1

0,1051

Rangking 2

d2

0,0675

Rangking 4

d3

0,4107

Rangking 1

d4

0,0777

Rangking 3

d5

0,0153

Rangking 5

 

Kesimpulan :

Apabila menggunakan querry dan 5 dokumen latihan yang telah kita gunakan diawal. Maka dokumen latihan yang lebih mendekati ke query adalah dokumen no 3.

 

 

 

 

Comments

Popular posts from this blog

Apa Itu Text Mining ?

Text mining  adalah satu langkah dari analisis teks yang dilakukan secara otomatis oleh komputer untuk menggali informasi yang berkualitas dari suatu rangkaian teks yang terangkum dalam sebuah dokumen (Han & Kamber, 2006) .   Text mining  (penggalian teks) merupakan penggalian teks data yang bersifat tekstual. Text   mining  juga merupakan bidang yang sedang berkembang dan berpotensi besar bagi dunia bisnis. Text mining bekerja menggunakan data numerik (Sungkono, 2007) . Pada tahun 1996, Dow Chemical Company memulai proses text mining dengan mengakses ratusan ribu dokumen dari berbagai sumber, termasuk internet. Tujuan mereka adalah mendapatkan pengetahuan dan pola-pola informasi yang tidak dapat ditemukan menggunakan perangkat basis data atau mesin pencarian konvensional. Dow  kemudian mampu mencari pelanggan-pelanggan baru, teknologi baru, dan mitra bisnis baru melalui text mining . Dow juga mampu mengidentifikasi tren pasar yang tidak dapat dideteksi...

Penetration Testing dengan Tools OWASP ZAP

OWASP Zed Attack Proxy (ZAP) adalah salah satu alat keamanan gratis paling populer di dunia dan dikelola secara aktif oleh tim sukarelawan internasional yang berdedikasi. OWASP ZAP dapat membantu Anda secara otomatis menemukan kerentanan keamanan dalam aplikasi web Anda saat Anda mengembangkan dan menguji aplikasi Anda. OWASP ZAP juga merupakan alat yang hebat untuk pentester berpengalaman untuk digunakan untuk pengujian keamanan manual atau audit suatu website.   Cara penggunaan aplikasi OWASP ZAP sangat mudah, berikut langkah langkah penggunaan aplikasi OWASP ZAP : 1.  Buka tampilan tools/ aplikasi OWASP ZAP 2.  Selanjutnya pilih “Yes, I want persist this session with name based on the current timestamp” -> lalu klik start 3.  Lalu pilih Automated Scan setelah itu sediakan url atau IP yang akan dilakukan pentest 4.  Masukkan alamat yang akan anda lakukan pentest, seperti gambar dibawah ini, lalu klik attack. 5.  Hasil pentest terlihat seperti gambar di...

Pengetahuan Dasar Cyber Security (Keamanan Sistem Informasi)

Haiii mina. Penulis mau update lagi nih. Ini soal Keamanan Sistem Komputer yang dibahas pada pertemuan pertama. Tapi sayangnya Penulis tidak dapat hadir dalam perkuliahan hari itu karena ada urusan dari kampus, eh sok sibuk. Hehehe.. Yuk kita kembali ke topik aja.          Keamanan Sistem Komputer merupakan sebuah upaya yang dilakukan untuk mengamankan kinerja,fungsi atau proses komputer. Keamanan komputer memberikan persyaratan terhadap komputer yang berbeda dari kebanyakan persyaratan sistem karena sering kali berbentuk pembatasan terhadap apa yang tidak boleh dilakukan komputer. Ini membuat keamanan komputer menjadi lebih menantang karena sudah cukup sulit untuk membuat program komputer melakukan segala apa yang sudah dirancang untuk dilakukan dengan benar. Persyaratan negatif juga sukar untuk dipenuhi dan membutuhkan pengujian mendalam untuk verifikasinya, yang tidak praktis bagi kebanyakan program komputer. Keamanan komputer memberikan strategi te...