Text Operation Pengolahan Data

52

4.1.1.1 Text Operation

Tahap awal sebelum data masuk ke pengelompokan dokumen adalah memproses data mentah berupa dokumen menjadi matriks numerik berupa hasil pembobotan. Proses ini merupakan langkah dari information retrieval. Tahap information retrieval yang harus dilalui adalah : 1. Tokenizing Proses information retrieval diawali dengan membaca seluruh dokumen kemudian menyimpannya dalam sebuah matriks. Pada saat proses membaca data, tahap tokenizing dilakukan. Hal ini bertujuan untuk memenggal dokumen menjadi kata-kata yang berdiri sendiri. Berikut adalah implementasi dari proses tokenizing dengan menggunakan matlab. Data dokumen dibacauntuk dipisahkan atau dipenggal menjadi kata-kata yang mandiri. Kemudian dinormalisasi dengan lowercase atau membuat semua huruf menjadi kecil. Setelah itu karakter angka, tanda baca, dll harus dihapus. Hasil tokenizing kemudian disimpan di dataAwal.txt. Gambar 4.13 merupakan hasil visualisasi dari proses tokenizing for i=1:N baca dokumen alamatFile=strcat doc\ ,int2stri, .txt ; fileID = fopenalamatFile; Membuka file data = textscanfileID, s ; Membaca file fclosefileID; Menutup file data=data{1}; Memasukkan data ke dalam matriks data=regexprepdata, [.,?-+=\ :[];_12345678910­â­”—] , ; Menghilangkan tanda baca data=strtrimdata; datastrcmp ,data = []; Menghilangkan cell yang kosong data=lowerdata; Mengubah huruf besar menjadi kecil fid = fopen Data\dataAwal.txt , w ; 53 for row = 1:sizedata,1 fprintffid, repmat s\t ,1,sizedata,2-1, data{row,1:end-1}; fprintffid, s\n , data{row,end}; end fclosefid; Gambar 4.13 Hasil Tokenizing 2. Stop Word Proses stop word merupakan langkah lanjutan dari proses Tokenizing. proses ini membuang kata-kata yang tidak memiliki arti seperti halnya kata hubung. Pada tahap ini juga ditambahkan metode distribusi Zipf, yaitu melakukan pemotongan kata yang memiliki frekuensi kemunculan terlalu banyak maupun terlalu sedikit. Hal ini dilakukan untuk mencari ciri atau key word dari suatu dokumen. Pada penelitian ini digunakan dua buah range frekuensi kata. Range pertama 50-150 dan range ke dua 70-90. Batasan ini dipilih karena batasan tersebut paling optimum berdasarkan ujicoba yang telah dilakukan. Berikut 54 adalah implementasi dari stop word dan penggunaan zipf distribution dimana hasil dari proses tersebut dapat dilihat melalui gambar 4.14. cek data dengan kamus stop word yaTdk=ismembermatrixGabungan,kamusHubung; [m,n]=sizematrixGabungan; dataTemp=[]; z=1; for j=1:m if yaTdkj,1==0 dataTemp{z}=matrixGabungan{j}; z=z+1; end end hasilStem=dataTemp; potong frekuensi kata dengan batas atas dan batas bawah ======================================================= for i=1:m if jmlPerKataUniki,1batasAwalk,1 jmlPerKataUniki,1batasAkhirk,1 dataTemp2x,1=jmlPerKataUniki,1; dataTemp3{x,1}=kataUnik{i,1}; x=x+1; else dataTemp4y,1=jmlPerKataUniki,1; dataTemp5{y,1}=kataUnik{i,1}; y=y+1; end end jmlPerKataUnik= dataTemp2; kataUnik= dataTemp3; Gambar 4.14 Hasil Stop Word 55 3. Stemming Berdasarkan proses stop word, didapatlah matriks yang berisi kata-kata, namun kata-kata tersebut harus melalui sebuah tahap lagi yang dinamakan tahap stemming. Pada tahap ini setap kata akan dicek menggunakan stemmer Bahasa Jawa, dimana setiap imbuhan baik itu di awal, tengah, maupun akhir akan dihilangkan sehingga dihasilkan kata dasar. Proses berikutnya adalah pengecekan kata dasar ke kamus Bahasa Jawa, kata dasar yang tidak ada dalam kamus akan dihilangkan. Data awal yang digunakan diambil dari dataHasil.txt yang merupakan hasil dari proses sebelumnya. Setiap kata yang ada pada data awal dicek untuk menemukan kata dasar dengan menggunakan algoritma stememer bahasa Jawa yang diimplementasikan pada stemcoba.pl terlampir pada lampiran 7. Kata dasar yang terdapat di dalam kamus disimpan dalam matriks hasilStem untuk proses selanjutnya, yaitu pembobotan. Berikiut adalah implementasinya, untuk lebih jelasnya bisa dilihat gambar 4.15 perl stemcoba.pl ; fileID = fopen Data\dataHasil.txt ; data = textscanfileID, s ; fclosefileID; hasilStem=data{1}; hasilStem=regexprephasilStem, - , ; hasilStem=strtrimhasilStem; hasilStemstrcmp ,hasilStem = []; matrixFIle{i} = hasilStem; 56 Gambar 4.15 Hasil Stemming 4. Indexing Data yang dihasilkan proses stemming dilanjutkan dengan proses pembobotan. Proses ini diawali dengan menghitung frekuensi kata dari tiap kata yang pada tiap dokumen, kemudian dilanjutkan dengan mengalikannya dengan idf. Berdasarkan perhitungan tf dan idf , diterapkanlah rumus pembootanweight tf.idf. Data hasil dari proses stemming yang telah dibobot mengasilkan sebuah matriks, yang kemudian disebut sebagai calonData yang siap untuk digunakan di tahap clustering. Berikut adalah implementasinya, dimana hasil dari implementasi pembonbotan dapat dilihat pada gambar 4.16. countKataUnik = sumjmlPerKataUnik; [m,n]=sizejmlPerKataUnik; matrixBobot=zerosm,n; for i=1:m matrixBoboti=log10countKataUnikjmlPerKataUniki; end calonData=zerossizematrixBobot,1,N; 57 for i=1:N tempMatrixFile=matrixFIle{i}; [m,n]=sizetempMatrixFile; for j=1:m [row,~] = findismemberkataUnik,tempMatrixFilej,1; calonDatarow, i=matrixBobotrow,1; end end calonDataCell{k}=calonData; Gambar 4.16 Hasil Indexing

4.1.1.2 Hierarchical K Means