SlideShare a Scribd company logo
1 of 16
SNIA
2013
Bandung
18 Desember 2013

INDEXING AND RETRIEVAL ENGINE
UNTUK DOKUMEN BERBAHASA INDONESIA
DENGAN MENGGUNAKAN INVERTED INDEX
Wahyu Hidayat
Telkom University
Problems with Text Documents
Inverted Index as a Solution
Research Questions

Q1

Q2

• How to index and retrieve large
number of Indonesian text
(efficiently)?
• How’s the indexing and retrieval
engine performance?
Indexing and Retrieval Engine
KAMUS
STOPWORDS
(*.TXT)

STOPPING

HIMPUNAN
DOKUMEN
(*.TXT)

PARSING

KAMUS KATA
DASAR (*.TXT)

STEMMING

SORTING
&
MERGING

QUERY
QUERY

USER
HASIL
QUERY

INVERTED
INDEX
Indexing – Parsing Process
ibu

MinWordLength = 3
Parameter :
IndexNumbers = False
SpaceChars

1

pergi

1

pasar

1

1

gula

1

pasir

1

budi

Dokumen2: Budi dan Iwan bepergian
dengan sepeda motor.

ibu

membeli

Ibu-ibu pergi ke pasar
Dokumen1: membeli 100 gr gula
pasir.

1

2

dan

2

iwan

2

bepergian

2

dengan

2

sepeda

2

motor

2
Indexing – Stopping Process
ibu

1

ibu

1

ibu

1

ibu

1

pergi

1

pergi

1

pasar

1

pasar

1

membeli

1

membeli

1

gula

1

gula

1

pasir

1

pasir

1

budi

2

budi

2

dan

2

iwan

2

iwan

2

bepergian

2

bepergian

2

sepeda

2

dengan

2

motor

2

sepeda

2

motor

2

STOPWORDS.txt
...
adalah
atau
dan
dengan
yaitu
...
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

ATURAN
MORFOLOGI
me-, pe-, ter-, ber-

ibu

1

ibu

1

pergi

1

pasar

1

beli

1

gula

1

pasir

1

budi

2

iwan

KATADASAR.txt
...
beli
gula
motor
pasar
pasir
pergi
sepeda
...

2

pergi

2

sepeda

2

motor

2
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

antar-, pra-, ke- dan swa-

-anda, -nda, -da, -man, -wiah, iah, -wi, -wan, -wati, -ni dan i

5
Indexing – Merging and Sorting
Term

Doc

Term

Doc

INVERTED INDEX

ibu

1

beli

1

Term

ibu

1

budi

2

beli

1

1

pergi

1

gula

1

budi

2

1

pasar

1

ibu

1

gula

1

1

beli

1

ibu

1

ibu

1

2

gula

1

iwan

2

iwan

2

1

pasir

1

motor

2

motor

2

1

budi

2

pasar

1

pasar

1

1

iwan

2

pasir

1

pasir

1

1

pergi

2

pergi

1

pergi

1

1

sepeda

2

pergi

2

pergi

2

1

motor

2

sepeda

2

sepeda

2

1

Doc

Freq
Retrieval – Possible Queries

Single keyword

Multi keyword
with logical
operator AND,
OR & NOT

Multi 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

250000
200000
150000
100000 214
50000
0

Parsing
36

22

Stopping
74

Stemming
15

Sorting & Merging
Parsing

Stopping

Stemming

Sorting &
Merging

Index
Writing

Index Writing
Test Result – Retrieval Engine

Keyword

sekutu
mempersekutuk
an
mempersekutuk
an tuhannya
Malaikat yang
terdekat
makan minum
ayah
zuhur

Pencarian dengan
fasilitas search pada
Windows
Waktu
Hasil
pencarian Pencarian
(detik)
(dokumen)
21,13
45
21,09

60

20,51

4

20,43

1

20,36
20,95
22,85

21
30
45

Precision = 100%
Recall = 100%

Keyword

sekutu
mempersekutuka
n
mempersekutuka
n tuhannya
malaikat yang
terdekat

Pencarian dengan
inverted index
Waktu
Hasil
pencarian
Pencarian
(detik)
(dokumen)
0,043
130
0,042

130

0,078

305

0,061

220

makan minum

0,048

152

ayah
zuhur

0,010
0,001

31
1

Precision = 41,88%
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.
[Snia 2013] indexing and retrieval engine   wahyu hidayat

More Related Content

Viewers also liked

QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》
QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》
QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》EcoTrend Publications
 
03 mi3222 - migrasi data antara ms access dan oracle dengan csv
03   mi3222 - migrasi data antara ms access dan oracle dengan csv03   mi3222 - migrasi data antara ms access dan oracle dengan csv
03 mi3222 - migrasi data antara ms access dan oracle dengan csvWahyu Hidayat
 
09 mi3222 - migrasi data dengan repository secara offline source
09   mi3222 - migrasi data dengan repository secara offline source09   mi3222 - migrasi data dengan repository secara offline source
09 mi3222 - migrasi data dengan repository secara offline sourceWahyu Hidayat
 
10 mi3222 - migrasi data dengan repository secara offline destination
10   mi3222 - migrasi data dengan repository secara offline destination10   mi3222 - migrasi data dengan repository secara offline destination
10 mi3222 - migrasi data dengan repository secara offline destinationWahyu Hidayat
 
Geo23.1103 winter2015 session10
Geo23.1103 winter2015 session10Geo23.1103 winter2015 session10
Geo23.1103 winter2015 session10Melanie Zurba
 

Viewers also liked (9)

QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》
QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》
QB1075《這樣圖解就對了!:培養理解力、企畫力、傳達力的20堂圖解課》
 
