clustering dokumen ringkasan tesis mahasiswa

advertisement
CLUSTERING DOKUMEN RINGKASAN TESIS MAHASISWA
PASCASARJANA IPB BERBASIS FREQUENT ITEMSETS
MENGGUNAKAN ALGORITME BISECTING K-MEANS
ARI SETIAWAN
SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2016
PERNYATAAN MENGENAI TESIS DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa tesis berjudul Clustering Dokumen
Ringkasan Tesis Mahasiswa Pascasarjana IPB berbasis Frequent Itemsets
menggunakan Algoritme Bisecting K-Means adalah benar karya saya dengan
arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada
perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya
yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam
teks dan dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Mei 2016
Ari Setiawan
NIM G651120051
RINGKASAN
ARI SETIAWAN. Clustering Dokumen Ringkasan Tesis Mahasiswa Pascasarjana
IPB berbasis Frequent Itemsets menggunakan Algoritme Bisecting K-Means.
Dibimbing oleh IMAS SUKAESIH SITANGGANG dan IRMAN HERMADI.
Proses pencarian dokumen tesis mahasiswa Pascasarjana IPB pada
repository IPB dapat dipercepat dengan cara mengelompokkan dokumen tersebut
berdasarkan kata kunci dan kombinasi kata kunci yang sering muncul dalam
dokumen tersebut. Metode frequent itemsets dapat memunculkan term-term yang
frekuensi kemunculannya tinggi terhadap kumpulan dokumen. Term-term yang
sering muncul dalam dokumen dapat mewakili sebuah dokumen. Dalam proses
temu kembali dokumen, pada umumnya kata kunci dimasukkan oleh pengguna.
Pengelompokkan dokumen berdasarkan frequent term (dalam hal ini kata kunci)
dapat mempercepat pengembalian dokumen yang dicari.
Penelitian ini dilakukan untuk menggali frequent itemsets dari kumpulan
dokumen ringkasan tesis mahasiswa Pascasarjana IPB menggunakan algoritme
Apriori. Proses clustering terhadap frequent itemsets yang terbentuk
menggunakan algoritme Bisecting K-Means, untuk kemudian digunakan dalam
proses clustering dokumen. Proses pencarian dokumen akan dilakukan terhadap
dokumen yang telah dikelompokkan.
Metode dalam penelitian ini diawali dengan mengumpulkan data
ringkasan tesis mahasiswa Pascasarjana pada repositori IPB. Kemudian dilakukan
praposes data yang meliputi tonization, remove number, stopword removal,
stemming, remove punctuation, dan remove sparse term. Selanjutnya proses
menggali frequent itemsets menggunakan algoritme Apriori dan pengelompokkan
dokumen berbasis frequent itemsets menggunakan algoritme Bisecting K-Means.
Tahap terakhir adalah melakukan analisis dan evaluasi hasil cluster. Pada tahap
ini akan diuji pencarian dokumen terhadap kata kunci yang dimasukkan
berdarakan itemsets yang dihasilkan.
Hasil penelitian menunjukkan bahwa pengelompokan dokumen
menggunakan algoritme Bisecting K-Means dapat pengelompokkan itemsets yang
mempunyai nilai support tinggi. Pengujian dengan nilai k=3 sampai dengan k=10,
pada pengujian k=10 dapat memperoleh hasil cluster yang baik, dengan nilai Sum
of Squared Error yaitu 132.15. Pengujian dengan nilai k=10, cluster dua dapat
mengelompokkan beberapa itemsets yang mempunyai nilai support tertinggi,
yaitu
itemsets
{base,method},
{base,develop},
{analysi,base},
dan
{base,product}. Akurasi hasil clustering berbasis frequent itemsets sangat
dipengaruhi oleh term-term yang dihasilkan pada tahap praproses data, yaitu pada
tahap penghapusan term berdasarkan tabel stopword, remove sparse term dan nilai
minimum support (minsup) karena berdampak terhadap banyaknya jumlah
frequent itemsets yang dihasilkan. Term-term yang dihasilkan dengan pendekatan
frequent itemsets masih bersifat umum sehingga tidak dapat digunakan untuk
pencarian dokumen dengan topik penelitian yang spesifik.
Kata kunci: Apriori, Bisecting K-Means, document clustering, frequent itemsets
SUMMARY
ARI SETIAWAN. Clustering IPB Graduate Student Thesis Summary based on
Frequent Itemsets using Bisecting K-Means Algorithm. Supervised by IMAS
SUKAESIH SITANGGANG and IRMAN HERMADI.
The searching documents of IPB graduate student’s thesis in IPB repository
can be accelerated by grouping these documents based on keywords and its
combinations that often appear in the document. Frequent itemsets approach can
discover terms that are frequently occurred in the documents. These frequent
terms may represent content of the documents. In the document retrieval process,
keywords are commonly entered by users. Grouping documents based on frequent
term including keywords can accelerate the document retrieval.
This research was conducted to explore the frequent itemsets of document
summaries IPB graduate student’s thesis using Apriori algorithm. Clustering
frequent itemsets was performed using the bisecting K-Means algorithm. The
searching documents will be done on clusters of documents.
The research steps in this research begin by collecting of IPB Graduate
student thesis’s summaries. Data preprocessing consists of several tasks including
tokenization, stopword removal, stemming, removing numbers, removing
punctuation and removing spare terms. Furthermore, frequent terms were
discovered using Apriori algorithm. Based on the frequent terms, documents were
clustered using bisecting K-Means algorithm. The last step is analyzing and
evaluating the clustering results. At this stage clusters of documents were
evaluated based on keywords that were selected from the frequent terms.
The results show that the best clustering result was obtained at number of
clusters of 10 with the Sum of Squared Error is 132.15. These clusters contain
documents that have frequent terms {base, method}, {base, develop}, {analysi,
base}, and {base, product}. This study show that data preprocessing task
including removing stopwords and removing sparse terms have high influence on
frequent terms generation. This study discovers frequents terms related to the
common topics in the summaries of IPB graduate student’s thesis therefore the
terms cannot be used to discover thesis related to specific topics.
Keywords: Apriori, Bisecting K-Means, document clustering, frequent itemsets
© Hak Cipta Milik IPB, Tahun 2016
Hak Cipta Dilindungi Undang-Undang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan
atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan,
penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau
tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan
IPB
Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis ini
dalam bentuk apa pun tanpa izin IPB
CLUSTERING DOKUMEN RINGKASAN TESIS MAHASISWA
PASCASARJANA IPB BERBASIS FREQUENT ITEMSETS
MENGGUNAKAN ALGORITME BISECTING K-MEANS
ARI SETIAWAN
Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Komputer
pada
Program Studi Ilmu Komputer
SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2016
Penguji Luar Komisi pada Ujian Tesis:
DrEng Wisnu Ananta Kusuma, ST MT
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan April 2014 ini ialah text
minning, dengan judul Clustering Dokumen Ringkasan Tesis Mahasiswa
Pascasarjana IPB berbasis Frequent Itemsets menggunakan Algoritme Bisecting
K-Means.
Terima kasih penulis ucapkan kepada Ibu Dr Imas Sukaesih Sitanggang, SSi
MKom dan Bapak Irman Hermadi, SKom MS PhD selaku pembimbing, serta
Bapak DrEng Wisnu Ananta Kusuma, ST MT selaku penguji yang telah banyak
memberikan saran untuk penelitan ini. Ungkapan terima kasih juga disampaikan
kepada ayahanda, ibunda, isteriku tersayang Dewi Tirta Ayu, Anak-anakku
tersayang Devan, Abel, Nadine, Reynand, dan keluarga Bapak Haji Saefulloh.
Tak lupa pula saya ucapkan terima kasih kepada Priyo Puji Nugroho yang telah
membantu pengumpulan data serta teman-teman Andri Hidayat, Mulyani yang
telah membantu dan menemani saya saat menempuh masa-masa sulit penelitian.
Ungkapan terima kasih juga penulis sampaikan pada pengelola
Pascasarjana, seluruh Dosen dan Staf Akademik Departemen Ilmu Komputer
Institut Pertanian Bogor, teman-teman MKom Angkatan 14. Semoga karya ilmiah
ini bermanfaat.
Bogor, Mei 2016
Ari Setiawan
DAFTAR ISI
DAFTAR TABEL
vi
DAFTAR GAMBAR
vi
DAFTAR LAMPIRAN
vi
1 PENDAHULUAN
Latar Belakang
Rumusan Masalah
Tujuan Penelitian
Ruang Lingkup Penelitian
Manfaat Penelitian
1
1
2
3
3
3
2 TINJAUAN PUSTAKA
Document Clustering
Partitional Clustering
Algoritme Bisecting K-Means
Representasi Dokumen Menggunakan Vector Space Model (VSM)
Clustering Dokumen Berbasis Frequent Itemset
Algoritme Apriori
Term Frequency – Invers Document Frequency
3
3
4
4
5
5
6
6
3 METODE
Data Penelitian
Metode Penelitian
Praproses Data
Penggalian frequent itemsets dengan algoritme Apriori
Clustering Frequent Term Menggunakan Algoritme Bisecting K-Means
Evaluasi Cluster Dokumen
7
7
7
8
10
10
11
4 HASIL DAN PEMBAHASAN
Data Penelitian
Praproses Data
Penggalian frequent itemsets dengan algoritme Apriori
Clustering Frequent Term Menggunakan algoritme Bisecting K-Means
Evaluasi Cluster Dokumen
11
11
12
18
21
22
4 SIMPULAN DAN SARAN
Simpulan
Saran
28
28
29
DAFTAR PUSTAKA
29
LAMPIRAN
31
RIWAYAT HIDUP
38
DAFTAR TABEL
1 Frequent Itemsets
2 Dokumen yang mengandung frequent itemsets
3 Nilai SSE cluster dokumen menggunakan algoritme Bisecting
K-Means
4 Cluster frequent itemsets menggunakan algoritme Bisecting
K-Means berdasarkan frequent itemsets dengan nilai k  10
5 Jum;ah dokumen yang mengandung frequent itemsets
6 Daftar tabel stopword tambahan untuk memunculkan term yang
lebih spesifik
7 Pembentukan frequent itemsets terhadap pengujian nilai sparsity,
minsup dan mincof
8 Pembentukan frequent itemsets terhadap pengujian nilai sparsity 0.90,
minsup 0.08, dan mincof 0.8
19
21
21
22
24
25
26
27
DAFTAR GAMBAR
1
2
3
4
Diagram alir penelitian
Dokumen ringkasan tesis mahasiswa Pascasarjana IPB
Document term matrix
Wordcloud untuk dokumen ringkasan tesis mahasiswa
Pascasarjana IPB
5 Korelasi antar items (term)
6 Wordcloud perubahan pembentukan itemsets akibat
penambahan tabel stopword
7 Korelasi antar items setelah penambahan tabel stopword
8
11
17
18
20
26
28
DAFTAR LAMPIRAN
1 Source code praposes data
2 Source code Source code Penggalian Frequent Itemsets
3 Source code clustering menggunakan algoritme Bisecting K-Means
31
33
34
1 PENDAHULUAN
Latar Belakang
Pengelompokan dokumen atau pengelompokan teks adalah salah satu tema
utama dalam text mining. Hal ini mengacu pada proses pengelompokan dokumen
dengan isi atau topik yang sama ke dalam kelompok untuk meningkatkan
ketersediaan dan keandalan aplikasi text mining seperti pencarian informasi
(Zamir et al. 1997), klasifikasi teks (Aggarwal et al. 1999), dan peringkasan
dokumen (Larson et al. 1999). Ada tiga jenis masalah dalam pengelompokan
dokumen. Masalah pertama adalah bagaimana mendefinisikan kesamaan dua
dokumen. Masalah kedua adalah bagaimana menentukan jumlah yang tepat dari
cluster dokumen koleksi teks dan yang ketiga adalah bagaimana
mengelompokkan dokumen secara tepat sesuai dengan cluster. Document
clustering adalah proses pengelompokkan dokumen secara otomatis ke dalam
suatu cluster, sehingga dokumen-dokumen yang berada dalam sebuah cluster
akan memiliki kemiripan yang tinggi dibandingkan dokumen pada cluster
yang berbeda (Steinbach et al. 2000).
Dalam beberapa tahun terakhir, clustering dokumen web telah menjadi
area penelitian yang sangat menarik di antara komunitas akademis dan ilmiah
yang terlibat dalam temu kembali informasi (information retrieval) dan pencarian
web (Carpineto et al. 2009). Sistem klasifikasi dokumen web berusaha untuk
meningkatkan cakupan (jumlah) dokumen yang disajikan bagi pengguna untuk
meninjau, sekaligus mengurangi waktu yang dihabiskan dalam pencarian
dokumen (Yates et al. 1999). Dalam information retrieval, sistem klasifikasi
dokumen web disebut mesin pengelompokan web. Sistem tersebut biasanya terdiri
atas empat komponen utama yaitu hasil akuisisi pencarian, pre-prosesing input,
konstruksi dan pelabelan cluster, serta visualisasi yang dihasilkan cluster
(Carpineto et al. 2009).
Konsep frequent itemsets berasal dari association rule mining yang
digunakan untuk menemukan hubungan aturan item dalam basis data
transaksional yang besar (Agrawal et al. 1993). Sebuah frequent itemsets adalah
sekumpulan frequent item, yang sering terjadi pada transaksi yang melebihi nilai
ambang batas tertentu yang disebut minimum support (minsup). Penambangan
frequent itemsets lebih sering mengarah ke penemuan asosiasi dan korelasi antara
item dalam jumlah data yang besar yang telah dikumpulkan dan disimpan secara
terus menerus ke dalam data transaksional. Frequent itemsets dalam
pengelompokan dokumen dapat dikaitkan dengan permintaan pengurangan
dimensi untuk representasi. Dalam Vector Space Model (VSM), keterbatasan
tempat penyimpanan sementara dari kata-kata individu menyebabkan dimensi
ruang yang besar. Tidak semua dokumen dalam koleksi berisi semua indeks
istilah yang digunakan dalam representasi dan sebagai akibat kekurangan ruang
terjadi pada vektor dokumen sangat besar. Sebuah frequent itemsets adalah satu
set kata-kata individu yang mencakup makna konseptual dan kontekstual dari kata
individu (Wen et al. 2010).
Repositori IPB adalah suatu website yang berisi kumpulan tugas akhir, tesis
dan disetasi mahasiswa IPB. Fitur yang ditampilkan pada repositori sudah
termasuk lengkap. Tampilan antar muka mempermudah dalam proses pencarian
dokumen. Pengguna dapat mencari dokumen berdasarkan jenis dokumen karya
ilmiah, tahun penerbitan, nama penulis, judul, dan subjek. Responses time dalam
proses informasi retrieval juga terbilang cepat. Namun dalam beberapa kasus
tingkat efektifitas pengembalian dokumen tidak relevan dengan kata kunci yang
dimaksukkan. Hal ini dapat disebabkan beberapa faktor, salah satu di antaranya
mengenai pengelompokkan dokumen. Dengan mengelompokkan dokumen dalam
suatu cluster dengan tingkat kemiripan dokumen yang sama, maka proses
pencarian tersebut tertuju pada suatu cluster tertentu, dokumen yang akan
dikembalikan akan berisi dokumen yang ada pada cluster tersebut, sehingga
tingkat relevansi dokumen bisa dikatakan efektif. Clustering selain dapat
mengelompokkan dokumen dengan tingkat kemiripan yang tinggi dalam suatu
cluster, dapat juga digunakan dalam hal peringkasan dokumen dan proses
information retrieval.
Dalam penelitian ini digunakan data repositori IPB, khususnya pada
kumpulan dokumen ringkasan tesis mahasiswa Pascasarjana IPB. Clustering
dokumen diperlukan untuk mengelompokkan dokumen berdasarkan kemiripan
dokumen ke dalam satu cluster, dan akan dilakukan pengujian terhadap tingkat
efektifitas dalam proses temu kembali dokumen. Teknik data mining yang
digunakan dalam penelitian ini adalah Frequent Pattern Mining dan Clustering.
Frequent Pattern Mining akan menentukan terms dalam kumpulan dokumen
berbasis frequent itemsets dari kumpulan dokumen. Clustering frequent term
menggunakan algoritme Bisecting K-Means digunakan untuk proses
pengelompokkan kemiripan dokumen ke dalam masing–masing cluster.
Clustering dokumen berbasis frequent itemsets merupakan salah satu metode
clustering dokumen yang dapat digunakan untuk mengatasi masalah tingginya
ruang dimensi dari dokumen yang akan dikelompokkan. Namun waktu komputasi
yang dibutuhkan pada proses clustering terhadap database yang besar akan terasa
lama. Oleh sebab itu akan dipadukan dengan metode clustering menggunakan
algoritme Bisecting K-Means. Dalam beberapa penelitian sebelumnya, algoritme
Bisecting K-Means mampu mempercepat proses kumputasi terhadap database
yang besar karena dapat melakukan pengulangan fungsi yang kompleksitasnya
tinggi. Pengulangan tersebut mampu mengelompokkan suatu objek atau dokumen
dalam suatu cluster dengan tingkat kemiripan yang tinggi.
Rumusan Masalah
Berdasarkan latar belakang masalah di atas maka rumusan masalah dalam
penelitian ini adalah bagaimana menggali frequent itemsets dan mengelompokkan
dokumen berbasis frequent itemsets pada kumpulan dokumen ringkasan tesis
mahasiswa Pascasarjana IPB, sehingga proses pencarian yang dilakukan terhadap
cluster dapat mengembalikan dokumen yang sesuai dengan kata kunci yang
dimasukkan.
Tujuan Penelitian
1.
2.
Tujuan dari penelitian ini adalah sebagai berikut:
Menentukan frequent term dari kumpulan dokumen ringkasan tesis
mahasiswa Pascasarjana IPB menggunakan algoritme Apriori.
Pengelompokkan dokumen berbasis frequent itemset menggunakan algoritme
Bisecting K-Means.
Ruang Lingkup Penelitian
Adapun ruang lingkup dalam penelitian ini adalah data dokumen berupa
ringkasan tesis mahasiswa Pascasarjana IPB dalam Bahasa Inggris sebanyak 295
dokumen yang diambil secara acak dari berbagai disiplin ilmu.
Manfaat Penelitian
Hasil penelitian ini diharapkan dapat mempercepat proses pencarian
dokumen berdasarkan kata kunci yang dimasukkan pengguna terhadap hasil
clustering dokumen dan bukan terhadap keseluruhan kumpulan dokumen.
2 TINJAUAN PUSTAKA
Document Clustering
Secara umum clustering dokumen adalah proses mengelompokkan
dokumen berdasarkan kemiripan antara satu dengan yang lain dalam satu cluster.
Tujuannya adalah untuk memisahkan dokumen yang relevan dari dokumen yang
tidak relevan (Zhang et al. 2001). Pengelompokan ini didasarkan pada hipotesa
yang dikemukakan oleh Van Rijsbergen bahwa dokumen-dokumen yang
berkaitan erat cenderung sesuai dengan permintaan informasi yang sama. Atau
dengan kata lain, dokumen-dokumen yang relevan dengan suatu query
cenderung memiliki kemiripan satu sama lain dari pada dokumen yang tidak
relevan, sehingga dapat dikelompokkan ke dalam suatu cluster. Oleh karena itu,
suatu cluster berisi kelompok dokumen homogen yang saling berkaitan antara
satu dengan yang lain.
Clustering dokumen dapat dilakukan sebelum atau sesudah proses temu
kembali (Zhang et al. 2001). Clustering dokumen yang dilakukan sebelum proses
temu kembali informasi, koleksi dokumen dikelompokkan dalam cluster
berdasarkan kemiripan (similarity) antar dokumen. Selanjutnya dalam proses temu
kembali informasi, apabila suatu dokumen ditemukan maka seluruh dokumen
yang berada dalam cluster yang sama dengan dokumen tersebut juga dapat
ditemukan. Sementara itu, clustering dokumen yang dilakukan setelah proses
temu kembali informasi, dokumen-dokumen yang dihasilkan disajikan dalam
gugus yang terbentuk berdasarkan kemiripan antar dokumen tersebut, sehingga
mempermudah pencari informasi untuk memberikan interpretasi terhadap hasil
penelusuran sesuai dengan kebutuhannya.
Menurut Rijbergen (1979), clustering dokumen telah lama diterapkan
untuk meningkatkan efekifitas temu kembali informasi. Penerapan clustering ini
didasarkan pada suatu hipotesis (cluster-hypothesis) bahwa dokumen yang relevan
akan cenderung berada pada cluster yang sama jika pada koleksi dokumen
dilakukan clustering. Beberapa penelitian untuk dokumen berbahasa Inggris
menerapkan clustering dokumen untuk memperbaiki kinerja dalam proses
pencarian (Tombros 2002). Satu hal menarik adalah tidak ada algoritma clustering
terbaik yang dapat diaplikasikan terhadap semua bentuk data (Achtert et al. 2005).
Partitional Clustering
Dalam partitional clustering, algoritme awal melakukan pembagian data
dalam cluster dan kemudian memindahkannya dari satu kelompok ke yang lain
didasarkan pada optimisasi dari kriteria yang telah ditentukan atau fungsi tujuan
(Jain et al. 1999). Algoritme yang paling representatif menggunakan teknik ini
adalah K-Means dan K-Medoids.
Metode partisi akan memindahkan dokumen dari satu cluster ke cluster
yang lain, mulai dari partisi awal. Metode tersebut berdasarkan pada jumlah
cluster yang ditetapkan oleh pengguna. Untuk mencapai optimalitas global dalam
pengelompokkan berbasis partisi, proses pembagian lengkap dari semua partisi
yang mungkin diperlukan. Karena proses tersebut tidak layak, maka metode
greedy digunakan dalam bentuk optimasi iteratif dengan menggunakan metode
relokasi iteratif untuk merelokasi poin antara k-cluster. Ada dua cara untuk
komputasi clustering dokumen dalam metode partitional clustering, baik secara
langsung atau melalui urutan bisecting atau perpecahan berulang (Zhao dan
Karypis 2002).
Metode partisi pertama menciptakan set awal partisi k, di mana k adalah
parameter jumlah partisi untuk membangun cluster, kemudian menggunakan
teknik relokasi berulang yang mencoba untuk meningkatkan partisi dengan benda
bergerak dari satu kelompok ke kelompok lain. Metode partisi khas termasuk
K-Means, K-Medoids, dan CLARANS (Han et al. 2012).
Pada tahun 2000 (Steinbach et al. 2000), sebuah penelitian menghasilkan
algoritme Bisecting K-means dengan menggabungkan metode Divisive
Hierarchical Clustering dan Partitional Clustering memberikan hasil yang lebih
baik mengenai akurasi dan efisiensi dibandingkan dengan metode Unweighted
Pair Group Method with Arithmetic Mean (UPGMA) dan algoritme K-Means
(Steinbach et al. 2000).
Algoritme Bisecting K-Means
Algoritme clustering K-Means, adalah varian dari algoritme K-Means
yang dikenal karena kesederhanaan dan digunakan dalam berbagai bidang untuk
pengenalan pola dan analisis cluster. Namun, perkembangan algoritme dalam text
mining telah banyak dikembangkan, salah satunya adalah algoritme Bisecting
K-Means, yaitu dengan mengembangkan varian dari algoritme K-Means,
sehingga memberikan hasil pengelompokan yang lebih baik daripada K-Means.
Metode Bisecting K-Means (Steinbach et al. 2000) mencoba menggabungkan
pendekatan partitional dengan divisive hierarchical, yaitu mula-mula seluruh
dokumen dibagi dua dengan cara K-Means (bisecting-step). Selanjutnya cara itu
dikenakan pada tiap-tiap cluster sampai diperoleh k buah cluster. Algoritme
Bisecting K-Means dimulai dengan satu cluster dan kemudian membagi cluster
menjadi dua. Cluster perpecahan ditentukan dengan meminimalkan Sum of
Squared Error (SSE). Dasar algoritme Bisecting K-Means (Steinbach et al. 2000)
adalah:
1. Inisialisasi satu cluster yang akan di split (dibagi).
2. Split dua cluster dengan mencari 2 sub cluster menggunakan algoritme
K-Mean.
3. Ulangi langkah 2, untuk nilai tetap sebanyak iterasi yg dilakukan dan
mengambil perpecahan yang menghasilkan clustering dengan keseluruhan
kesamaan tertinggi, ambil hasil clustering yang terbaik yaitu rata-rata nilai
document similarity yang terbaik.
4. Ulangi langkah 1, 2, dan 3 sampai jumlah cluster yang diinginkan tercapai
(memilih split gugus yang memberikan nilai SSE terkecil).
Untuk menentukan perpecahan atau membagi cluster sesuai nilai k
ditentukan dengan menggunakan nilai SSE terkecil. Persamaan 1 digunakan untuk
mencari SSE (Steinbach et al. 2000).
K
SSE   d ( p, m ) 2
i
(1)
i 1 xci
dengan :
pci
ci
mi
d
:
:
:
:
setiap data titik pada cluster i
center cluster i
centroid pada cluster i
jarak pada masing-masing cluster i
Representasi Dokumen Menggunakan Vector Space Model (VSM)
Vector Space Model (VSM) adalah metode untuk melihat tingkat
kedekatan atau kesamaan (similarity) term dengan cara pembobotan term.
Dokumen dipandang sebagi sebuah vektor yang memiliki magnitude (jarak) dan
direction (arah). Pada VSM, sebuah istilah direpresentasikan dengan sebuah
dimensi dari ruang vektor. Relevansi sebuah dokumen ke sebuah query didasarkan
pada similaritas diantara vektor dokumen dan vektor query (Yates 1999).
VSM digunakan untuk representasi dokumen. Dalam model vektor setiap
dokumen secara konseptual direpresentasikan sebagai vektor dari kata kunci yang
diambil dari dokumen dengan bobot terkait mewakili pentingnya istilah kunci
dalam dokumen maupun dalam keseluruhan dokumen corpus. Pada model ini,
query dan dokumen dianggap sebagai vektor-vektor pada ruang n-dimensi,
dimana n adalah jumlah dari seluruh term yang ada dalam leksikon (Ian et al.
1999). Leksikon adalah daftar semua term yang ada dalam indeks.
Clustering Dokumen Berbasis Frequent Itemsets
Konsep frequent itemsets sebenarnya berasal dari penggalian kaidah
asosiasi (association rule mining). Frequent itemsets untuk text mining dapat
dibagi menjadi dua kategori yaitu: penggunaan frequent itemsets untuk
kategorisasi dokumen dan penggunaan frequent itemsets dalam clustering
dokumen. Motivasi dalam mengadaptasi frequent itemsets pada proses clustering
dokumen berkaitan dengan permintaan untuk mengurangi dimensi dari
representasi suatu dokumen. Dalam VSM, sekumpulan kata-kata akan
mengakibatkan tingginya dimensi. Padahal tidak semua dokumen dalam koleksi
berisi semua indeks istilah atau term yang digunakan dalam representasi.
Algoritme Apriori
Sebuah kaidah dalam analisis asosiasi dituliskan dalam bentuk AB,
dimana A dan B adalah dua item yang berbeda. Kekuatan relasi antara A dan B
dapat diukur dengan nilai support dan confidence. Support menunjukkan seberapa
sering sebuah itemsets diaplikasikan dalam sebuah basis data transaksi atau
dataset. Confidence adalah seberapa sering item B muncul pada transaksi yang
melibatkan item A. Untuk menemukan kaidah asosiasi dari sebuah daftar
transaksi, dibutuhkan nilai batasan yaitu minimum support (minsup) dan minimum
confidence (minconf). Persamaan untuk mencari Support diberikan pada
persamaan 2 dan confidence diberikan pada persamaan 3 (Han et al. 2012).
count A  B 
D
count A  B 
Support(A  B) 
countA
Support(A  B) 
(2)
(3)
dengan :
A : Antecendent aturan (bagian jika)
B : Consequent aturan (bagian maka)
D : Dataset (transaction)
Prosedur umum yang banyak dipakai dalam menemukan kaidah asosiasi
adalah sebagai berikut (Han et al. 2012):
a. Pembentukan frequent itemsets bertujuan untuk menemukan semua itemsets
yang memiliki nilai support lebih besar atau sama dengan nilai minsup.
b. Pembentukan kaidah (rule generation) bertujuan untuk membentuk kaidah
yang kuat (strong rule) yaitu kaidah dengan tingkat kepercayaan (confidence)
yang tinggi dari frequent itemsets yang dihasilkan pada tahap sebelumnya.
Term Frequency – Invers Document Frequency
Term Frequency-Inverse Document Frequency (TF-IDF) merupakan
pembobotan klasik berbasis frekuensi dan IDF kemudian menjadi inspirasi
untuk mengkombinasikan kedua metode pembobotan tersebut, dengan
mempertimbangkan frekuensi inter-dokumen dan frekuensi intra-dokumen dari
suatu term. Dengan menggunakan frekuensi term pada suatu dokumen dan
distribusinya pada keseluruhan dokumen, yakni kemunculannya pada
dokumen-dokumen lain (IDF).
Skema pembobotan istilah (Salton dan Buckley 1988) tf-idf digunakan
untuk memberikan pembobotan yang tinggi untuk istilah yang sering muncul
dalam koleksi dokumen secara keseluruhan. Sesuai skema, bobot istilah terdiri
dari frekuensi istilah dalam dokumen dikalikan dengan inverse frekuensi dari
istilah dalam seluruh dokumen corpus. Metode pembobotan yang
menggabungkan konsep frekuensi intra-dokumen dan inter-dokumen ini
kemudian dikenal sebagai metode TF-IDF, yang dinyatakan pada persamaan 4.
W  tf *id
ij
ij ij
(4)
N
 tf ij * log
