Anda di halaman 1dari 28

POLITEKNIK STATISTIKA STIS

For Better Official Statistics

INFORMATION RETRIEVAL

Pertemuan 2.
Term Vocabulary dan Text Preprocessing

Disusun oleh:
Dosen: Tim Dosen
Dr. Eng. Arie Wahyu Wijayanto, SST., MT.
PROFIL
MODEL PENCARIAN KLASIK

Kebutuhan
Memusnahkan gangguan tikus
Pengguna
di kawasan perumahan
Miskonsepsi?
Informasi tentang
Informasi yang penangkapan tikus tanpa
diperlukan perlu dibunuh

Salah formulasi?

Query
perangkap tikus hidup Search

Search
Collection
engine

Query Results
refinement

2
PROFIL
MODEL PENCARIAN KLASIK

Kebutuhan
Pengguna

Informasi yang
diperlukan

Query
Fokus kita saat ini

Search
Collection
engine

Query Results
refinement

3
PROFIL
COLLECTION

Merupakan koleksi dokumen yang bisa dibaca oleh mesin baik


yang dikumpulkan secara online maupun offline.

Contoh:
• Kumpulan artikel berita online yang diperoleh dari pencarian
di internet
• Kumpulan status media sosial yang sedang trending
• Kumpulan skripsi mahasiswa, laporan penelitian, dan tugas
kuliah yang telah dikumpulkan secara digital oleh
perpustakaan

4
PROFIL
PENGURAIAN DOKUMEN (PARSING)

Ada banyak hal yang menjadi tantangan bagi mesin untuk membaca dokumen:
1. Format file, apakah pdf, html, word, xml, dst.
2. Bahasa penulisan, apakah Indonesia, English, Japanese, dst.
3. Himpunan pengkodean karakter (character encoding), apakah ASCII, Unicode, UTF-8, dst.

Image source: https://en.wikipedia.org Image source: https://www.ai-japan.go.jp

5
PROFIL
PENGURAIAN DOKUMEN (PARSING)

Untuk memudahkan, seringkali parsing ini dilakukan secara heuristic, yaitu teknik
memperoleh hasil yang cukup baik (belum tentu yang terbaik) namun dalam waktu cepat.
Misalnya:
- Jika menggunakan Hangul maka dianggap berbahasa Korea,
- Jika kombinasi kanji-hiragana-katakana maka dianggap berbahasa Jepang,
- Jika banyak penggunaan kata “the”, dianggap berbahasa Inggris, dst

Image source: https://www.ai-japan.go.jp

Image source: https://www.yna.co.kr


6
PROFIL
KOMPLIKASI

• Multibahasa pada suatu dokumen atau collection-nya


• Sehingga index untuk mesin pencari kadang harus mengandung term dari beberapa
bahasa
• Multiple-format, satu kesatuan dokumen berisi campuran format file.
• Multiple-format dan multibahasa
contoh: Email berbahasa Indonesia dengan attachment pdf in English

Lalu, apa unit data yang akan digunakan?

7
PROFIL
TERM & VOCABULARY

Term adalah sebutan untuk unit terkecil yang diindeks, biasanya berupa kata.
Dokumen adalah sebutan untuk unit yang dikembalikan sebagai output dari
suatu query
Collection atau Corpus merupakan sekumpulan dokumen tersebut.
Vocabulary adalah sekumpulan term unik dalam suatu corpus.

8
PROFIL
TERM & VOCABULARY

Terdapat beberapa struktur data pada Python yang sering digunakan dalam
information retrieval, di antaranya List dan Dictionary.

List Dictionary
List = [11, ‘Bagus’, [1, 2, 3], 11] Dict = {1: ‘Hijau’, 2: ‘Oranye’, 3: ‘Putih’}

List [0] List [1] List [2] List [3] Key Value

Ordered: sudah terurut dan tidak bisa diubah urutannya Ordered: pasangan key-value sudah terurut dan tidak
bisa diubah urutannya
Mutable: semua item dapat dimodifikasi kapan saja
Mutable: semua value dapat dimodifikasi tetapi key
Duplicates: item dengan nilai yang sama diperbolehkan tidak

Duplicates: tidak boleh ada duplikasi item


9
PROFIL
CONTOH DOKUMEN

Menurut hasil survei Asosiasi Penyelenggara Jasa Internet Indonesia (APJII),


sebanyak 87,43% usaha mikro, kecil, dan menengah (UMKM) di Indonesia telah
menggunakan internet dalam berbisnis. Pasalnya, sebagian besar UMKM
tersebut menyatakan penjualannya meningkat dengan penggunaan internet,
khususnya saat pandemi Covid-19. Secara rinci, penjualan 44,88% UMKM yang
menggunakan internet meningkat saat pandemi, meski kurang dari dua kali
lipat. Sebanyak 16,56% UMKM mengaku penjualannya meningkat lebih dari dua
kali lipat setelah menggunakan internet ketika pagebluk. Sedangkan, hanya
38,56% UMKM yang penjualannya tak berubah. Di sisi lain, mayoritas UMKM
tidak mengalami peningkatan biaya bulanan untuk koneksi internet ketika
pandemi. Secara rinci, ada 72,11% UMKM yang mengaku biaya bulananya
tetap.