03 mi3222 - migrasi data antara ms access dan oracle dengan csv
03   mi3222 - migrasi data antara ms access dan oracle dengan csv03   mi3222 - migrasi data antara ms access dan oracle dengan csv
03 mi3222 - migrasi data antara ms access dan oracle dengan csv
 
QB1074《敢說又能說》
QB1074《敢說又能說》QB1074《敢說又能說》
QB1074《敢說又能說》
 
09 mi3222 - migrasi data dengan repository secara offline source
09   mi3222 - migrasi data dengan repository secara offline source09   mi3222 - migrasi data dengan repository secara offline source
09 mi3222 - migrasi data dengan repository secara offline source
 
10 mi3222 - migrasi data dengan repository secara offline destination
10   mi3222 - migrasi data dengan repository secara offline destination10   mi3222 - migrasi data dengan repository secara offline destination
10 mi3222 - migrasi data dengan repository secara offline destination
 
策略思考的技術
策略思考的技術策略思考的技術
策略思考的技術
 
Geo23.1103 winter2015 session10
Geo23.1103 winter2015 session10Geo23.1103 winter2015 session10
Geo23.1103 winter2015 session10
 
Censer
CenserCenser
Censer
 
顧客只有24小時
顧客只有24小時顧客只有24小時
顧客只有24小時
 

[Snia 2013] indexing and retrieval engine wahyu hidayat

  • 1. SNIA 2013 Bandung 18 Desember 2013 INDEXING AND RETRIEVAL ENGINE UNTUK DOKUMEN BERBAHASA INDONESIA DENGAN MENGGUNAKAN INVERTED INDEX Wahyu Hidayat Telkom University
  • 2. Problems with Text Documents
  • 3. Inverted Index as a Solution
  • 4. Research Questions Q1 Q2 • How to index and retrieve large number of Indonesian text (efficiently)? • How’s the indexing and retrieval engine performance?
  • 5. Indexing and Retrieval Engine KAMUS STOPWORDS (*.TXT) STOPPING HIMPUNAN DOKUMEN (*.TXT) PARSING KAMUS KATA DASAR (*.TXT) STEMMING SORTING & MERGING QUERY QUERY USER HASIL QUERY INVERTED INDEX
  • 6. Indexing – Parsing Process ibu MinWordLength = 3 Parameter : IndexNumbers = False SpaceChars 1 pergi 1 pasar 1 1 gula 1 pasir 1 budi Dokumen2: Budi dan Iwan bepergian dengan sepeda motor. ibu membeli Ibu-ibu pergi ke pasar Dokumen1: membeli 100 gr gula pasir. 1 2 dan 2 iwan 2 bepergian 2 dengan 2 sepeda 2 motor 2
  • 7. Indexing – Stopping Process ibu 1 ibu 1 ibu 1 ibu 1 pergi 1 pergi 1 pasar 1 pasar 1 membeli 1 membeli 1 gula 1 gula 1 pasir 1 pasir 1 budi 2 budi 2 dan 2 iwan 2 iwan 2 bepergian 2 bepergian 2 sepeda 2 dengan 2 motor 2 sepeda 2 motor 2 STOPWORDS.txt ... adalah atau dan dengan yaitu ...
  • 8. 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 ATURAN MORFOLOGI me-, pe-, ter-, ber- ibu 1 ibu 1 pergi 1 pasar 1 beli 1 gula 1 pasir 1 budi 2 iwan KATADASAR.txt ... beli gula motor pasar pasir pergi sepeda ... 2 pergi 2 sepeda 2 motor 2
  • 9. 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 antar-, pra-, ke- dan swa- -anda, -nda, -da, -man, -wiah, iah, -wi, -wan, -wati, -ni dan i 5
  • 10. Indexing – Merging and Sorting Term Doc Term Doc INVERTED INDEX ibu 1 beli 1 Term ibu 1 budi 2 beli 1 1 pergi 1 gula 1 budi 2 1 pasar 1 ibu 1 gula 1 1 beli 1 ibu 1 ibu 1 2 gula 1 iwan 2 iwan 2 1 pasir 1 motor 2 motor 2 1 budi 2 pasar 1 pasar 1 1 iwan 2 pasir 1 pasir 1 1 pergi 2 pergi 1 pergi 1 1 sepeda 2 pergi 2 pergi 2 1 motor 2 sepeda 2 sepeda 2 1 Doc Freq
  • 11. Retrieval – Possible Queries Single keyword Multi keyword with logical operator AND, OR & NOT Multi keyword without logical operator Combinations
  • 12. 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) 𝑡𝑝 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑡𝑝 + 𝑓𝑝 𝑡𝑝 𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑡𝑝 + 𝑓𝑛
  • 13. 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 250000 200000 150000 100000 214 50000 0 Parsing 36 22 Stopping 74 Stemming 15 Sorting & Merging Parsing Stopping Stemming Sorting & Merging Index Writing Index Writing
  • 14. Test Result – Retrieval Engine Keyword sekutu mempersekutuk an mempersekutuk an tuhannya Malaikat yang terdekat makan minum ayah zuhur Pencarian dengan fasilitas search pada Windows Waktu Hasil pencarian Pencarian (detik) (dokumen) 21,13 45 21,09 60 20,51 4 20,43 1 20,36 20,95 22,85 21 30 45 Precision = 100% Recall = 100% Keyword sekutu mempersekutuka n mempersekutuka n tuhannya malaikat yang terdekat Pencarian dengan inverted index Waktu Hasil pencarian Pencarian (detik) (dokumen) 0,043 130 0,042 130 0,078 305 0,061 220 makan minum 0,048 152 ayah zuhur 0,010 0,001 31 1 Precision = 41,88% Recall = 100%
  • 15. 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.