df
j
dengan:
Wij
tfij
N
idij
=
=
=
=
bobot term j pada dokumen i
frekuensi term j pada dokumen i
jumlah total dokumen yang diproses
jumlah dokumen yang memiliki term j didalamnya
3 METODE
Data Penelitian
Data yang digunakan dalam penelitian ini adalah kumpulan ringkasan tesis
mahasiswa Pascasarjana IPB dalam bahasa Inggris sebanyak 295 dokumen yang
bersumber dari Direktorat Integritas Data dan Sistem Informasi (DIDSI) IPB.
Metode Penelitian
Bagian metode penelitian akan menjelaskan secara sistematis
tahapan-tahapan dan metode yang dilakukan dalam penelitian. Tahapan ini dibuat
agar penelitian menjadi lebih terarah. Ilustrasi tahapan kegiatan penelitian dapat
dilihat pada Gambar 1. Penelitian dimulai mengumpulkan data ringkasan tesis
mahasiswa pascasarjana pada repositori IPB sebanyak 295 dokumen. Tahap kedua
dilakukan praposes data terhadap kumpulan dokumen ringkasan tesis. Tahap
ketiga adalah menggali frequent itemsets menggunakan algoritme Apriori. Tahap
keempat adalah mengelompokkan dokumen berbasis frequent itemsets
menggunakan algoritme Bisecting K-means. Tahap kelima adalah evaluasi hasil
cluster dokumen yang terbentuk. Pada tahap ini juga akan diuji seberapa relevan
dokumen yang ditemukan terhadap kata kunci yang dimasukkan. Penjelasan lebih
lanjut setiap tahapan yang dilakukan pada metode penelitian akan dibahas pada
sub bahasan berikutnya.
Praproses Data
Dokumen
Ringkasan
Tesis
Mulai
Tokenization
Remove Number
Stemming
Stopword
Removal
Remove
Punctuation
Remove
Sparse Term
Minsup dan
Minconf
Tabel Doc-List
Penggalian Frequent Itemset dengan Algoritme Apriori
Kata Kunci
Frequent Term
Clustering Frequent Term Menggunakan
Algoritme Bisecting K-Means
Selesai
Evaluasi Clusters Dokumen
Gambar 1 Diagram alir penelitian
Praproses Data
Praproses data terdiri atas beberapa langkah yang mengambil dokumen
teks biasa sebagai input dan mengembalikan satu set token sebagai output
(manning et al. 2009). Vector Space Model (VSM) adalah metode untuk melihat
tingkat kedekatan atau kesamaan (similarity) term dengan cara pembobotan term.
Dokumen dipandang sebagi sebuah vektor yang memiliki magnitude (jarak) dan
direction (arah). Pada VSM, sebuah istilah direpresentasikan dengan sebuah
dimensi dari ruang vektor. Relevansi sebuah dokumen ke sebuah query didasarkan
pada similaritas antar vektor dokumen dan vektor query (Yates 1999). Dalam
model ruang vektor (vector space model), sekumpulan kata-kata akan
mengakibatkan tingginya dimensi.
Langkah awal dari penelitian ini adalah praproses data yang meliputi
tonization, remove number, stopword removal, stemming, remove punctuation,
dan menghilangkan term yang kemunculannya kurang dari nilai remove sparse
term yang ditentukan, sehingga kumpulan dokumen terdiri dari kumpulan term.
Hasil dari praproses data dipresentasikan ke dalam document term matrix, yaitu
sebuah matriks yang berisikan semua dokumen dari kumpulan dokumen yang
terdiri atas term yang telah bersifat individu. Setiap sel dalam matriks bersesuaian
dengan bobot yang diberikan dari suatu term dalam dokumen yaitu 1 dan 0,
dengan nilai nol berarti bahwa term tersebut tidak hadir di dalam dokumen.
Tokenization
Tokenisasi merupakan proses pemisahan suatu rangkaian karakter
berdasarkan karakter spasi, dan mungkin pada waktu yang bersamaan dilakukan
juga proses penghapusan karakter tertentu, seperti simbol. Token seringkali
disebut sebagai istilah (term) atau kata, sebagai contoh sebuah token merupakan
suatu urutan karakter dari dokumen tertentu yang dikelompokkan sebagai unit
semantik yang berguna untuk diproses (Salton dan Christopher 1988).
Remove number
Remove number merupakan proses penghilangan karakter angka yang
terdapat dalam suatu dokumen. Penghilangan karakter angka bertujuan agar
dokumen tidak mengandung karakter angka sehingga memudahkan dalam hal
representasi dokumen dalam sebuah term matrix.
Stopword removal
Stopword removal akan menghilangkan sebagian besar kata yang tidak
signifikan, yang tidak menyampaikan makna apapun sebagai dimensi dalam
model vektor. Oleh karena itu kata-kata dari daftar membentuk set kata-kata yang
unik. Strategi yang paling umum untuk menghilangkan stopword adalah untuk
membandingkan setiap istilah dengan daftar stopword. Proses stopword removal
merupakan proses penghapusan term yang tidak memiliki arti atau tidak relevan
(Tala 2003).
Stemming
Stemming adalah proses penghilangan prefiks dan sufiks dari query dan
istilah-istilah dokumen (Porter 1997). Stemming dilakukan atas dasar asumsi
bahwa kata-kata yang memiliki stem yang sama memiliki makna yang serupa
sehingga memperoleh dokumen-dokumen yang di dalamnya terdapat kata-kata
dengan stem yang sama dengan query. Proses clustering dapat dipercepat dengan
menggunakan algoritme Porter (Tala 2003) untuk mereduksi jumlah kata melalui
penghilangan imbuhan (stemming).
Remove punctuation
Remove punctuation merupakan proses menghilangkan karakter tanda
baca seperti koma, titik, dan lain lain.
Remove sparse term
Remove sparse term adalah proses menghilangkan istilah-istilah yang
jumlah frekuansi kemunculannya lebih kecil dari nilai sparsity yang diberikan
dalam document term matrix. Nilai sparsity digunakan untuk menentukan
seberapa banyak term yang akan dihilangkan. Semakin besar nilai sparsity yang
diberikan, maka semakin banyak term yang akan dimunculkan. Nilai sparsity
adalah nlai yang dihasilkan dari perhitungan sparse dari setiap term. Sebagai
contoh apabila nilai remove sparse term yang akan digunakan adalah 0.90 dan
jumlah dokumen sebanyak 295 dokumen, maka perhitungan untuk menentukan
term yang akan dihilangkan menggunakan persamaan dfj > N * ( 1  0.90 ),
dengan dfj adalah jumlah frekuensi kemunculan term j dari keseluruhan dokumen,
dan N adalah jumlah dokumen keseluruhan. Apabila jumlah frekuensi suatu term
lebih kecil dari jumlah dokumen yang dikalikan dengan hasil 1 dikurangi nilai
sparse, maka term tersebut akan dihilangkan, namum apabila nilai jumlah
frekuensi lebih besar, maka term tersebut akan digunakan. Setiap term akan
dilakukan proses tersebut, sehingga hanya tersisa term yang mempunyai nilai
lebih besar dari nilai sparsity yang akan dipertahankan.
Penggalian frequent itemsets dengan Algoritme Apriori
Algoritme Apriori (Han et al. 2012) diaplikasikan dalam penggalian
frequent itemsets dari sekumpulan dokumen dengan menentukan nilai minimal
support dan minimum confidence. Algoritme Apriori pada umumnya digunakan
pada basis data transaksional. Oleh karena itu, dalam penelitian ini terdapat
beberapa proses yang dilakukan pada algoritme Apriori tersebut agar dapat
digunakan dalam proses clustering dokumen. Algoritme Apriori digunakan untuk
menentukan himpunan data yang paling sering muncul (frequent itemsets) dalam
sebuah kumpulan data (David 2008). Sebuah frequent itemsets adalah seperangkat
individu kata-kata yang mencakup makna konseptual dan kontekstual daripada
kata yang berdiri sendiri.
Dalam sebuah transaksi, I={i1, i2, i3, ... , id} adalah himpunan barangbarang (item) yang dapat ditransaksikan dan T={t1, t2, t3,..., tN} adalah suatu
himpunan transaksi. Setiap transaksi ti terdiri dari item yang merupakan subset
dari I. Itemsets adalah himpunan dari 0 atau banyak item. Bila terdiri dari k item,
maka dapat disebut dengan k-itemsets. Itemsets juga disebut sebagai suatu pola.
Support count menunjukkan jumlah transaksi yang mengandung itemsets tertentu.
Dalam penelitian ini penggalian frequent itemsets dilakukan menggunakan
algoritme Apriori, dengan pengujian nilai minimum support 0.10 dan minimum
confidence 0.8. Hasil penggalian frequent itemsets inilah yang akan dilakukan
proses clustering menggunakan algoritme Bisecting K-means.
Clustering Frequent Itemsets Menggunakan Algoritme Bisecting K-Means
Metode Bisecting K-Means (Steinbach et al. 2000) menggabungkan
pendekatan partitional dengan divisive hierarchical, yaitu mula-mula seluruh
dokumen dibagi dua dengan cara K-Means (bisecting-step). Selanjutnya cara itu
dikenakan pada tiap-tiap cluster sampai diperoleh k buah cluster. Algoritme
Bisecting K-Means dimulai dengan satu cluster dan kemudian membagi cluster
menjadi dua. Cluster perpecahan ditentukan dengan meminimalkan Sum of
Squared Error (SSE). Pemisahan ini didasarkan pada nilai SSE terkecil dan akan
diulang sampai jumlah cluster yang ditetapkan pengguna tercapai.
Sebelum dilakukan clustering, dokumen yang mengandung frequent itemset
terlebih dulu dihitung pembototan term mengunakan persamaan TF-IDF. Dari
hasil perhitungan pembobotan term tersebut maka dilakukan proses clustering
dokumen menggunakan algoritme Bisecting K-Means dengan pengujian nilai
jumlah (k) cluster yang diujikan, yaitu k  3 sampai dengan k  10. Penentuan
jumlah cluster yang digunakan hanya sampai dengan k  10 dilakukan untuk
mempermudah dalam proses analisa cluster yang terbentuk.
Evaluasi Cluster Dokumen
Evaluasi cluster dokumen dilakukan terhadap clustering dokumen yang
terbentuk menggunakan algoritme Bisecting K-Means. Evaluasi dilakukan pada
hasil pengelompokkan frequen itemset dan dokumen mana yang masuk dalam
satu cluster. Pembentukkan cluster dilakukan dengan memberikan nilai k  3
sampai dengan k  10, dan menganalisa cluster mana yang terbaik berdasarkan
nilai SSE terkecil. Tahap pengujian pencarian dokumen yang mengandung
frequent itemset dilakukan dengan memasukkan kata kunci berdasarkan term yang
terkandung dalam frequent itemsets. Proses pencarian dilakukan terhadap cluster
dan kumpulan dokumen ringkasan tesis. Pada tahap ini akan diujikan apakah
dokumen yang dikembalikan relevan dengan kata kunci yang dimasukkan.
4 HASIL DAN PEMBAHASAN
Data Penelitian
Data yang digunakan dalam penelitian ini adalah dokumen ringkasan tesis
mahasiswa Pascasarjana IPB dalam bahasa Inggris yaitu sebanyak 295 dokumen
yang bersumber dari Direktorat Integritas Data dan Sistem Informasi (DIDSI)
IPB. Gambar 2 adalah contoh dokumen ringkasan tesis mahasiswa pascasarjana
IPB yang dapat diunduh pada halaman website repository IPB pada laman
http://repository.ipb.ac.id.
Header yang berisi
nama penulis, judul
tesis dan komisi
pembimbing.
Isi ringkasan tesis
yang berisi latar
belakang masalah,
tujuan penelitian,
metode yang
digunakan serta hasil
penelitian.
Footer yang berisi
kata kunci yang
berhubungan dengan
penelitian.
Gambar 2 Dokumen ringkasan tesis mahasiswa Pascasarjana IPB
Praposes Data
Tahap yang dilakukan sebelum tahap praproses data adalah
mengumpulkan sebanyak 295 dokumen yang diambil secara acak dari berbagai
disiplin ilmu pascasarjana IPB dan semua dokumen tersebut disimpan dalam
sebuah file teks dengan format csv (comma delimited). Tahap praproses data
adalah untuk menjadikan data kumpulan dokumen sebanyak 295 dokumen
menjadi kumpulan term. Tahapan-tahapan praproses yang dilakukan adalah proses
tokenisasi yaitu proses pemisahan suatu rangkaian kalimat menjadi rangkaian kata
berdasarkan karakter dan dipisahkan dengan sehingga setiap istilah (term) bersifat
individu dan bersifat konseptual. Stopword removal menghilangkan term
berdasarkan daftar stopword, penghapusan angka, stemming menghilangkan
imbuhan dan akhiran sehingga hanya menjadi kata dasar dari setiap istilah dan
penghapusan tanda baca.
Pada sub-bab ini juga dijelaskan perintah-perintah dalam bahasa
pemrograman R pada tahap praposes data sehingga menghasilkan sebuah
document term matrix. Pada tahap praproses data menggunakan bahasa
pemrograman R, setiap fungsi yang akan dijalankan menggunakan library yang
telah disediakan. Dalam hal ini library yang digunakan adalah library(tm).
Sebagai ilustrasi akan dipaparkan tahapan praproses data dengan
menggunakan dokumen asli, namun dalam bentuk satu paragraf untuk
menjelaskan perubahan dokumen dari setiap tahapan dalam tahap praproses data
dapat dijelaskan sebagai berikut:
Following the global spike in food prices in 2008, there is
renewed interest in Indonesia in self-sufficiency as a means of
achieving food security. Restrictive trade policies, including
specific tariffs on rice and sugar, and quantitative restrictions
on imports and exports, have been used in an attempt to meet
conflicting objectives of assisting both producers and consumers.
Tokenizaion
Tokenisasi merupakan proses pemisahan suatu rangkaian kata sehingga
setiap kata besifat individu dan berdiri sendiri, dan pada waktu yang bersamaan
dilakukan juga proses penghapusan karakter tertentu, seperti simbol dan
mengubah semua huruf kapital menjadi huruf kecil. Untuk proses tokenisasi dan
transformasi dokumen dilakukan dengan menjalankan perintah-perintah dalam
Bahasa R berikut:
1
2
3
4
5
6
7
8
for (j in seq(my.corpus))
{
my.corpus[[j]] <- gsub("ƒ", " ", my.corpus[[j]])
my.corpus[[j]] <- gsub("@", " ", my.corpus[[j]])
my.corpus[[j]] <- gsub("-", " ", my.corpus[[j]])
my.corpus[[j]] <- gsub("\\|", " ", my.corpus[[j]])
}
my.corpus <- tm_map(my.corpus, tolower)
Baris pertama sampai dengan baris ketujuh pada pernyataan di atas
menyatakan sebuah fungsi untuk mentransformasi dokumen terhadap karakter
tertentu seperti karakter simbol sehingga tidak terdapat karakter simbol dalam
kumpulan dokumen. Sementara itu, baris kedelapan menyatakan proses tolower,
yaitu merubah huruf kapital menjadi huruf kecil, sehingga dokumen sudah terdiri
dari kata-kata yang terpisah satu dengan lainnya tanpa huruf kapital pada semua
kumpulan dokumen. Hasil dokumen yang terbentuk sebagai berikut:
following the global spike in food prices in 2008, there is
renewed interest in indonesia in self sufficiency as a means of
achieving food security. restrictive trade policies, including
specific tariffs on rice and sugar, and quantitative restrictions
on imports and exports, have been used in an attempt to meet
conflicting objectives of assisting both producers and consumers.
Remove Number
Remove number merupakan proses penghilangan karakter angka yang
terdapat dalam kumpulan dokumen, sehingga tidak terdapat karakter angka.
Perintah dalam Bahasa R berikut digunakan dalam proses remove number.
my.corpus <- tm_map(my.corpus, removeNumbers)
Hasil dari proses remove number berikut sudah tidak terdapat karakter
angka. Penghilangan karakter angka dilakukan terhadap semua dokumen.
follow global spike food price in
,
renew interest
indonesia self suffici
mean achiev food security. restrict
trade policies, includ specif tariff rice sugar, quantit
restrict import exports,
use
attempt meet conflict object
assist produc consumers.
Stopword Removal
Stopword removal akan menghilangkan sebagian besar kata yang tidak
signifikan, yang tidak menyampaikan makna apapun sebagai dimensi dalam
model vektor berdasarkan tabel stopword bahasa Inggris dengan menjalankan
perintah-perintah dalam Bahasa R berikut:
my.corpus<- tm_map(my.corpus,removeWords,stopwords("english"))
Hasil dari proses stopword removal tersebut menghilangkan beberapa term
misalkan kata the, in, there dan lain-lain sesuai dengan tabel stopword dalam
bahasa Inggris. Hasil dokumen yang terbentuk sebagai berikut:
following global spike food prices ,
renewed interest
indonesia self sufficiency
means achieving food security.
restrictive trade policies, including specific tariffs rice
sugar, quantitative restrictions imports exports,
used
attempt meet conflicting objectives assisting producers
consumers.
Stemming
Proses stemming bertujuan untuk menghilangkan awalan dan akhiran dari
setiap kata, sehingga terbentuk kata dasar. Perintah dalam Bahasa R berikut
digunakan dalam proses stemming.
my.corpus <- tm_map(my.corpus, stemDocument)
Hasil dari proses stemming tersebut adalah sebagai berikut, dimana telah
dihilangkannya awalan dan akhiran, sehingga setiap term bermakna kata dasar.
follow global spike food price
,
renew interest indonesia
self suffici
mean achiev food security. restrict trade
policies, includ specif tariff rice sugar, quantit restrict
import exports,
use
attempt meet conflict object assist
produc consumers.
Remove Punctuation
Remove punctuation merupakan proses menghilangkan karakter tanda
baca seperti koma, titik, dan lain lain. Perintah yang digunakan menghilangkan
tanda baca dalam Bahasa R adalah sebagai berikut:
my.corpus <- tm_map(my.corpus, removePunctuation)
Hasil dari proses remove punctuation tersebut adalah kalimat yang
terbentuk sudah tidak dipisahkan dengan suatu tanda baca seperti titik, koma dan
lain-lain, sehingga sudah tidak terdapat karakter tanda baca dalam kumpulan
dokumen.
follow global spike food price
renew interest indonesia
self suffici
mean achiev food secur restrict trade polici
includ specif tariff rice sugar quantit restrict import
export
use
attempt meet conflict object assist produc
consumer
Strip White Space
Strip white space merupakan proses menghilangkan karakter spasi. Hal ini
perlu dilakukan karena pada tahap proses sebelumnya, jarak antara term masih
tidak beraturan, tiap term dipisahkan dengan satu atau lebih karakter spasi. Oleh
karena itu perlu penghapusan karakter spasi agar setiap kata hanya dipisahkan
dengan satu karakter spasi. Perintah dalam Bahasa R berikut yang digunakan
untuk memisahkan jarak antara term dengan satu karakter spasi.
tm_map(my.corpus, stripWhitespace)
Hasil dari proses strip white space tersebut adalah kalimat yang terbentuk
sudah tidak dipisahkan dengan beberapa karakter spasi, melainkan setiap kata
hanya dipisahkan dengan satu karakter spasi.
follow global spike food price renew interest indonesia self
suffici mean achiev food security restrict trade policies includ
specif tariff rice sugar quantit restrict import exports use
attempt meet conflict object assist produc consumers
Pembuangan stopword
Langkah berikutnya adalah pembuatan tabel stopword tambahan yang
digunakan untuk menghilangkan term yang frekuensi kemunculannya tinggi. Hal
ini perlu dilakukan karena proses stopword awal hanya menghilangkan term yang
bersifat umum namun sebenarnya masih terdapat term yang muncul tidak
mempunyai makna. Pada tahap ini akan dilakukan proses menghilangkan term
misalkan can, use, result, research, studi dan lain-lain. Term tersebut muncul
hampir disetiap dokumen, namun sebenarnya term tersebut tidak bermakna atau
mempresentasikan isi dokumen. Perintah-perintah dalam Bahasa R berikut yang
dijalankan dalam pembuatan tabel dan penghapusan stopword.
1
2
mystopwords <c("a","about","above","above","across","after","afterwards","a
gain","against","all","almost","alone","along","already","also
","although","always","am","among","amongst","amoungst","amoun
t","an","and","another","any","anyhow","anyone","anything","an
yway","anywhere","are","around","as","at","back","be","became"
,"because","become","becomes","becoming","been","before","befo
rehand","behind","being","below","beside","besides","between",
"beyond","bill","both","bottom","but","by","call","cannot","ca
nt","co","con","could","couldnt","cry","de","describe","detail
","do","done","down","due","during","each","eg","eight","eithe
r","eleven","else","elsewhere","empty","enough","etc","even","
ever","every","everyone","everything","everywhere","except","f
ew","fifteen","fify","fill","find","fire","first","five","for"
,"former","formerly","forty","found","four","from","front","fu
ll","further","get","give","go","had","has","hasnt","have","he
","hence","her","here","hereafter","hereby","herein","hereupon
","hers","herself","him","himself","his","how","however","hund
red","ie","if","in","inc","indeed","interest","into","is","it"
,"its","itself","keep","last","latter","latterly","least","les
s","ltd","made","many","may","me","meanwhile","might","mill","
mine","more","moreover","most","mostly","move","much","must","
my","myself","name","namely","neither","never",
"nevertheless","next","nine","no","nobody","none","noone","nor
","not","nothing","now","nowhere","of","off","often",
"on","once","one","only","onto","or","other","others","otherwi
se","our","ours","ourselves","out","over","own","part","per","
perhaps","please","put","rather","re","same","see","seem","see
med","seeming","seems","serious","several","she","should","sho
w","side","since","sincere","six","sixty","so","some","somehow
","someone","something","sometime","sometimes","somewhere","st
ill","such","system","take","ten","than","that","the","their",
"them","themselves","then","thence","there","thereafter","ther
eby","therefore","therein","thereupon","these","they","thickv"
,"thin","third","this","those","though","three","through","thr
oughout","thru","thus","to","together","too","top","toward","t
owards","twelve","twenty","two","un","under","until","up","upo
n","us","very","via","was","we","well","were","what","whatever
","when","whence","whenever","where","whereafter","whereas","w
hereby","wherein","whereupon","wherever","whether","which","wh
ile","whither","who","whoever","whole","whom","whose","why","w
ill","with","within","without","would","yet","you","your","you
rs","yourself","yourselves","zero","can","use","result","dan",
"end","get","iii","indah","jati","just","like","take","user","
view","one","research","studi"
my.corpus <- tm_map(my.corpus, removeWords, mystopwords)
Baris pertama pada pernyataan di atas menyatakan tentang pembuatan
tabel stopword yang digunakan untuk menghilangkan term yang sering muncul
dalam setiap dokumen yang tidak merepresentasikan makna dari isi dokumen.
Seperti halnya term indah dan jati, kedua term tersebut masih dalam bentuk ejaan
bahasa Indonesia, term indah berkaitan dengan nama sebuah tempat penginapan
dan term jati berkaitan dengan kayu jati. Karena kedua term tersebut
menggunakan ejaan dalam bahasa Indonesia maka perlu dimasukkan dalam tabel
stopword sehingga dapat dihilangkan. Baris kedua menyatakan tentang
pembuangan term berdasarkan tabel stopword yang dibuat. Hasil penghilangan
term berdasarkan stopword adalah sebagai berikut:
follow global spike food price renew indonesia self suffici mean
achiev food security restrict trade policies includ specif tariff
rice sugar quantit restrict import exports attempt meet conflict
object assist produc consumers
Remove sparse term
Remove sparse term adalah proses menghilangankan term yang frekuensi
kemunculannya rendah. Nilai sparsity adalah nilai yang dipakai untuk
menentukan seberapa banyak term yang akan dihilangkan dari document term
matrix. Rentang nilai sparsity berkisar antara 0 sampai dengan 1. Pemberian nilai
sparsity yang besar akan mengakibatkan jumlah term yang dihasilkan semakin
banyak.
Perintah-perintah dalam Bahasa R berikut digunakan untuk
mempresentasikan dokumen dalam document term matrix. Proses yang dilakukan
pada tahap ini adalah menghitung frekuensi kemunculan tiap-tiap term pada
document term matrix, dan menghilangkan term yang jumlah frekuensi
kemunculannya lebih kecil dari nilai remove sparse time yang diberikan yaitu
sebesar 0.90. Nilai remove sparse term 0.90 akan menghilangkan term yang
jumlah frekuensi kemunculanya dari seluruh dokumen yang lebih kecil dari hasil
perhitungan jumlah dokumen keseluruhan yang dikalikan dengan hasil 1  0.90.
Sebagai contoh apabila jumlah frekuensi kemuncuan term j dari seluruh dokumen
sebanyak 34, sedangkan jika nilai N * (1  0.90) adalah 40, N adalah jumlah
dokumen keseluruhan, maka term j tersebut akan dihilangkan, karena jumlah
frekuensi kemunculan term j yaitu 34 lebih kecil dari dari 40. Begitu juga
sebaliknya, apabila jumlah frekuensi kemunculan term j dari keseluruhan
dokumen lebih besar dari nilai sparse maka term j tersebut tidak akan dihilangkan.
Proses ini dilakukan terhadap semua term, sehingga isi dari document term matrix
berisi term-term yang frekuensi kemunculannya lebih besar dari nilai sparse yang
ditentukan.
1
2
3
4
5
# PEMBENTUKAN DOCUMENT TERM MATRIX
term.doc.matrix.stm <- TermDocumentMatrix(my.corpus)
dim(doc.term.matrix.stm)
doc.term.matrix <- removeSparseTerms(doc.term.matrix.stm,
0.90)
dim(doc.term.matrix)
Baris pertama pada pernyataan di atas menyatakan tentang judul
pembentukan document term matrix. Baris kedua adalah proses pembentukan
document term matrix. Baris ketiga adalah untuk menampilkan hasil document
term matrix yang terbentuk. Baris keempat adalah proses pembentukan document
term matrix yang baru dengan memberikan nilai sparsity 0.90, dan baris kelima
adalah untuk menampilkan hasil document term matrix yang terbentuk setelah
diberikan nilai sparsity. Gambar 3 memperlihatkan hasil dari proses pembentukan
document term matrix yang dijalankan dengan perintah Bahasa R.
Gambar 3 Document term matrix
Gambar 3 menunjukkan hasil akhir pada tahap proposes data. Document
term matrix yang dihasilkan dari dari kumpulan dokumen memiliki sebanyak
5321 term. Kemudian dilakukan penghapusan term yang kemunculannya kurang
dari nilai sparsity yang ditentukan yaitu 0.90, sehingga dihasilkan sebanyak 110
term. Document term matrix sebanyak 110 term inilah yang akan dilakukan proses
penggalian frequent itemsets dan proses clustering.
Visualiasi Wordcloud dokumen berdasarkan frekuensi term yang
dihasilkan dapat dilihat pada Gambar 4. Perintah-perintah dalam Bahasa R berikut
digunakan untuk menggambarkan visualisasi wordcloud.
1
2
3
4
5
6
#EXPLORING AND DISTRIBUTION OF TERM FREQUENCIES
freq <- sort(colSums(as.matrix(dtm)), decreasing=TRUE)
#VISUALISASI WORD CLOUDS
library(wordcloud)
set.seed(142)
wordcloud(names(freq), freq, min.freq=30, scale=c(2, .1),
colors=brewer.pal(6, "Dark2"))
Baris pertama pada pernyataan di atas menyatakan tentang judul menggali
dan mendistribusikan frekuensi kemunculan term. Baris kedua menjelaskan
distristibusi frekuensi kemunculan term dari document term matrix yang
mempunyai frekuensi kemunculan yang tinggi secara berurutan. Baris ketiga
menjelaskan judul visualisasi dalam bentuk wordcloud. Baris keempat
menjelaskan pemanggilan library(wordcloud) yang digunakan untuk
memvisualisasikan frekuensi kemunculan term dalam bentuk wordcloud. Baris
kelima menjelaskan membuat set gambar wordcloud, dan baris keenam
menjelaskan proses menampilkan bentuk wordcloud dengan menggunakan data
frekuensi yang kemunculannya sama atau lebih besar dari 30, dan visualisasi term
yang sering muncul dilambangkan dengan huruf yang lebih besar. Gambar 4
adalah bentuk visualiasi frekuensi term dalam bentuk wordcloud.
Gambar 4 Wordcloud untuk dokumen ringkasan tesis mahasiswa Pascasarjana
IPB
Dari visualisasi wordcloud pada Gambar 4, dapat dijelaskan bahwa ukuran
huruf term yang lebih besar menandakan bahwa frekuensi kemunculan term
tersebut lebih tinggi dibandingkan dengan term yang lain dari kumpulan
dokumen. Term product, develop, method, data, increase dan base mempunyai
frekuensi kemunculan yang tinggi pada kumpulan dokumen. Frekuensi
kemunculan term product sebanyak 207, develop sebanyak 195, method sebanyak
188, data sebanyak 185, increase sebanyak 185, dan base sebanyak 184. Perintahperintah dalam tahap proposes data secara lengkap dapat dilihat pada lampiran 1.
Penggalian Frequent Itemset dengan Algoritme Apriori
Tahap penggalian frequent itemsets dilakukan berdasarkan data document
terms matrix dengan menggunakan algoritme Apriori. Proses penggalian frequent
itemsets dilakukan dengan memberikan nilai support 0.10 dan nilai confidence
0.8. Nilai support menunjukkan persentasi jumlah transaksi yang mengandung
{term1, term2, term3} dan nilai confidence menunjukkan persentasi {term3} yang
terdapat pada transaksi yang mengandung {term1, term2}. Frequent itemsets
adalah set term yang dihasilkan dari algoritme Apriori yang melakukan proses
transaksi terhadap semua term. Algoritme Apriori akan memproses keterkaitan
kemunculan suatu term terhadap term yang lain yang muncul secara bersamaan
dalam suatu dokumen yang mempunyai nilai support ≥ minimum support. Sebuah
frequent itemsets adalah seperangkat individu kata-kata yang mencakup makna
konseptual dan kontekstual daripada kata yang berdiri sendiri. Perintah-perintah
dalam Bahasa R berikut digunakan untuk menggali frequent itemsets.
1
2
3
4
5
6
# PEMBENTUKAN TRANSAKSI TERM
library(arules)
trans <- as(doc.term.matrix, "transactions")
# GENERATE FREQUENT ITEMSET USING APRIORI
frequent <- apriori(trans, parameter = list(sup=0.10, conf =
0.8, target="frequent itemsets", minlen=2, maxlen=4))
# PEMBENTUKAN MATRIK FREQUENT ITEMSETS
7
frequent <- as(items(frequent), "matrix")
Baris pertama pada pernyataan di atas menyatakan tentang judul
pembentukan transaksi term. Baris kedua menjelaskan pemanggilan
library(arules) yang mempunyai fungsi menentukan frequent itemsets. Baris
ketiga menjelaskan transaksi terhadap semua term dari document term matrix
yang nantinya akan digunakan dalam proses penggalian frequent itemsets. Baris
keempat menjelaskan judul menggali frequent itemsets menggunakan algoritme
Apriori. Baris kelima menjelaskan pembentukan frequent itemsets menggunakan
algoritma Apriori dengan batasan nilai minimum support 0.10 dan minimum
confidence 0.80, target adalah menentukan kaidah frequent itemsets, dengan
minimal itemsets (minlen) sebanyak dua term dan maksimal itemset (maxlen)
sebanyak empat term. Baris keenam menjelaskan mengenai judul transformasi
frequent itemsets dalam sebuah matriks, dan baris ketujuh menjelaskan
representasi frequent itemsets dalam sebuah matriks. Matriks frequent itemset
inilah yang akan digunakan dalam proses clustering.
Frequent itemsets yang dihasilkan dengan nilai minimum support 0.10 dan
minimum confidence 0.8 dihasilkan sebanyak 36 frequent itemsets yang diberikan
pada Tabel 1. Kemudian frequent itemsets yang dihasilkan akan dikelompokkan
menggunakan algoritme Bisecting K-Means.
Tabel 1 Frequent Itemsets
No
Frequent Itemsets
Support
No
Frequent Itemsets
Support
1
{effect,signific}
0.1152
19
{effect,increas}
0.1084
2
{area,develop}
0.1084
20
{develop,product}
0.1016
3
{area,base}
0.1016
21
{analysi,product}
0.1016
4
{develop,indonesia}
0.1050
22
{method,product}
0.1016
5
{base,object}
0.1050
23
{base,product}
0.1254
6
{base,determin}
0.1050
24
{analysi,develop}
0.1016
7
{base,conduct}
0.1016
25
{data,develop}
0.1220
8
{analysi,process}
0.1016
26
{develop,method}
0.1050
9
{method,process}
0.1016
27
{develop,increas}
0.1152
10
{activ,method}
0.1084
28
{base,develop}
0.1457
11
{activ,base}
0.1084
29
{analysi,data}
0.1423
12
{data,need}
0.1050
30
{analysi,method}
0.1389
13
{method,need}
0.1118
31
{analysi,increas}
0.1084
14
{base,need}
0.1016
32
{analysi,base}
0.1423
15
{analyz,effect}
0.1050
33
{data,method}
0.1322
16
{analyz,data}
0.1084
34
{base,data}
0.1152
17
{effect,product}
0.1118
35
{increas,method}
0.1016
18
{effect,method}
0.1084
36
{base,method}
0.1457
Dari Tabel 1 dijelaskan bahwa terdapat beberapa term yang dihasilkan
terlihat tidak sempurna, misalkan pada term analyz dan term analysi. Kedua term
tersebut berasal dari kata analyzed dan analysis. Keduanya tampak tidak
menunjukkan kata dasar diakibatkan proses stemming pada tahap proposes data.
Penghilangan awalan dan akhiran menyebabkan kedua terms tersebut menjadi
berbeda. Hal ini disebabkan salah satunya adalah bahasa pemrograman yang
digunakan. Setiap bahasa peprograman mempunyai cara yang berbeda ketika
proses stemming dijalankan walaupun algoritme stemming yang digunakan sama.
Untuk itu perlu diadakan kajian mendalam mengenai proses stemming¸ sehingga
ada persamaan persepsi tentang hal tersebut. Namun hal ini bukanlah suatu
kendala disebabkan merupakan bentuk representasi term pada VSM. Representasi
tersebut tidak mempengaruhi keutuhan dokumen asli.
Itemsets {base,develop} dan itemsets {base,method} mempunyai nilai
support tertinggi, yaitu 0.1457. Nilai support adalah nilai atau persentase dari
frekuensi transaksi kombinasi term yang muncul secara bersamaan pada suatu
dokumen terhadap semua transaksi. Kemunculan term base terhadap term
develop, dan term base terhadap term method sangatlah dominan dalam kumpulan
dokumen. Hal ini dikarenakan kedua itemsets tersebut mempunyai frekuensi
kemunculan secara bersamaan pada setiap dokumen sangat tinggi. Frequent
itemsets yang terbentuk adalah hasil korelasi antara suatu term dengan term yang
lain yang akan muncul secara bersamaan dengan batasan nilai minsup dan mincof.
Korelasi menggambarkan hubungan term satu dengan term yang lain yang
terkandung dalam suatu itemsets berdasarkan nilai support. Berikut perintah
dalam Bahasa R untuk menggambarkan korelasi antar term dalam penggalian
itemsets pada Gambar 5.
plot(frequent, method="graph")
Pernyataan di atas menyatakan pemanggilan fungsi untuk
memvisualisasikan hubungan antara term berdasarkan nilai minsup dan mincof.
Visualisasi korelasi antar term ditampilkan pada Gambar 5 menggunakan metode
graph.
Gambar 5 Korelasi antar items (term)
Gambar 5 menjelaskan korelasi items yang dilambangkan dengan simbol
lingkaran. Semakin besar lingkaran, maka semakin besar hubungan suatu term
dengan terms yang lain dalam hal kemunculan kedua term yang muncul secara
bersamaan dalam suatu dokumen berdasarkan nilai support. Lingkaran yang besar
manandakan bahwa hubungan kedua term tersebut mempunyai nilai support yang
tinggi. Itemsets {base,develop}, itemsets {base,method}, itemsets {analysi,data},
dan itemsets {analysi,data}. Nilai support {base,develop} dan {base,method}
adalah 0.1457, sedangkan {analysi,data} dan {analysi,base} adalah 0.1423.
Itemsets yang dihasilkan tidak semua terdapat pada tiap-tiap dokumen, hal
ini dikarenakan algoritme Apriori menggali itemsets yang nilai support-nya di atas
atau sama dengan minimum support. Dalam beberapa dokumen hanya terdapat
beberapa term yang dapat dijadikan kandidat dalam pembentukan itemsets. Tabel
2 menyatakan dokumen yang mengandung itemsets pada kumpulan dokumen
terhadap empat itemsets yang mempunyai nilai support tertinggi. Itemset dengan
nilai support tertinggi akan berisi kumpulan dokumen yang lebih banyak
dibandingkan dengan itemsets dengan nilai terendah. Perintah-perintah dalam
Bahasa R pada tahap penggalian frequent itemsets secara lengkap dapat dilihat
pada lampiran 2.
Tabel 2 Dokumen yang mengandung frequent itemsets
Frequent
No
Support
Dokumen Mengandung Frequent Itemsets
Itemsets
1
{base,develop}
0.1457
2
{base,method}
0.1457
3
{analysi,base}
0.1423
4
{analysi,data}
0.1423
5, 8, 14, 16, 17, 34, 35, 56, 59, 61, 66, 83, 84, 86,
89, 91, 109, 115, 117, 121, 128, 129, 134, 143, 149,
164, 179, 183, 186, 190, 229, 237, 239, 245, 248,
262, 265, 272, 181, 282, 284, 286, 289
5, 16, 19, 27, 30, 32, 35, 45, 55, 59, 66, 75, 76, 86,
89, 91, 99, 111, 121, 122, 130, 162, 173, 174, 180,
183, 190, 216, 217, 224, 228, 237, 239, 245, 251,
258, 262, 269, 272, 281, 282, 286, 293
4, 28, 30, 34, 37, 38, 39, 48, 83, 89, 91, 92, 109,
111, 115, 117, 122, 129,131, 143, 149, 173, 174,
180, 183, 186, 190, 213, 218, 228, 229, 232, 245,
251, 265, 269, 280, 281, 282, 288, 291
28, 30, 39, 49, 51, 60, 67, 70, 71, 77, 81, 89, 94,
106, 109, 114, 115, 117, 122, 131, 149, 173, 174,
180, 181, 185, 192, 197, 211, 221, 229, 232, 234,
238, 239, 243, 244, 260, 267, 268, 281, 288
Clustering Frequent Itemset Menggunakan Algoritme Bisecting K-Means
Pembentukan cluster yang digunakan adalah algoritme Bisecting Kmeans,
dengan jumlah cluster yang diujikan adalah k  3 sampai dengan k  10. Hal ini
dilakukan untuk melihat perbandingan hasil cluster yang terbentuk. Pembentukan
cluster dilakukan menggunakan data matrix frequent itemsets. Matrix frequent
itemsets adalah sebuah matriks yang berisi frequent itemsets. Tabel 3 berisi hasil
pembentukan cluster dokumen berdasarkan nilai Sum of Squared Error (SSE)
tiap-tiap pembentukan jumlah cluster yang diujikan. Perintah-perintah dalam
Bahasa R pada tahap pembentukan cluster menggunakan algoritme Bisecting
K-Means secara lengkap dapat dilihat pada lampiran 3.
Tabel 3 Nilai SSE cluster dokumen menggunakan algoritme Bisecting K-Means
Jumlah Cluster (k)
Nilai SSE
3
282.43
4
214.36
Jumlah Cluster (k)
Nilai SSE
5
199.15
6
184.40
7
168.87
8
155.34
9
142.91
10
132.15
Evaluasi Cluster Dokumen
Dengan menggunakan algoritme Bisecting K-Means, pembentukan cluster
pada pengujian dengan nilai k  3 sampai dengan k  10, nilai SSE terkecil
terdapat pada pengujian dengan nilai k  10, yaitu 132.15. Pengujian dengan nilai
k = 10 memperoleh hasil pembentukan cluster yang terbaik. Semakin kecil nilai
SSE yang dihasilkan menandakan bahwa maka semakin baik suatu cluster yang
terbentuk. Pengelompokkan dokumen menggunakan algoritme Bisecting
K-Means yang mengandung frequent itemset dapat dilihat pada Tabel 4.
Tabel 4 Clustering frequent itemsets menggunakan algoritme Bisecting K-Means
dengan nilai k = 10
Id
cluster
Itemsets
Jumlah
Dokumen
1
{base,data},
{activ,base},
{base,determin},
{base,object},
{base,need},
{base,conduct},
{area,base}
86
2
{base,method},
{base,develop},
{analysi,base},
{base,product}
88
3
{data,method},
{method,need},
{effect,method},
{activ,method},
{increas,method},
{method,process}
90
Id dokumen
3, 8, 5, 14, 16, 17, 19, 22, 27, 28, 30, 32,
34, 35, 36, 37, 39, 54, 55, 56, 59, 61, 66, 75,
83, 84, 86, 89, 91, 99, 101, 109, 111, 115,
117, 121, 122, 224, 128, 129, 131, 134, 135,
146, 149, 160, 164, 173, 174, 177, 178, 179,
180, 183, 190, 200, 213, 216, 220, 228, 229,
232, 235, 237, 239, 240, 143, 245, 258, 248,
253, 262, 263, 265, 269, 272, 275, 281, 282,
284, 286, 288, 289, 291, 293, 294
4, 5, 8, 14, 16, 17, 19, 22, 27, 28, 30, 32, 34,
35, 37, 38, 45, 48, 55, 56, 59, 61, 66, 75, 76,
83, 84, 86, 89, 91, 92, 99, 101, 102, 109,
111, 115, 117, 121, 122, 128, 129, 130, 131,
134, 143, 149, 162, 164, 173, 174, 178, 179,
180, 183, 186, 190, 206, 213, 216, 217, 218,
224, 228, 229, 232, 237, 239, 240, 245, 248,
251, 258, 262, 265, 269, 272, 275, 280, 281,
282, 284, 286, 288, 289, 291, 293, 294
5, 13, 16, 19, 25, 27, 30, 31, 32, 33, 35, 43,
49, 50, 51, 52, 55, 58, 59, 60, 64, 66, 67, 68,
70, 76, 77, 86, 89, 91, 93, 94, 95, 99, 106,
111, 121, 122, 130, 132, 136, 137, 139, 142,
145, 156, 159, 161, 169, 172, 173, 174, 180,
181, 183, 184, 185, 190, 192, 205, 207, 209,
215, 211, 216, 217, 228, 233, 237, 239, 242,
243, 244, 245, 251, 255, 256, 260, 262, 264,
266, 267, 269, 272, 279, 280, 281, 282, 286,
293
Id
cluster
Itemsets
Jumlah
Dokumen
4
{effect,signific},
{effect,increas},
{analyz,data},
{analyz,effect}
69
5
{develop,increas},
{area,develop},
{develop,indonesia}
67
6
{develop,method},
{method,product}
47
7
{analysi,method},
{analysi,develop},
{analysi,product}
64
8
{analysi,data},
{data,develop},
{data,need},
70
9
{analysi,increas},
{analysi,process}
46
10
{effect,product},
{develop,product}
50
Id dokumen
1, 3, 13, 14, 35, 36, 37, 38, 40, 49, 57, 58,
59, 62, 63, 64, 67, 70, 71, 76, 77, 85, 92, 94,
95, 100, 105, 106, 112, 114, 117, 122, 126,
129, 132, 133, 147, 148, 160, 161, 168, 170,
175, 183, 185, 189, 190, 192, 199, 207, 208,
223, 226, 227, 229, 238, 242, 243, 248, 254,
267, 268, 270, 275, 278, 279, 281, 284, 295
1, 8, 14, 16, 17, 21, 24, 25, 29, 35, 47, 56,
61, 63, 83, 84, 86, 88, 89, 91, 94, 98, 104,
118, 125, 127, 128, 134, 143, 147, 149, 164,
165, 168, 179, 183, 185, 186, 187, 190, 194,
197, 198, 199, 207, 212, 212, 222, 227, 229,
234, 237, 238, 239, 244, 245, 248, 252, 255,
260, 265, 271, 272, 279, 281, 284, 285
1, 8, 9, 14, 26, 29, 30, 35, 47, 51, 58, 61, 66,
67, 83, 86, 91, 106, 115, 117, 127, 129, 132,
145, 157, 164, 183, 185, 187, 192, 216, 222,
224, 242, 243, 248, 251, 255, 258, 261, 262,
264, 266, 271, 281, 286, 293
4, 25, 28, 30, 34, 37, 43, 49, 51, 60, 67, 68,
70, 71, 77, 79, 81, 83, 89, 91, 94, 106, 109,
111, 115, 117, 122, 129, 143, 149, 163, 173,
181, 183, 185, 186, 188, 190, 192, 197, 199,
202, 211, 213, 228, 229, 232, 234, 238, 239,
242, 243, 244, 245, 251, 260, 264, 265, 267,
269, 279, 281, 282, 291
17, 28, 29, 30, 35, 36, 39, 49, 51, 52, 56, 60,
64, 66, 67, 70, 71, 77, 81, 84, 89, 94, 95,
104, 106, 109, 114, 115, 117, 121, 122, 131,
133, 134, 136, 149, 168, 173, 174, 180, 181,
185, 192, 197, 207, 212, 211, 221, 227, 229,
232, 233, 234, 238, 239, 243, 244, 248, 249,
260, 267, 268, 272, 277, 281, 284, 285, 287
25, 28, 30, 37, 43, 49, 67, 68, 70, 71, 83, 89,
91, 92, 94, 111, 114, 115, 117, 122, 129,
143, 149, 183, 185, 190, 192, 199, 211, 213,
221, 228, 232, 238, 239, 243, 244, 245, 251,
254, 260, 265, 267, 279, 281, 288
1, 8, 9, 14, 26, 29, 35, 37, 47, 61, 66, 67, 71,
76, 83, 86, 91, 100, 105, 106, 112, 115, 117,
127, 129, 132, 145, 157, 164, 170, 178, 183,
185, 187, 189, 204, 222, 242, 243, 248, 255,
261, 262, 266, 271, 275, 281, 286, 290, 295
Dari hasil pengelompokkan menggunakan algoritme Bisecting K-Means
terhadap itemsets, terlihat bahwa pada cluster dua menunjukkan pengelompokan
yang berisi empat itemsets yang mempunyai nilai support yang tinggi. Dari empat
itemsets tersebut, itemsets {base,method} dan {base,develop} dengan nilai
support 0.1457, itemsets {analysi,base} dengan nilai support 0.1423, dan itemsets
{base,product} dengan nilai support 0.1254.
Suatu sistem temu kembali informasi memiliki sejumlah metode yang dapat
digunakan antara lain query atau bahasa perintah (query or command language),
formulasi query dengan Boolean (Boolean query formulation), pemurnian
penelusuran (search refinement), pemendekan atau pemotongan dan penelusuran
rentetan teks (truncation and text string searching), pembatasan penelusuran (stop list
or common word list), thesaurus atau pendukung perbendaharaan kosa kata
(thesaurus/vocabulary support), kedekatan penelusuran (proximity searching),
pembatasan penelusuran dengan ruas (limiting searching by field), dan penelusuran
kawasan numerik (numeric range searching).
Boolean query formulation atau yang lebih dikenal dengan operator
Boolean logic merupakan hubungan dari istilah-istilah yang ditelusuri. Boolean
logic terdiri dari 3 operator logis, yaitu operator AND, operator OR dan operator
NOT. Operator boolean berfungsi sebagai instruksi atas informasi yang diinginkan
pengguna. Operator boolean berperan sebagai pembentuk konsep dari apa yang
hendak dipakai terhadap sistem temu kembali informasi, misalkan mengunakan
salah satu operator atau memadukan beberapa operator sesuai dengan kebutuhan
informasi yang akan ditampilkan.
Pada penelitian ini metode yang digunakan untuk proses temu kembali
dokumen yang digunakan adalah menggunakan operator boolean AND. Operator
Boolean AND digunakan untuk menghadirkan dokumen-dokumen dimana kedua
istilah yang ditelusur sama-sama disebutkan dalam satu dokumen. Penelusuran
dengan menggunakan operator AND akan memperkecil hasil informasi yang
ditemukan. Sebagai contoh kata kunci yang dimasukkan berdasarkan term base
AND method maka akan menghadirkan dokumen yang mengandung term base
dan term method saja, dokumen yang hanya berisi salah satu dari istilah tersebut
tidak akan muncul. Maka, semakin banyak jumlah term dalam suatu itemsets yang
terbentuk, semakin sedikit persentase perolehan dokumen. Contoh penggunaan
operator AND dalam penelusuran dokumen dalam sistem menggunakan bahasa
pemrograman R adalah sebagai berikut:
query <- base&&method
Dari perintah tersebut dapat dijelaskan bahwa query dipresentasikan
dengan term base dan method. Penelusuran akan dilakukan terhadap kedua term
tersebut yang muncul secara bersamaan dalam sebuah dokumen. Dokumen yang
mengandung kedua term tersebut akan dikembalikan dalam proses penelusuran,
sedangkan dokumen yang hanya mengandung salah satu term tersebut akan
diabaikan. Pengujian terhadap inputan dari kata kunci menggunakan frequent
itemsets terhadap dokumen ringkasan tesis mahasiswa Pascasarjana IPB
berdasarkan cluster yang terbentuk dapat dilihat pada Tabel 5.
Tabel 5 Jumlah dokumen yang mengandung frequent itemsets
Frequent itemsets
{base,data}, {activ,base}, {base,determin}, {base,object},
{base,need}, {base,conduct}, {area,base}
{base,method}, {base,develop}, (analysi,base}, {base,product}
Jumlah dokumen
hasil query
86
88
Jumlah dokumen yang mengandung itemsets {base,method},
{base,develop}, {analysi,base} dan {base,product} yang terkelompokkan pada
clusters 2 adalah sebanyak 88 dokumen dari 295 dokumen secara keseluruhan.
Apabila pencarian dokumen terhadap kata kunci yang dimasukkan berdasarkan
itemsets {base,method}, maka pencarian akan dilakukan terhadap 88 dokumen
yang terdapat pada cluster tersebut. Dokumen yang akan dikembalikan
berdasarkan kata kunci itemsets {base,method} adalah sebanyak 42 dokumen dari
88 dokumen yang ada pada cluster tersebut. Namun apabila pencarian dilakukan
terhadap kumpulan dokumen, maka pencarian akan dilakukan terhadap 295
dokumen secara keseluruhan, dan mengembalian dokumen berdasarkan kata kunci
itemsets {base,method} sebanyak 42 dokumen. Oleh karena itu proses pencarian
dokumen akan lebih cepat apabila tertuju pada cluster yang berisi dokumen yang
telah dikelompokkan dibandingkan apabila pencarian dokumen dilakukan
terhadap keseluruhan kumpulan dokumen.
Hal yang perlu diperhatikan bahwa, penggalian itemsets berdasarkan
frekuensi kemunculan istilah akan mendapatkan term-term yang masih bersifat
umum. Hal ini dapat disebabkan oleh beberapa faktor. Pertama, tabel stopword
pada tahap praproses data belum mencakup istilah-istilah umum yang perlu
dihapus dan untuk menghapus term yang masih bersifat umum, perlu dibuat
sebuah tabel stopword tambahan.
Dari hasil pengujian terhadap term yang terbentuk, ternyata masih
banyak mengandung term yang masih bersifat umum dan tidak mempunyai
makna. Term yang muncul juga masih bersifat umum, dan hampir semua
dokumen memuat term tersebut. Hal ini dikarenakan format penulisan setiap
dokumen ringkasan tesis mengacu pada aturan yang berlaku, sehingga term-term
tersebut banyak muncul hampir pada setiap dokumen. Oleh sebab itu akan
dilakukan pengujian terhadap penambahan stopword yang dapat memunculkan
term-term yang lebik spesifik dan lebih bermakna. Tabel 6 berisi term-term yang
akan dihilangkan, sehingga dapat memunculkan term yang mengandung makna
atau yang bersifat unik.
Tabel 6 Daftar tabel stopword tambahan untuk memunculkan term yang lebih
spesifik
manag
active
develop
method
increase
result
product
effect
level
analysi
analyz
need
signific
process
produc
determin
group
Pembuatan tabel stopword diatas dilakukan terhadap hasil pengujian
sebelumnya. Term-term yang terdapat pada tabel tersebut yang akan digunakan
untuk menghilangkan term-term tersebut dan bertujuan untuk menguji apakah
dengan penambahan tabel stopword yang baru akan memunculkan term-term yang
lebih spesifik. Pengujian terhadap penambahan tabel stopword yang baru dapat
dilihat dari hasil visualisasi wordcloud pada Gambar 6. Gambar 6 (a)
memperlihatkan term-term yang dihasilkan dari tabel stopword awal, sedangkan
Gambar 6 (b) memperlihatkan term-term yang dihasilkan dengan penambahan
tabel stopword.
(a) Hasil awal
(b) Hasil penambahan stopword
Gambar 6 perubahan pembentukan itemsets akibat penambahan tabel stopword
Dari visualisasi wordcloud pada Gambar 6, dapat dilihat bahwa termterm yang frekuensi kemunculannya tinggi dan tidak bermakna sudah
dihilangkan, seperti term method, develop, increase, product, dan lain-lain.
Sedangkan hasil document term matrix akibat penambahan stopword juga masih
terdapat beberapa term yang sebenarnya masih dapat dihilangkan, karena pada
hakekatnya tidak mengandung makna. Hal ini mengacu dari hasil pembentukan
freguent itemsets yang diperlihatkan pada Tabel 7, bahwa sejumlah itemsets yang
terbentuk berisi term-term yang sebenarnya masih bersifat umum. Oleh sebab itu,
untuk membuat tabel stopword harus mempertimbangkan kaidah dan kajian yang
mendalam terhadap istilah-istilah yang sering muncul namun tidak mempunyai
makna, dan juga terhadap istilah yang jarang muncul namun mempunyai makna
yang sifatnya unik. Penambahan tabel stopword dapat mempengaruhi hasil dari
proses pembentukan frequent itemsets, clustering dan information retrieval.
Kedua, pemberian nilai sparsity, minsup dan mincof pada tahap
penentuan frequent itemsets. Pemberian nilai sparsity, minsup dan mincof juga
sangat berpengaruh dalam menentukan frequent itemset yang terbentuk. Semakin
besar nilai sparsity dan semakin kecil nilai minsup yang diberikan maka akan
semakin banyak frequent itemsets yang terbentuk, dan dapat menampilan itemsets
dengan jumlah term lebih dari dua. Oleh sebab itu, kedua faktor tersebut
memerlukan perhatian khusus karena akan mempengaruhi hasil pada tahap
penggalian frequent itemsets, clustering, dan information retrieval.
Tabel 7 memperlihatkan hasil pembentukkan frequent itemsets yang
diakibatkan perubahan daftar stopword menggunakan nilai remove sparse term
(sparsity) yaitu 0.70 s/d 0.99, nilai minsup 0.005 s/d 0.11, dan nilai mincof 0.08.
Tabel 7 Pembentukan frequent itemsets terhadap pengujian nilai sparsity, minsup
dan mincof
Nilai
Sparsity
Jumlah
term
0.70
0.80
0.90
1
9
94
0.05
0
30
185
Jumlah Frequent itemsets yang terbentuk berdasarkan nilai
minsup
0.06
0.07
0.08
0.90
0.10
0.11
0
0
0
0
0
0
23
15
11
7
4
1
80
33
18
9
4
1
Nilai
Sparsity
Jumlah
term
0.90
0.95
0.99
94
257
1407
0.05
185
202
202
Jumlah Frequent itemsets yang terbentuk berdasarkan nilai
minsup
0.06
0.07
0.08
0.90
0.10
0.11
80
33
18
9
4
1
83
33
18
9
4
1
83
33
18
9
4
1
Dari tabel di atas dapat disimpulkan bahwa semakin besar nilai sparsity
dan semakin kecil nilai minsup yang diberikan, maka makin banyak itemsets yang
terbentuk. Namun pemberian nilai minsup yang lebih besar dari 0.11, maka tidak
akan terbentuk suatu itemsets, walaupun nilai sparsity yang diberikan besar.
Pemberian nilai sparsity 0.70 pada semua pengujian dengan nilai minsup yang
diberikan tidak menghasilkan itemsets. Hal ini dikarenakan term yang dihasilkan
dari nilai tersebut hanya sebanyak satu term. Nilai mincof tidak berpengaruh
terhadap hasil pembentukan frequent itemsets walaupun diujikan dengan merubah
nilainya pada semua pengujian. Pada tahap praproses data pada dasarnya tidak
menghilangkan makna dari setiap dokumen. Document term matrix yang
dihasilkan merupakan representasi dokumen dalam vector space model, sehingga
memudahkan untuk melakukan transaksi pembentukan frequent itemsets.
Pada pengujian berdasarkan nilai sparsity 0.90, nilai minsup 0.10 dan
nilai mincof 0.8, hasil yang didapat adalah sebanyak 36 itemsets. Namun setelah
ada penambahan stopword maka pengujian dengan nilai yang sama diperoleh
hanya sebanyak 4 itemsets yang terbentuk. Dengan demikian dapat dikatakan
bahwa penambahan tabel stopword mempengaruhi hasil pembentukan frequent
itemsets. Selanjutnya dilakukan pengujian dengan nilai sparsity 0.90, nilai minsup
0.08 dan nilai mincof 0.8. Hal ini dilakukan untuk menggali dan melihat hasil
pembentukan itemsets dari penambahan stopword. Tabel 8 memperlihatkan hasil
pembentukan frequent itemsets berdasarkan nilai sparsity 0.90, nilai minsup 0.08
dan nilai mincof 0.8.
Tabel 8 Pembentukan frequent itemsets terhadap pengujian nilai sparsity 0.90,
minsup 0.08, dan mincof 0.8
No
Frequent Itemsets
Support
No
Frequent Itemsets
Support
1
{data,year}
0.0813
10
{area,data}
0.0847
2
{base,valu}
0.0915
11
{area,base}
0.1016
3
{data,inform}
0.0813
12
{base,indonesia}
0.0813
4
{base,inform}
0.0813
13
{data,differ}
0.0847
5
{base,includ}
0.0813
14
{base,differ}
0.0915
6
{data,test}
0.0915
15
{base,conduct}
0.1016
7
{data,import}
0.0813
16
{base,high}
0.0915
8
{data,object}
0.0881
17
{aim,base}
0.0983
9
{base,object}
0.1050
18
{base,data}
0.1152
Berdasarkan pembentukan itemsets yang dihasilkan setelah dilakukan
penambahan tabel stopword, kemunculan itemsets {base,data), {base,object},
{area,base} dan {base,conduct} masih tetap ada. Hal ini dikarenakan term-term
yang terdapat pada itemsets tersebut tidak dihilangkan karena diasumsikan masih
mempunyai makna. Gambar 7 memperlihatkan hubungan korelasi antara
term-term yang membentuk itemsets setelah dilakukan penambahan tabel
stopword. Perbedaan itemsets yang terbentuk sebelum dan sesudah adanya
penambahan tabel stopword dapat dilihat dari visualisasi Gambar 5 dan Gambar 7.
Dari kedua gambar tersebut menunjukkan bahwa itemsets dengan nilai support
yang tinggi terkadang dapat dihilangkan karena term yang membentuk itemsets
tersebut diasumsikan tidak mengandung makna.
Gambar 7
Korelasi antar items setelah penambahan tabel stopword
Dari pengujian yang dilakukan, term-term yang membentuk itemsets
dipengaruhi pada saat praproses data. Pada proses inilah diharapkan data yang
akan dioleh sudah tidak mengandung term-term yang masih bersifat umum dan
tidak bermakna. Pembuatan tabel stopword dan pemberian nilai sparsity
hendaknya dapat memunculkan term-term yang membentuk itemsets lebih
spesifik dan bersifat unik, sehingga dapat mewakili sebuah dokumen secara
keseluruhan. Pembentukan itemsets dapat mempengaruhi hasil clustering maupun
proses temu kembali dokumen. Dalam temu kembali dokumen, pada umumnya
penguna akan memasukkan keyword atau kata kunci dengan suatu istilah yang
sifatnya unik dan lebih spesifik.
SIMPULAN DAN SARAN
Simpulan
Hasil penelitian ini pengelompokan dokumen menggunakan algoritme
Bisecting K-Means dapat pengelompokkan itemsets yang mempunyai nilai
support tinggi. Proses clustering dengan pengujian nilai k  3 sampai dengan
k=10. Pengujian dengan nilai k  10 memperoleh hasil clustering yang baik (nilai
Sum of Squared Error adalah 132.15). Pengujian dengan nilai k  10, cluster dua
dapat mengelompokkan beberapa itemsets yang mempunyai nilai support
tertinggi, yang berisi itemsets {base,method}, {base,develop}, {analysi,base}, dan
{base,product}. Hasil clustering berbasis itemsets dan proses temu kembali
dokumen sangat dipengaruhi oleh term-term yang dihasilkan pada tahap praproses
data, yaitu pada tahap penghapusan term berdasarkan tabel stopword dan remove
sparse term. Dokumen yang mengandung frequent itemsets akan dikelompokkan
dalam satu kelompok, hal ini dilakukan untuk mempercepat proses pencarian term
berdasarkan frequent itemset. Proses pencarian terhadap kumpulan dokumen
berbasis frequent itemsets yang telah terkelompokkan dalam suatu cluster dapat
memperoleh hasil yang maksimal dibandingkan dengan pencarian term terhadap
kumpulan dokumen berbasis frequent itemsets yang belum terkelompokkan.
Saran
Pada penelitian selanjutnya dapat dilakukan pengkajian mendalam
terhadap pemberian nilai remove sparse term (sparsity) dan pembuatan tabel
stopword yang berhubungan dengan bidang pertanian, peternakan, sosial, budaya,
ekonomi, keteknikan, dan lain-lain. Sehingga dapat menghilangkan istilah-istilah
yang frekuensi kemunculannya tinggi namun masih bersifat umum, dan dapat
memunculkan istilah-istilah yang lebih spesifik atau bersifat unik walaupun
frekuensi kemunculannya rendah. Frequent itemsets yang terbentuk diharapkan
dapat mempresentasikan isi pokok dari sebuah dokumen.
DAFTAR PUSTAKA
Achtert E, Böhm C, Kriegel H.P, Kröger P. 2005. Online Hierarchical Clustering
In A Data Warehouse Environment. Proc of the 5th international
conference on data mining (ICDM). Houston (TX). 10–17
Agrawal R, Imielinski T, Swami A. 1993. Mining association rules between sets
of Items In Very Large Databases. in: Proceedings of the ACM SIGMOD
Conference on Management of data. Pp. 207–216
Aggarwal R, Gates P, Yu S. 1999. On The Merits of Building Categorization
Systems By Supervised Clustering. in: Proceedings of the 5th ACM
SIGKDD International Conference on Knowledge Discovery and Data
Mining. Pp.352–356.
Carpineto C. 2009. A survey of Web clustering engines, ACM Comput. Surv. vol.
41. Pp. 1-38.
Chisholm E, Kolda TG. 1999. New Term Weighting Formula for the Vector
Space Method in Information Retrieval. Research Report. Computer
Science and Mathematics Division. Oak Ridge National Library. Oak
Ridge. TN 3781-6367.
Manning CD, Raghavan P, Schutze H. 2009, An Introduction to Inf Information
retrieval, Online edition (c) 2009 Cambridge University Press,
Cambridge, England.
David S. 2008. Penerapan Stuktur FP-Treedan Algoritma FP Growth dalam
Optimasi Penentuan Frequent Itemset. Institut Teknologi Bandung.
Larson B, Aone C. 1999. Fast and effective text mining using linear-time
document clustering, in: Proceedings of the 5th ACM SIGKDD
International Conference on Knowledge Discovery and Data Mining.
vol. 98(463). Pp. 16–22.
Han J, Kamber M, Pei J. 2012. Data Mining: Concepts and Techniques. San
Francisco (US):Morgan–Kauffman Publisher.
Ian HM, Alistair B, Timothy C, 1999. “Managing Gigabytes: Compressing and
Indexing Documents and Images”. second edition. Morgan Kaufmann
Publishers. Academic Press.
Jian Z, Jianfeng G, Ming Z, Jiaxing W. 2001. Improving the Effectiveness of
Information Retrieval with Clustering and Fusion. Computational
Linguistics and Chinese Language Processing.
Porter M (1997). An Algorithm for Suffix Stripping. Readings in Information
Retrieval. Pp.313-316. Reprint.
Rijbergen CJ. 1979. Information Retrieval. Information Retrieval Group.
University of Glasgow. UK.
Salton G, Christopher B. 1988. Term-Weighting Approaches In Automatic Text
Retrieval. Information Processing & Management. Vol. 24. No. 5.
Pp. 513-523.
Steinbach M, Karypis G, Kumar V. 2000. A Comparison of Document Clustering
Techniques. In: Proc. of Workshop on Text Mining. 6th ACM SIGKDD
Int. Conf. on Data Mining.
Tala, FZ. 2003, A Studio s Stemming Effect on Information Retrieval in bahasa
Indonesia. Institute for Logic, Language and Computational Universiteit
van Amsterdam The Netherlands.
Tombros A. 2002. The Effectiveness of QueryBased Hierarchic Clustering of
Documents for Information Retrieval. PhD Thesis. Univerity of Glasgow.
Wen Z, Taketoshi Y, Xijin T, Qing W. 2010. Text clustering using frequent
itemsets. Knowledge - Based Systems. 23. Pp.379–388,
doi:10.1016/j.knosys.2010.01.011
Yates RB. 1999. Modern Information Retrieval. Addison Wesley-Pearson
international edition, Boston. USA.
Zamir O, Etzioni O, Madani O, Karp RM. 1997. Fast and intuitive clustering of
web documents. in: Proceedings of the 3rd International Conference on
Knowledge Discovery and Data Mining. Pp. 287–290.
Zhang W, Taketoshi Y, Xijin T, Qing W. 2010. Text clustering using frequent
itemsets.
Knowledge-Based
Systems
23.
Pp.379–388,
doi:10.1016/j.knosys.2010.01.011
Zhao Y, Karypis G. 2002, Comparison of Agglomerative and Partitional
Document Clustering Algorithms, The SIAM workshop on Clustering
High-dimensional Data and Its Applications. Washington (DC).
Lampiran 1 Source code praposes data
# PEMBERSIHAN MEMORI
rm(list=ls(all=TRUE))
# PEMANGGILAN PACKAGE
library(SnowballC)
library(Matrix)
library(tm)
# PEMANGGILAN DOKUMEN DAN PEMBUATAN CORPUS
mydata <- read.csv(file =
"C:/RDATA/PERCOBAAN/data.csv", header = FALSE, sep
= "\t", quote = "\"",
dec = ".",
na.strings = "NA", colClasses = NA,
skip = 0, check.names = TRUE, fill = TRUE,
strip.white = FALSE,
comment.char = "",
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = FALSE,
fileEncoding = "")
coba <- Corpus(DataframeSource(mydata))
coba
doc.list <- list(coba)
hasil <- data.frame(doc.list)
dim(hasil)
N.docs <- length(hasil)
names(hasil) <- paste0("doc", c(1:N.docs))
my.docs <- VectorSource(c(hasil))
my.docs$Names <- c(names(hasil))
my.corpus <- Corpus(my.docs)
my.corpus
# TRANSFORM DOKUMEN
for (j in seq(my.corpus))
{
my.corpus[[j]] <- gsub("ƒ", "
my.corpus[[j]] <- gsub("@", "
my.corpus[[j]] <- gsub("-", "
my.corpus[[j]])
my.corpus[[j]] <- gsub("\\|",
}
", my.corpus[[j]])
", my.corpus[[j]])
",
" ", my.corpus[[j]])
Lanjutan
#PRAPROSES DOKUMEN
my.corpus <- tm_map(my.corpus, tolower)
my.corpus$doc1
my.corpus<- tm_map(my.corpus, removeWords,
stopwords("english"))
my.corpus <- tm_map(my.corpus, removePunctuation)
my.corpus <- tm_map(my.corpus, removeNumbers)
my.corpus <- tm_map(my.corpus, stemDocument)
my.corpus <- tm_map(my.corpus, stripWhitespace)
# STOPWORD DOKUMEN
mystopwords <c("can","use","result","dan","end","get","iii","ind
ah","jati","just","like","take","user","view","one"
,"research","result","studi")
my.corpus <- tm_map(my.corpus, removeWords,
mystopwords)
my.corpus$doc1
# PEMBENTUKAN DAN PENYIMPANAN DOCUMEN TERM MATRIX
doc.term.matrix.stm <DocumentTermMatrix(my.corpus)
dim(doc.term.matrix.stm)
doc.term.matrix <removeSparseTerms(doc.term.matrix.stm, 0.90)
doc.term.matrix <- as.matrix(doc.term.matrix)
dim(doc.term.matrix)
#EXPLORING AND DISTRIBUTION OF TERM FREQUENCIES
freq <- sort(colSums(as.matrix(dtm)), decreasing=TRUE)
#VISUALISASI WORDCLOUDS
library(wordcloud)
set.seed(142)
wordcloud(names(freq), freq, min.freq=30, scale=c(2, .1),
colors=brewer.pal(6, "Dark2"))
Lampiran 2 Source code penggalian frequent itemsets
# PEMBENTUKAN TRANSAKSI TERM
library(arules)
trans <- as(doc.term.matrix, "transactions")
# PENGGALIAN FREQUENT ITEMSET MENGGUNAKAN APRIORI
frequent <- apriori(trans, parameter =
list(sup=0.10, conf = 0.8, target="frequent
itemsets", minlen=2, maxlen=4))
# PEMBENTUKAN MATRIK FREQUENT ITEMSETS
frequent <- as(items(frequent), "matrix")
DISTRIBUTION OF TERM FREQUENCIES
freq <- sort(colSums(as.matrix(dtm)),
decreasing=TRUE)
#VISUALISASI WORDCLOUDS FREQUENT ITEMSETS
library(wordcloud)
set.seed(142)
wordcloud(names(freq), freq, min.freq=30,
scale=c(2, .1), colors=brewer.pal(6, "Dark2"))
Lampiran 3 Source code clustering menggunakan algoritme Bisecting K- Means
# MENGHITUNG BOBOT TERM MATRIX
get.tf.idf.weights <- function(tf.vec, df) {
# Computes tfidf weights from a term frequency
vector and a document frequency scalar
weight = rep(0, length(tf.vec))
weight[tf.vec > 0] = (1 + log2(tf.vec[tf.vec >
0])) * log2(N.docs/df)
weight
}
get.weights.per.term.vec <- function(tfidf.row) {
term.df <- sum(tfidf.row[1:N.docs] > 0)
)
tf.idf.vec <- get.tf.idf.weights(tfidf.row,
term.df)
return(tf.idf.vec)
}
tfidf.matrix <- t(apply(doc.term.matrix, c(1), FUN
= get.weights.per.term.vec))
colnames(tfidf.matrix) <- colnames(doc.term.matrix)
tfidf.matrix <- scale(tfidf.matrix, center = FALSE,
scale = sqrt(colSums(tfidf.matrix^2)))
# GENERAT MATRIX PEMBOBOTAN TERM
mat <- as.matrix(tfidf.matrix)
rownames(mat) <- 1:nrow(mat)
# NORMALISASI VEKTOR MENGGUNAKAN EUCLIDEAN
norm_Euclidean <- function(mat) mat/apply(mat,
MARGIN=1, FUN=function(x) sum(x^2)^.5)
Normalized <- norm_Euclidean(mat)
# FUNGSI MENGHITUNG JARAK CENTROID
centroidDistance <- function(inputData,
inputCentroid) {
dists = apply(inputData, 1,
function(subDataMatrix)
apply(inputCentroid,1,function(subCentroid)
dist(rbind(subDataMatrix, subCentroid))
)
)
return(t(dists))
}
assignToClusters<-function(inputData,
inputCentroid) {
Lanjutan
distanceToCentroid <- centroidDistance(inputData,
inputCentroid)
clusterLabel = apply(distanceToCentroid, 1,
function(subdistanceToCentroid)
which.min(subdistanceToCentroid))
return(clusterLabel)
}
# MENGHITUNG SSE TIAP CLUSTER
SSECalculator<-function(inputData, inputCentroid) {
dists = apply(inputData, 1,
function(subDataMatrix)
apply(inputCentroid,1,function(subCentroid)
dist(rbind(subDataMatrix, subCentroid))^2
)
)
##return transpose of dists calcualted
return(sum(dists))
}
# FUNGSI K-Means
KMeans <- function(inputdata,k) {
dataMatrix <- as.matrix(inputdata)
rows <- as.integer(nrow(dataMatrix))
columns <- as.integer(ncol(dataMatrix))
storage.mode(dataMatrix)='double'
currentCentroid <- matrix(nrow=k,ncol=columns)
randomCentroidIndex <- sample(1:rows, k)
currentCentroid <-dataMatrix[randomCentroidIndex,]
prevCentroid <- matrix(nrow=k,ncol=columns,0)
while(all(currentCentroid == prevCentroid)!=TRUE){
prevCentroid <- currentCentroid
clusters <assignToClusters(dataMatrix,currentCentroid)
for(i in 1:k)
currentCentroid[i,] <colMeans(dataMatrix[which(clusters == i), ])
currentCentroid <- replace(currentCentroid,
is.na(currentCentroid), .Machine$integer.max)
}
newDataMatrix = cbind(dataMatrix,clusters)
result = data.frame(newDataMatrix)
centroid = currentCentroid;
SSE = matrix(nrow=k,ncol=1)
Lanjutan
for(i in 1:k) {
inputMat =
newDataMatrix[(which(newDataMatrix[,ncol(newDataMat
rix)] == i)),-c(ncol(newDataMatrix))]
inputCent =matrix(centroid[i,],1,columns)
SSE[i,] <-SSECalculator(inputMat,inputCent)
}
return(list(result=result,centroid=centroid,SSE=SSE
))
}
# FUNGSI BISECTING K-MEANS
BiKMeans <- function(inputdata,numberOfClusters) {
dataMatrix <- as.matrix(inputdata)
SSE = matrix(nrow=numberOfClusters,ncol=1,.Machine$integer.max)
result = KMeans(dataMatrix,2)
resultmatrix = result$result;
SSE[1,] = result$SSE[1,]
SSE[2,] = result$SSE[2,]
k=2
clusters = result$clusters
##repeat the steps till we get all k clusters
while(k < numberOfClusters) {
clusterToSplit = which.max(SSE)
points = which(resultmatrix[,ncol(resultmatrix)]
== clusterToSplit)
inputMat = resultmatrix[points,ncol(resultmatrix)]
outResult = KMeans(inputMat,2)
outResultMat <- outResult$result
outResultMat <- as.matrix(outResultMat)
outResultMat[(which(outResultMat[,ncol(resultmat
rix)] == 1)),ncol(outResultMat)] = 'a'
outResultMat[(which(outResultMat[,ncol(resultmat
rix)] == 2)),ncol(outResultMat)] = 'b'
outResultMat[(which(outResultMat[,ncol(resultmat
rix)] == 'a')),ncol(outResultMat)] = clusterToSplit
outResultMat[(which(outResultMat[,ncol(resultmat
rix)] == 'b')),ncol(outResultMat)] = k +1
storage.mode(outResultMat)='double'
for(i in 1:length(points)) {
resultmatrix[points[i],ncol(resultmatrix)]
= outResultMat[i,ncol(outResultMat)]
}
outPutSSE = outResult$SSE
Lanjutan
SSE[clusterToSplit] = outPutSSE[1,];
SSE[k+1] = outPutSSE[2,];
k <- k +1
outPutclusters <- outResult$clusters
clusters = outPutclusters
}
result = data.frame(resultmatrix)
return(list(result=result, SSE=SSE,
clusters=clusters ))
}
# PROSES CLUSTERING BISECTING KMEANS
k <-3
result = BiKMeans(cosine, 3)
result_clusters = result$result
result_SSE = result$SSE
# MENYIMPAN HASIL CLUSTERING BISECTING KMEANS
write.csv(result_clusters,file="C:/RDATA/PERCOBAAN/
bikmeans_k=3.csv")
write.csv(result_SSE,file="C:/RDATA/PERCOBAAN/SSE_c
osine_k=10.csv")
RIWAYAT HIDUP
Penulis lahir di Jayapura, provinsi Papua pada tanggal 03 Desember 1974
sebagai anak Pertama dari tiga bersaudara oleh pasangan Bapak Ngadimin dan Ibu
Karyati. Pada tahun 2001 penulis mendapatkan gelar sarjana dari Sekolah Tinggi
Manajemen Informatika dan Komputer (STMIK) AKAKOM Yogyakarta pada
Program Studi Sistem Informasi. Mulai tahun 2008 penulis bekerja sebagai staf
pengajar di Amik Umel Mandiri Jayapura pada Program Studi Manajemen
Informatika. Kemudian pada tahun 2012 penulis melanjutkan pendidikan jenjang
Magister di Institut Pertanian Bogor (IPB) pada Program Studi Ilmu Komputer
Fakultas Matematika dan Ilmu Pengetahuan Alam.
Download