Source: https://dataindonesia.id/
10
PROFIL
TEXT QUERY DAN TEXT STATISTICS

Text Query: penggunaan operasi dasar dalam pembandingan string (string


matching) untuk memperoleh teks yang diinginkan.
Contoh:
- Cari semua baris/kalimat yang dimulai dengan kata UMKM.
- Cari semua baris/kalimat yang dimulai dengan huruf besar.
- Cari semua baris/kalimat yang memiliki kata terdiri dari huruf besar semua.

Text Statistics: menghitung informasi dasar yang tersedia di corpus.


Contoh:
- Jumlah kata: seberapa besar ukuran corpus.
- Jenis kata: berapa banyak kata yang unique, jumlah perbendaharaan kata
- Frekuensi kemunculan setiap kata

11
PROFIL
FENOMENA FREKUENSI KATA

Beberapa kata sangat umum digunakan(frekuensi sangat besar), misalnya


"yang", "dan", "dari", "the", "of".
Kebanyakan kata sangat jarang muncul (frekuensi sangat kecil).
Bisa jadi setengah dari kata-kata pada korpus hanya muncul sekali.

Zipf Law

❑ Menjelaskan adanya hubungan antara frekuensi dan urutan/rank (George Kingsley


Zipf).
❑ Urutan/Rank:
• hitung berapa kali kata muncul pada semua teks di dalam korpus (f).
• urutkan sesuai dengan frekuensi kemunculan kata membentuk rank (r).

❑ Terdapat konstanta c sehingga f*r=c 12


PROFIL
CONTOH

Kata Frekuensi (f) Rank (r) f*r

Minyak goreng 25 300 7500

Harga 18 400 6800

Naik 13 500 5500

Pedagang 12 600 5400

Konsumen 4 2000 8000

Pasar 2 3000 6000

Protes 2 4000 8000

13
PROFIL
TEXT PREPROCESSING

Text preprocessing adalah suatu proses pengubahan bentuk data yang belum
terstruktur menjadi data yang terstruktur sesuai kebutuhan.

Beberapa teknik text preprocessing di antaranya tokenisasi, capitalization/case-


folding, eliminasi stopword, normalisasi, dan stemming.

TOKENISASI adalah proses memotong suatu teks menjadi bagian-bagian yang


disebut token.
Setiap token adalah kandidat entri indeks, setelah pemrosesan lebih lanjut.
Contoh:

Input: Selamat malam semuanya, makan apa kita hari ini?


Output: beberapa token - selamat - makan - hari
- malam - apa - ini
- semuanya - kita 14
PROFIL
PERMASALAHAN PADA TOKENISASI

Indonesia's capital → Indonesia? Indonesias? Indonesia’s?

Hewlett-Packard → Hewlett dan Packard sebagai dua token?


• se-Indonesia, state-of-the-art: putuskan rangkaian ber-strip (hyphen)
• pro-kemerdekaan, co-education
• lowercase, lower-case, lower case ?

Kalimantan Timur, rumah sakit, tanggung jawab: satu atau dua token?
• Bagaimana menentukan itu satu token?

15
PROFIL
PERMASALAHAN PADA TOKENISASI

Jika dianggap 2 token (misal dipisahkan tanda strip) maka query yang mengandung
hanya salah satu dari dua token akan cocok (match)
– Hewlett-Packard: query "packard" akan me-retrieve dokumen mengenai "Hewlett-
Packard" OK?
– tanggung jawab: query "tanggung" akan cocok dengan dokumen mengenai
"tanggung jawab" OK?

Jika dianggap 1 token maka query yang mengandung hanya satu dari dua token tidak
akan cocok (not match)
– se-Indonesia: query "Indonesia" tidak akan cocok dengan dokumen tentang "se-
Indonesia"

16
PROFIL
TOKENISASI: PROBLEM BAHASA

Bahasa Jepang memiliki metode penulisan dengan 4 jenis script: Kanji (untuk
kata asli yang berasal dari pengaruh Chinese), Hiragana (untuk imbuhan,
partikel, cara baca, dst), Katakana (untuk penulisan kata serapan bahasa asing,
nama asing, dst) dan Romaji (penulisan serupa alfabet).

Japanese

Kalimat dalam Japanese dan Chinese tidak memiliki spasi sebagai pemisah kata.
Sehingga sulit untuk dilakukan tokenisasi secara langsung.

