[snia 2013] indexing and retrieval engine wahyu hidayat
TRANSCRIPT
INDEXING AND RETRIEVAL ENGINE UNTUK DOKUMEN BERBAHASA INDONESIA DENGAN MENGGUNAKAN INVERTED INDEX
Wahyu HidayatTelkom University
Bandung18 Desember 2013
SNIA 2013
Problems with Text Documents
Inverted Index as a Solution
Research Questions
Q1
• How to index and retrieve large number of Indonesian text (efficiently)?
Q2
• How’s the indexing and retrieval engine performance?
Indexing and Retrieval Engine
HASIL QUERY
QUERY
HIMPUNANDOKUMEN
(*.TXT)
USER INVERTEDINDEX
SORTING&
MERGINGSTOPPING STEMMINGPARSING
QUERY
KAMUS STOPWORDS
(*.TXT)
KAMUS KATA DASAR (*.TXT)
Indexing – Parsing Process
ibu 1
ibu 1
pergi 1
pasar 1
membeli 1
gula 1
pasir 1
budi 2
dan 2
iwan 2
bepergian
2
dengan 2
sepeda 2
motor 2
Dokumen1:
Dokumen2:
Parameter :
Ibu-ibu pergi ke pasar membeli 100 gr gula pasir.
Budi dan Iwan bepergian dengan sepeda motor.
MinWordLength = 3IndexNumbers = FalseSpaceChars
Ibu-ibu pergi ke pasar membeli 100 gr gula pasir.
Indexing – Stopping Process
ibu 1
ibu 1
pergi 1
pasar 1
membeli 1
gula 1
pasir 1
budi 2
dan 2
iwan 2
bepergian
2
dengan 2
sepeda 2
motor 2
ibu 1
ibu 1
pergi 1
pasar 1
membeli 1
gula 1
pasir 1
budi 2
iwan 2
bepergian 2
sepeda 2
motor 2
ibu 1
ibu 1
pergi 1
pasar 1
membeli 1
gula 1
pasir 1
budi 2
dan 2
iwan 2
bepergian
2
dengan 2
sepeda 2
motor 2
STOPWORDS.txt...adalahataudandenganyaitu...
STOPWORDS.txt...adalahataudandenganyaitu...
Indexing – Stemming Process
ibu 1
ibu 1
pergi 1
pasar 1
membeli 1
gula 1
pasir 1
budi 2
iwan 2
bepergian
2
sepeda 2
motor 2
ibu 1
ibu 1
pergi 1
pasar 1
membeli 1
gula 1
pasir 1
budi 2
iwan 2
bepergian
2
sepeda 2
motor 2
KATADASAR.txt...beligulamotorpasarpasirpergisepeda...
ATURAN MORFOLOGI
me-, pe-, ter-, ber-
ibu 1
ibu 1
pergi 1
pasar 1
beli 1
gula 1
pasir 1
budi 2
iwan 2
pergi 2
sepeda 2
motor 2
KATADASAR.txt...beligulamotorpasarpasirpergisepeda...
ATURAN MORFOLOGI
me-, pe-, ter-, ber-
Incremental Stemming
Tahap Awalan yang dibuang Akhiran yang dibuang
1 ku- dan ke- -lah, -kah dan -pun
2 ber- dan di- -ku, -mu dan -nya
3 se-, ke- dan me- -kan
4 pe-, per- dan ter- -an
5antar-, pra-, ke- dan
swa-
-anda, -nda, -da, -man, -wiah, -iah, -wi, -wan, -
wati, -ni dan -i
KATA DASAR 5 4 3 2 154321
Indexing – Merging and Sorting
Term Doc
beli 1
budi 2
gula 1
ibu 1
ibu 1
iwan 2
motor 2
pasar 1
pasir 1
pergi 1
pergi 2
sepeda 2
Term Doc
ibu 1
ibu 1
pergi 1
pasar 1
beli 1
gula 1
pasir 1
budi 2
iwan 2
pergi 2
sepeda 2
motor 2
Term Doc
beli 1
budi 2
gula 1
ibu 1
ibu 1
iwan 2
motor 2
pasar 1
pasir 1
pergi 1
pergi 2
sepeda 2
INVERTED INDEX
Term Doc Freq
beli 1 1
budi 2 1
gula 1 1
ibu 1 2
iwan 2 1
motor 2 1
pasar 1 1
pasir 1 1
pergi 1 1
pergi 2 1
sepeda
21
Retrieval – Possible Queries
Single keyword
Multi keyword with
logical operator
AND, OR & NOTMulti
keyword without logical
operator
Combinations
Test Case & Scenario
Test Case: Al Quran Terjemahan Indonesia, 6464 text files (*.txt)
Test Reference: Windows Full Text Search Performance Parameter:
Precision
Recall
Time (second)
𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑡𝑝𝑡𝑝+ 𝑓𝑛
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑡𝑝𝑡𝑝+ 𝑓𝑝
Test Result – Indexing Engine
Proses Waktu Keterangan
Parsing 36 detik menghasilkan 227.160 term
Stopping 22 detik menghasilkan 126.094 term
Stemming 74 detik mengekstrak kata dasar
Sorting dan Merging 15 detik menghasilkan 94.541 entri indeks
Penulisan Indeks 214 detik menuliskan 94.541 entri indeks ke
disk
36 22
74
15
214
Parsing
Stopping
Stemming
Sorting & Merg-ing
Index Writing
Pars
ing
Stop
ping
Stem
min
g
Sorti
ng &
Mer
ging
Inde
x W
ritin
g0
100000
200000
Test Result – Retrieval Engine
Keyword
Pencarian dengan inverted index
Waktu pencarian
(detik)
Hasil Pencarian (dokumen
)sekutu 0,043 130 mempersekutukan
0,042 130
mempersekutukan tuhannya
0,078 305
malaikat yang terdekat
0,061 220
makan minum 0,048 152
ayah 0,010 31 zuhur 0,001 1
Precision = 41,88%Recall = 100%
Keyword
Pencarian dengan fasilitas search pada
Windows
Waktu pencarian
(detik)
Hasil Pencarian (dokumen
)sekutu 21,13 45 mempersekutukan
21,09 60
mempersekutukan tuhannya
20,51 4
Malaikat yang terdekat
20,43 1
makan minum 20,36 21
ayah 20,95 30zuhur 22,85 45
Precision = 100%Recall = 100%
Conclusion
Indexing dilakukan dengan melalui beberapa tahap: parsing, stopping, stemming, sorting, merging dan index writing. Tahap index writing adalah proses yang memakan waktu paling lama yaitu sekitar 59,27% dari total waktu indexing.
proses indexing tidak mengurangi nilai recall, namun menurunkan nilai precision hingga 41,88% demi meningkatkan kecepatan retrieval hingga 3800 kali lipat.