modelling and structuring information for notebox text

advertisement
IV KAJIAN IMPLEMENTASI
Bab ini tidak menjelaskan implementasi sebagai proses konstruksi atau
pengembangan aplikasi melalui pengkodean, tetapi menguraikan cara untuk
mengembangkan aplikasi document classification mencakup tools yang dapat
digunakan untuk mengkonstruksi aplikasi ini.
Tools yang dimaksud adalah
library-library yang bersifat open-source, yang berkaitan dengan aplikasi
pengelompokkan dokumen.
Aplikasi pengelompokkan dokumen merupakan bagian dari bidang penelitian
tentang text mining.
Text mining menggunakan teknik-teknik information
retrieval, data mining, machine learning, dan knowledge management. Untuk
mengembangkan aplikasi document classification, fungsi-fungsi dalam proses
parsing dokumen, pra-pengolahan dokumen (tokenizing, stop word removal,
stemming,
weighting),
clustering
dan
klasifikasi
dokumen
dapat
diimplimentasikan menggunakan class-class dan method-method yang telah
disediakan oleh open-source library dari bidang-bidang penelitian yang disebut
diatas.
IV.1 Open-Source Library Untuk Aplikasi Document Classification
Library yang akan digunakan untuk mengembangkan aplikasi document
classification disesuaikan dengan kebutuhan proses pengelompokkan dokumen
adalah library untuk mengekstrak dokumen ke dalam bentuk tekstual dan library
untuk melakukan pra-pengolahan dokumen dan pengelompokkan dokumen.
Berikut ini adalah beberapa library dalam bahasa Java yang dapat digunakan
untuk mengembangkan aplikasi document classification: Untuk mengekstrak
dokumen ke dalam bentuk tekstual, beberapa library open source yang dapat
digunakan antara lain adalah JTidy dan NekoHTML untuk dokumen HTML,
PDFBox untuk dokumen PDF, dan POI dan TextMining untuk dokumen Word.
Untuk melakukan pra-pengolahan dokumen dapat menggunakan library Lucene,
dan pengelompokkan dokumen dapat menggunakan library WEKA.
Library
yang disebutkan diatas adalah library-library yang ditulis dalam bahasa Java.
IV-1
1. JTidy. JTidy adalah open-source library yang ditulis oleh Andy Quick, untuk
melakukan parsing dokumen HTML. Library JTidy dapat diperoleh pada
http://jtidy.sourceforge.net/.
2. NekoHTML. NekoHTML adalah open-source library yang ditulis oleh Andy
Clark, untuk melakukan parsing dokumen HTML.
LIbrary HTML dapat
diperoleh pada http://www.apache.org/~andyc/neko/doc/index.html.
3. PDFBox.
PDFBox adalah open-source library yang ditulis oleh Ben
Litchfield, untuk melakukan parsing dokumen PDF. Library PDFBox dapat
diperoleh pada http://www.pdfbox.org/.
4. POI. POI merupakan bagian dari Jakarta Project yang dikembangkan dengan
tujuan untuk menyediakan Java API untuk memanipulasi beragam format file
berdasarkan format Microsoft OLE 2 Compound Document.
POI dapat
digunakan untuk mengekstrak dokumen MS.Word, MS. Excel, dan dokumen
lain yang memiliki format OLE 2 Compound Document. Library POI dapat
diperoleh pada http://jakarta.apache.org/poi.
5. TextMining. TextMining adalah open-source library yang ditulis oleh Ryan
Ackley, untuk melakukan parsing dokumen MS.Word. Library TextMining
dapat diperoleh pada http://textmining.org/.
6. WEKA (Waikato Environment for Knowledge Analysis).
WEKA adalah
open-source system untuk aplikasi data mining yang dibangun oleh University
of Waikato New Zealand. WEKA berisi tools untuk menangani proses yang
berkaitan dengan data mining seperti regression, classification, clustering,
association rule mining, dan attribute selection [18]. Keterangan lengkap
tentang WEKA dapat dibaca pada [18] dan pada situs WEKA:
http://www.cs.waikato.ac.nz/ml/weka/.
7. Lucene.
Lucene adalah open-source library untuk aplikasi information
retrieval, ditulis oleh Doug Cutting dan terlisensi dibawah Apache Software
Foundation.
Lucene menyediakan fungsi-fungsi untuk indexing dan
searching. Keterangan lengkap tentang Lucene dapat dibaca pada [19], dan
library
Lucene
dapat
diperoleh
http://www.lucene.apache.org/java/docs/index.html.
IV-2
pada
situs
IV.2 Class Untuk Implementasi Aplikasi Document Classification
Arsitektur implementasi kelas-kelas potensial yang didefinisikan dari diagram use
case pada aplikasi document classification menggunakan open-source library,
yang disebutkan pada bagian IV.2, dijelaskan pada gambar IV.1. Tabel IV.1
memberikan penjelasan lebih detil tentang class-class yang dapat digunakan dari
setiap open-source library yang disebutkan diatas.
Gambar IV.1. Arsitektur Implementasi Kelas
Pada gambar IV.1, ekstraksi teks menggunakan library JTidy untuk dokumen
HTML, PDFBox untuk dokumen PDF, dan TextMining untuk dokumen Word.
Untuk proses pra-pengolahan dokumen menggunakan beberapa class dari library
Lucene, dan untuk proses pengelompokkan dokumen dapat menggunakan
beberapa class dari library Weka.
IV-3
Tabel IV.1. Class Yang Dapat Digunakan Untuk Implementasi Aplikasi Document Classification
Kelas Pada Aplikasi Document
Classification
Package
LoadDocument
Class Dari Open Source Library
Library
Kelas
LoadDocument
Nama Class
Lucene
Deskripsi Class
FileIndexer.java
Kelas FileIndexer berfungsi untuk mengindeks
FileHandler.java
direktori yang menyimpan dokumen. Untuk
membaca dokumen digunakan method
getDocument dari FileHandler.
DocParser
HTMLParser
JTidy
JTidyHTMLHandler.java
Lucene
PDFParser
PDFBox
dokumen HTML ke dalam format teks
PDFBoxPDFHandler.java
Lucene
WordParser
FeatureExtractor
Tokenizer
Kelas pada library Lucene untuk mengekstrak
Kelas pada library Lucene untuk mengekstrak
dokumen PDF ke dalam format teks
TextMining
TextMiningWordDocHandl
Kelas pada library Lucene untuk mengekstrak
Lucene
er.java
dokumen Word ke dalam format teks
Lucene
WhitespaceAnalyzer.java
Kelas pada library Lucene untuk membagi
dokumen menjadi token-token kata
Stopwords
Lucene
StopAnalyzer.java
Kelas pada library Lucene untuk melakukan
lowercasing dan menghilangkan stop words
PorterStemmer
Lucene
PorterStemFilter.java
Kelas pada library Lucene untuk melakukan
PorterStemmer.java
stemming dengan algoritma Porter
IV-4
Kelas Pada Aplikasi Document
Classification
Package
Weighting
Class Dari Open Source Library
Library
Kelas
CountTF
Nama Class
Lucene
Explainer.java
Deskripsi Class
Kelas untuk menghitung tf dari term tertentu,
menghitung idf, dan ID dokumen yang mengandung
term yang dihitung.
CountTFIDF
Lucene
Explainer.java
Kelas untuk menghitung tf dari term tertentu,
menghitung idf, dan ID dokumen yang mengandung
term yang dihitung.
DocumentClassifier
DocClusterer
Weka
SimpleKMeans.java
Kelas untuk meng-cluster dokumen dengan
algoritma k-means
DocClassifier
ClassifierEstimator
StructureClassifier
StructureClassifier
Weka
Classifier.java
Kelas Classifier pada library WEKA berfungsi
Lucene
Similarity.java
untuk membangun classifier
Weka
Evaluation.java
Kelas untuk mengevaluasi model yang dihasilkan
EvaluationUtils.java
dari fase learning pada algoritma klasifikasi
BayesNet.java
Kelas untuk mengklasifikasi objek dengan
Weka
algoritma Bayes Network. Kelas ini dapat
digunakan untuk mengklasifikasi struktur dokumen
IV-5
IV.3 Rencana Implementasi
Rencana implementasi menjelaskan lingkungan implementasi aplikasi dan apa
yang perlu dilakukan untuk mengembangkan atau mengimplementasi aplikasi
document classification menggunakan model pengelompokkan dokumen yang
dirancang pada tesis ini.
IV.3.1 Lingkungan Implementasi
Model pengelompokkan dokumen untuk aplikasi document classification yang
dirancang dapat diimplementasi pada lingkungan perangkat lunak sebagai berikut:
1. Sistem Operasi Windows XP
2. Platform pengembangan Java, yaitu Java Development Kit versi 1.5
3. IDE NetBeans 6.0
4. MySQL sebagai Database Management System dengan menggunakan
MySQL Connector/J untuk menghubungkan MySQL dengan aplikasi Java
melalui JDBC driver.
Lingkungan perangkat keras yang dapat digunakan untuk mengimplementasi
model pengelompokkan dokumen adalah:
1. Processor Intel Pentium 4 1.70 GHz
2. RAM 1 GB
IV.3.2 Implementasi Aplikasi
Hal-hal yang perlu dilakukan untuk mengembangkan atau mengimplementasi
aplikasi document classification menggunakan model pengelompokkan dokumen
yang dirancang adalah sebagai berikut:
1. Melakukan kajian tentang library yang akan digunakan, khususnya library
Lucene dan WEKA.
2. Membangun aplikasi document classification menggunakan class-class yang
dijabarkan pada bagian IV.2.
3. Membangun antarmuka untuk aplikasi document classification.
IV-6
4. Membangun basis data pengelompokkan dokumen.
Pada bagian IV.2 telah dijabarkan class-class dari open-source library yang dapat
digunakan untuk mengembangkan aplikasi document classification. Namun, ada
beberapa fungsi-fungsi yang berkaitan dengan proses pengelompokkan dokumen
dan struktur dokumen yang tidak tersedia pada library yang disebutkan diatas.
Sehingga, perlu melakukan penambahan fungsi atau method yang disesuaikan
dengan kebutuhan proses pada aplikasi document classification.
1. Pembobotan term. Kelas Explainer melakukan penghitungan tf dan idf
dari term yang berasal dari query, dan menampilkan hasil penghitungan tf, idf,
dan ID dokumen yang mengandung term yang dihitung. Method tambahan
yang diperlukan:
a. Method untuk membaca term yang disimpan pada tabel Term.
b. Method untuk menyimpan term yang dibobotkan, hasil pembobotan
term (tf) dan ID dokumen yang mengandung term yang dihitung, pada
tabel TermWeight[A]...[Z].
2. Clustering dokumen.
Fungsi yang perlu ditambahkan berkaitan dengan
proses clustering dokumen adalah method untuk menyimpan hasil clustering
(ID dokumen dan nama cluster) ke dalam tabel DocCluster.
3. Klasifikasi dokumen. Kelas Similarity pada library Lucene merupakan kelas
untuk mengukur kesamaan antara keyword pada query dengan dokumen.
Untuk aplikasi document classification dengan menggunakan algoritma
Centroid-based, kesamaan dihitung antara dokumen dengan centroid;
sehingga, perlu dilakukan penambahan fungsi-fungsi sebagai berikut:
a. Method untuk membaca data dokumen (ID dokumen dan nama cluster)
dari tabel DocCluster.
b. Method untuk membangun classifier yaitu untuk menghitung vektor
centroid yang akan menjadi kelas-kelas klasifikasi.
c. Method untuk mengukur kesamaan antara dokumen dengan vektor
centroid.
Proses mengukur kesamaan antara dokumen dengan
centroid adalah proses yang iteratif.
IV-7
d. Method untuk mengelompokkan dokumen ke dalam centroid yang
paling sama atau memiliki nilai similarity yang paling tinggi.
e. Method untuk menyimpan hasil pengelompokkan dokumen (ID
dokumen dan nama class) ke dalam tabel DocClass.
4. Pengelompokkan elemen dokumen.
Untuk mengelompokkan elemen
dokumen, data tentang elemen-elemen dokumen seperti Title dan Author dapat
diperoleh dari meta-data atau property dokumen.
Tetapi, tidak semua
dokumen memiliki meta-data yang lengkap. Pada dokumen dengan meta-data
yang tidak lengkap, elemen dokumen dapat dibaca dari struktur logik pada
konten/ isi dokumen. Untuk membaca struktur dari konten dokumen perlu
dikembangkan sebuah pola atau algoritma yang dapat mengenali elemen
dokumen sebagai struktur logik dokumen tersebut.
IV-8
Download