TEXT
MINING
I M A M A H , S . KO M , M . KO M
Text Mining itu apa?
• Penemuan otomatis informasi berkualitas tinggi yang sebelumnya tidak diketahui dari dalam
jumlah besar teks bahasa alami yang sebagian besarnya tidak terstruktur.
Tahap penambangan teks
1. Information retrieval (IR). Mengumpulkan teks masukan yang berpotensi relevan.
2. Natural language processing (NLP). Menganalisis teks untuk mengidentifikasi dan menyusun
informasi yang relevan.
3. Data mining (DM). Menemukan pola dalam informasi terstruktur.
Fokus pada NLP
• NLP adalah inti dari penambangan teks (dan fokus kuliah ini).
• Penambangan teks yang disederhanakan sangat mirip NLP pada teks.
• Tipe informasi yang akan dicarikan biasanya telah ditentukan sebelumnya, yaitu text mining untuk
menangani tugas tertentu.
• Tugas umum: Ekstraksi informasi dan klasifikasi teks
Text Mining
• Text mining mengacu pada proses ekstasi informasi dari dokumen-
dokumen teks tak terstruktur (unstructured)
• Text mining dapat didefinisikan sebagai penemuan informasi baru dan
tidak diketahui sebelumnya oleh computer, yang secara otomatis
mengekstrak informasi dari sumber-sumber teks tak terstruktur yang
berbeda.
What is Structured and
Unstructured Data?
ID Name Age “ Bersama OPOP Jatim
kami telah berkeliling
1 Jaka 18 memberikan pelatihan
dan menfasilitasi
publikasi dalam
2 Joko 19 mendorong percepatan
digitalisasi ini,” kata
3 Jono 20 Kepala Diskominfo
Jatim
Structured Data Semistructured Unstructured Data
Data
4
Information
Extraction
Natural
Text Language
Analysis Processing
Information Text
Visualization
Retrieval Mining
Database
Clustering Technology
Categorization
Text Mining VS Data Mining
• Perbedaan Mendasar terletak pada sumber data yang digunakan
• Pada data mining, pola-pola diekstrak dari basis data yang terstruktur
• sedangkan di text mining, pola-pola diekstrak dari data tekstual
(natural language).
•
Data Mining
Data mining is a process
adalah proses of mengekstraksi
extracting and
discovering
dan patterns
menemukan polaindalam
large data sets data
kumpulan
involving
besar yangmethods at the
melibatkan intersection
metode of
irisan antara
machine learning, statistics, and database
pembelajaran mesin, statistik, dan sistem
systems.
database.
Analisis Teks
• Proses ekstraksi makna dari dalam teks.
• Misal: menganalisis teks yang ditulis oleh pelanggan saat mengisi survei.
• Fokus: menemukan tema dan tren umum.
• Gagasan: agar dapat memeriksa umpan balik pelanggan untuk menginformasikan bisnis
bagaimana mengambil tindakan strategis untuk meningkatkan pengalaman pelanggan.
Analisis Teks: Input → Proses → Output
Tahapan Text Mining
• Text Prepocessing
• Text Trasformation
• Feature Selection
• Pattern Discovery
Text Prepocessing
• Mempersiapkan teks menjadi data yang akan mengalami pengolahan
lebih lanjut.
• Operasi yang dilakukan ditahap ini adalah
• Part of Speech (Pos) / Tagging
• Parse tree
• Pembersihan teks
Tokenisasi
Untuk mengetahui banyak kata, maka diperlukan tokenisasi
Tokenisasi memecah suatu teks menjadi kata, frasa, simbol atau elemen lainnya yang memiliki
makna atau yang disebut token
Bagaimana cara memecah teks menjadi kata?
Kata merupakan sederetan karakter alfanumerik yang memiliki pemisah (delimiter) mis.
whitespace
◦ Whitespace: spasi, tab, newline
Masalah-masalah dalam
Tokenisasi
Finland’s capital → Finland Finlands Finland’s ?
what’re, I’m, isn’t → What are, I am, is not
Hewlett-Packard → Hewlett Packard ?
state-of-the-art → state of the art ?
Lowercase → lower-case lowercase lower case ?
San Francisco → satu token atau dua?
Prof., m.p.h., PhD. → ??
Segmentasi Kata
Bahasa scriptio continua memerlukan segmentasi kata
Contoh lain:
◦ Frase: keras kepala, tusuk jarum
◦ No telpon
◦ Tanggal
◦ Emoji/emoticon
Menjadi topik ekstraksi informasi
Case Folding
Case folding mengubah huruf besar menjadi huruf kecil
◦ Misalnya “The”, “the”, “THE” dianggap sama
Tapi tidak semua pemrosesan teks mengharuskan case folding!
Untuk sentiment analysis, MT, Information extraction
◦ Huruf besar sangat diperlukan/membantu
◦ US vs us artinya berbeda
Stemming
Stemming adalah proses mereduksi kata-kata berimbuhan (inflected) menjadi kata dasar (word
stem, base word, atau root word)
◦ transportation
◦ transports inflected
◦ transporting
◦ transported
◦ transport base word
◦ Port root word
Permasalahan: stemming tergantung bahasa
Kamus dapat membantu proses stemming
Stemming
Stemming dapat cenderung melakukan over-stemming (pemotongan afiksasi yang berlebihan)
◦ automate(s), automatic, automation direduksi ke automat
Kenapa harus melakukan stemming?
◦ Bagaimana mencari kata “connect”, apabila di korpus ada “connecting”, ”“connected”, “connection”,
“connectivity”, dll?
Permasalahan Stemming bahasa
Indonesia
Imbuhan (afiks) memiliki banyak jenis
◦ Prefiks → ber + tiga
◦ Suffiks → main + an
◦ Konfiks → pen + cegah + an
◦ Infiks → k + em + ilau
◦ Imbuhan serapan → privat + isasi
Perubahan bentuk prefiks
◦ membaca, melihat, mencari, menyapu
Ambiguitas kata
◦ berikan → ber-ikan atau beri-kan?
Permasalahan Stemming bahasa
Indonesia
Overstemming
◦ berikan → ber + i + kan (salah)
Understemming
◦ mengecek → meng - ecek (salah)
Bentuk jamak
◦ pensil-pensil → pensil
Ketergantungan terhadap kamus
◦ selatan → selat + an (salah)
Algoritma Stemming Indonesia
Beberapa algoritma stemming Bahasa Indonesia:
◦ Nazief Adriani
◦ Idris
◦ Ahmad, Yusoff, dan Sembok
◦ Vega
◦ Arifin dan Setiono
Korpus
Korpus
Kalimat dan kata yang sudah disegmentasi nantinya akan disimpan dalam korpus (corpus)
dan/serta lexicon
◦ Bentuk plural corpus adalah corpora
Dalam bidang NLP korpus dan lexicon merupakan sumber daya yang penting
Lexicon berisi kata dasar dan afiksasi (imbuhan, sisipan) serta jenis katanya/lexical entries
(nomina, verba, dll)
Contoh lexical database: WordNet (bahasa Inggris)
Korpus
Korpus merupakan sekumpulan teks yang besar (sekarang dalam bentuk elektronik dan
tersimpan)
Korpus biasanya digunakan untuk proses uji analisis dan hipotesis, mengecek kemunculan atau
memvalidasi aturan linguistik
Masalah perancangan korpus:
◦ Keterwakilan (representativeness)
◦ Ukuran
◦ Jenis
◦ Bahasa
◦ dll.
Korpus
Selain masalah sebelumnya, perancangan korpus disesuaikan dengan kebutuhan analisis teks
◦ Tokenisasi
◦ Anotasi
Korpus umum:
◦ seimbang (balance): mewakili sejumlah genre dan proporsinya
◦ pengambilan sampel (sampling): bagaimana bagian dari teks suatu genre dipilih
Korpus khusus:
◦ derajat tutupan (closure)/kejenuhan (saturation): isi suatu korpus terbatas pada fitur linguistik pada
bahasa, topik tertentu (mis. computer manual)
Jenis-Jenis Corpus
General/reference vs. specialized corpora
Written vs. spoken corpora
Synchronic vs. diachronic corpora
Monolingual vs. multilingual corpora
Comparable vs. parallel corpora
Native vs. learner corpora
Raw vs. annotated corpora
Static/sample vs. dynamic/monitor corpora
Developmental vs. learner/interlanguage corpora
Korpus Brown
Korpus awal berbahasa Inggris Amerika yang terkenal
Dikompilasi tahun 1960-an oleh Henry Kučera, W. Nelson Francis, Universitas Brown
Merupakan korpus umum serta korpus seimbang
Awalnya berisi 1.014.312 kata dipilih dari 15 kategori
Korpus Lainnya
Korpus Domain Bahasa
British National Seimbang British English
Corpus (BNC)
Newswire Corpus Newswire American English
UN atau EU proceed. Hukum 10 bahasa
Broadcast News Ujaran (speech) 7 bahasa
Corpus
Isi Korpus
Berdasarkan penggunaan bahasa:
◦ Teks: artikel, berita kawat (newswire), buku, transkripsi (closed caption/subtitle)
◦ Ujaran: dialog, siaran berita
Berdasarkan media: teks, audio, video
Anotasi
Anotasi adalah penambahan informasi pada korpus yang secara eksplisit sebenarnya tidak ada
Contoh anotasi:
◦ Part-of-speech tagging (POS tagging)
◦ Struktur sintaksis
Anotasi (POS Tagging)
POS Tag adalah proses memberi tanda (tag) atau menandai kata dalam teks (korpus) ke suatu
part-of-speech tertentu, mis. nomina, verba, adjektiva, dll.
◦ Misalnya Penn tag set (45), Brown tag set (87)
Banyak kata memiliki beberapa kategori
Tapi kebanyakan hanya satu kategori
Penandaan (tagging) bisa dilakukan dengan cara manual tapi biasanya dengan cara otomatis
Contoh POS Tag
Description Example
NN noun, singular or mass tiger, chair, laughter
NNS noun, plural tigers, chairs, insects
NNP noun, proper singular Germany, God, Alice
DT determiner the, a, these
JJ adjective nice, easy
B adverb extremely, loudly, hard
RBR adverb, comparative better
RBS adverb, superlative best
Penandaan (Tagging) Otomatis
Contoh: menggunakan Penn Tagger
Input: Some scorpions are able to survive 6 to 12 months of starvation
Output: Some/DT scorpions/NNS are/VBP able/JJ to/TO survive/VB 6/CD to/TO
12/CD months/NNS of/IN starvation/NN
Misalnya:
◦ http://nlp.stanford.edu:8080/parser/
◦ GATE – General Architecture for Text Engineering (http://www.gate.ac.uk)
Anotasi (Sintaksis)
Analisis sintaksis: bagaimana mengartikan suatu kalimat berdasarkan arti kata-kata yang
membentuk kalimat tsb.
Siapa melakukan kepada siapa
Korpus berisi kalimat yang diberi tanda berdasarkan struktur kalimat menggunakan aturan tata
bahasa dengan parse tree disebut treebank
Contoh Parse Tree
NNP VBD P DT NN
Sue walked into the store
Regular Expression
Regular Expression
Dalam pemrosesan teks, ekspresi reguler (regular expression/Regex) sangat
penting
Regex merupakan sederetan karakter tertentu untuk mencari pola string
◦ Hasil yang cocok kemudian bisa diganti
(replace/substitution)
Terdapat beberapa standar Regex
◦ paling banyak digunakan: standar Perl atau Perl Compatible Regular Expressions
(PCRE)
Regular Expression
Biasa digunakan untuk:
◦ Pencarian teks
◦ Modifikasi teks
◦ Parsing
◦ Validasi data
Dapat digunakan untuk ekstraksi informasi
Misalnya, dalam suatu teks:
◦ mencari alamat email atau situs web
◦ mencari tanggal, angka
Regex: Meta characters
Karakter Arti
^ Cocok dengan pola pada awal baris.
. Cocok dengan karakter apapun
$ Cocok dengan pola pada akhir baris
| Cocok dengan salah satu pola
() Pengelompokan
[] Kelas karakter
* Cocok sebanyak 0 atau lebih
+ Cocok sebanyak 1 atau lebih
? Cocok sebanyak 1 atau 0 kali
Regex: Meta characters
Contoh Pola Hasil
k.k. kuku kakiku kok kaku-kaku
^kaki kaki kuda dan lima kaki
$kaki kaki kuda dan lima kaki
kaki|kuda kaki kuda dan lima kaki
a+b aabbbbc, aaaaaabdc, aacc, dbac
a*b aabbbbc, aaaaaabdc, aacc, dbac
Regex: Character class
Kode Arti
[0-9] Cocok dengan angka
[aiueo] Cocok dengan huruf vokal (huruf kecil)
[^aiueo] Cocok dengan huruf konsonan (huruf kecil)
[a-z] Cocok dengan semua huruf (huruf kecil)
[a-z0-9] Cocok dengan semua huruf dan angka (huruf kecil)
[A-Za-z0-9] Cocok dengan semua huruf (besar dan kecil) dan
angka
\w Sama dengan [A-Za-z0-9]
\d Sama dengan [0-9]
\W Sama dengan [^A-Za-z0-9]
\D Sama dengan [^0-9]
\s Whitespace (space, tab, line break, form feed)
Regex: Character class
Pola Hasil
[0-9] Bab 1: Pendahuluan
[aiueo] Bab 1: Pendahuluan
[a-z] Bab 1: Pendahuluan
[A-Z] Bab 1: Pendahuluan
\w Bab 1: Pendahuluan
\W Bab 1: Pendahuluan
(.*?):\s(.*?) Bab 1: Pendahuluan
Group-1: Bab 1
Group-2: Pendahuluan
Perulangan karakter
Kode Arti
{m} Perulangan sebanyak m kali
{m,n} Perulangan sebanyak m sampai n kali
{m,} Perulangan sebanyak m kali atau lebih
Pola Hasil
o{3} oh ooh oooh ooooh oooooh
o{3,} oh ooh oooh ooooh oooooh
\d{4} Pada tahun 2017 angka ekspor naik sebesar 17,5%
Python Regex
Fungsi Regex tersedia di Python melalui modul re
Beberapa fungsi Regex pada modul re
Fungsi Kegunaan
search() Mencari kemunculan pertama suatu pola pada
sebuah string
findall() Mencari semua kemunculan pola pada sebuah
string
sub() Mencari dan mengganti (substitusi) suatu pola pada
string
Modul lain adalah regex, instalasi dengan
pip install regex
Python Regex
Pola tanggal bulan tahun
Import modul re sebelum digunakan
Fungsi search hanya menghasilkan pola pertama yang cocok
Fungsi findall menampilkan semua pola yang cocok
Contoh Aplikasi Regex
Untuk menguji suatu Regex, kita dapat menggunakan tools yang tersedia, misalnya secara online:
◦ https://regex101.com
◦ http://regexr.com/
◦ dsb.
Beberapa editor teks yang melayani Regex:
◦ Notepad++, Notepad2mod, Notepad3
◦ Sublime Text
◦ Geany
◦ dsb.
Case Folding
• mengubah semua huruf dalam dokumen menjadi huruf kecil.
• Karakter selain huruf dihilangkan dan dianggap delimiter.
Tokenizing
• Tahap tokenizing/ parsing adalah tahap pemotongan string input
berdasarkan tiap kata yang menyusunnya.
Filtering
• Filtering adalah tahap mengambil kata-kata penting dari hasil token.
• Stoplist/stopword adalah kata-kata yang tidak deskriptif yang dapat
dibuang dalam pendekatan bag-of-words.
• Contoh stopwords adalah “yang”, “dan”, “di”, “dari”, dan seterusnya
Stemming
• Tahap stemming adalah tahap mencari root kata dari tiap kata hasil
filtering.
• Pada tahap ini dilakukan proses pengembalian berbagai bentukan
kata ke dalam suatu representasi yang sama.
• Sebagai contoh, kata bersama, kebersamaan, menyamai, akan distem
ke root word nya yaitu “sama”.
Word, Token and Tokenization
• Words are separated by a special character: a blank space
• Each word is called a token
• The process of discretizing words within a document is called
tokenization
• For our purpose here, each sentence can be considered a
separate document, although what is considered an
individual document may depend upon the context
• For now, a document here is simply a sequential collection of
tokens
52
Text Trasformation
• Pembentukan atribut mengacu pada proses untuk mendapatkan
representasi dokumen yang diharapkan
• Pengubahan kata-kata kebentuk dasarnya
• Stemming
• Stop words
Feature Selection
• Memilih kata-kata yang memiliki arti penting
• mengurangi dimensi, pemilihan hanya dilakukan terhadap kata-kata
yang relevan yang benar-benar merepresentasikan isi dari suatu
dokumen.
Pattern Discovery
• Pattern discoverymerupakan tahap penting untuk menemukan pola
atau pengetahuan (knowledge) dari keseluruhan teks.
• Tindakan yang lazim dilakukan pada tahap ini adalah operasi text
mining, dan biasanya menggunakan teknik-teknik data mining.