Chinese
Li Keqiang mengatakan bahwa pembangunan rendah karbon terkait dengan masa depan hijau
global, dan inovasi adalah kekuatan pendorong utama untuk pembangunan 17
PROFIL
TOKENISASI: PROBLEM BAHASA

Bahasa Arab secara umum memiliki metode penulisan dari kanan ke kiri baik
untuk huruf maupun angka.

Arabic

Selamat datang di Wikipedia

Namun dalam penulisan modern, Bahasa Arab mengadopsi penulisan angka dari kiri
ke kanan, berbeda dengan penulisan hurufnya. Sehingga menyulitkan tokenisasi.

Arabic

Negara Saudi yang pertama didirikan pada periode 1157-1233 H atau 1744-1818 M
18
PROFIL
TOKENISASI: PROBLEM BAHASA

Bahasa Jerman sering menggunakan gabungan kata yang tidak dipisahkan


dengan spasi.

Lebensversicherungsgesellschaftsangestellter
German
pegawai perusahaan asuransi jiwa

Sedangkan Bahasa Perancis banyak memiliki tanda apostrop yang menyulitkan


tokenisasi. L’homme apakah dianggap 1 token atau 2 token
l'homme qui l'a vu
French pria yang melihatnya

19
PROFIL
CASE-FOLDING & CAPITALIZATION

Capitalization adalah proses mengubah teks menjadi seluruhnya huruf kapital


(uppercase), sedangkan case-folding adalah proses mengubah teks menjadi
seluruhnya huruf kecil (lowercase).

Python merupakan bahasa pemrograman case sensitive yang membedakan


huruf besar dan huruf kecil, sehingga sering membutuhkan capitalization/case-
folding.

Capitalization:
SELAMAT PAGI
Input:
Selamat Pagi

Case-folding:
selamat pagi
20
PROFIL
ELIMINASI STOPWORDS

Stopword merupakan kata-kata yang dianggap hanya sedikit berarti dalam


pemrosesan teks namun seringkali muncul, sehingga dapat dieliminasi.

Setiap bahasa memiliki daftar stopword yang berbeda.


Contoh: “yang”, “pada”, “dari”, “dan”, “and”, “the”, “of”, dst

Strategi lain penentuan stopword adalah dengan menghitung frekuensi


kemunculan kata dan menganggap kata-kata yang jarang muncul dalam
dokumen sebagai stopword yang dapat dieliminasi.

21
PROFIL
NORMALISASI

Normalisasi adalah mengelompokkan token yang penulisan hurufnya berbeda


tetapi termasuk ke kata yang sama menjadi satu term yang sama.

Contohnya:
- Kata “anti vaksin” dapat dituliskan dengan beberapa variasi seperti berikut,
antivaksin : {anti vaksin, antivaksin, anti-vaksin}.
- Agar ada kesesuaian antara Dr. dengan Dr, USA dengan U.S.A.
- Selain itu, normalisasi dapat juga digunakan untuk mengelompokkan bahasa
gaul ke bahasa bakunya, contohnya saya: {gue, gua, aku, aq, sy}

Dapat dilakukan dengan cara:


- Menghapus titik untuk membentuk term
• U.S.A., USA ∈ [USA]
- Menghapus strip untuk membentuk term
• anti-vaksin, antivaksin ∈ [antivaksin]
22
PROFIL
LEMMATIZATION

Lemmatization yaitu pengubahan bentuk jamak/variannya ke bentuk dasar


(bentuk yang digunakan saat pencarian kamus), sering dilakukan di bahasa
Inggris dan bahasa lainnya.

• Misal:
– am, are, is → be
– book, books, book's, books' → book

• "the girl's books are colorful" → "the girl book be colorful"

23
PROFIL
STEMMING

Stemming adalah mengubah kata-kata berimbuhan ke bentuk dasarnya (bentuk


tanpa imbuhan) sebelum dilakukan indexing.

Tergantung bahasa:
- Bahasa Indonesia: “mengambil” → “ambil”, dst
- English: automate(s), automatic, automation semua direduksi menjadi
automat.

24
PROFIL
STEMMING

Dalam Bahasa Inggris, ada beberapa stemmer yang bisa digunakan dengan hasil
yang relatif mirip.

25
Image source: https://www.javatpoint.com/stemming-in-data-mining
PROFIL
STEMMING

26
Image source: https://www.javatpoint.com/stemming-in-data-mining
PROFIL
LIBRARY PYTHON

Banyak library Python yang bisa digunakan untuk preprocessing teks yang
meliputi keseluruhan atau sebagian proses tokenisasi, case-folding, dan
eliminasi stopwords:

• Sastrawi (https://pypi.org/project/Sastrawi)
• Spacy (https://spacy.io)
• NLTK (https://www.nltk.org)
• ID-Stopwords

27
QUESTIONS?

Anda mungkin juga menyukai