Anda di halaman 1dari 26

Pertemuan 2 NPL

Regular Expression, Text Normalization


Capaian Pembelajaran Matakuliah (CPMK)

• Mahasiswa dapat menjelaskan konsep Regular Expression, text


normalization
Topik Materi

• Regular Expression
• Text normalization
Regular Expression

• Regular Expression (RE) adalah merupakan metode yang digunakan


untuk mencocokan pola-pola karakter tertentu dalam suatu
kumpulan string
Contoh Kasus Regular Expression

• Bagaiman cara kita mencari semua kata-kata berikut ini dengan


satu perintah?
yogyakarta
Yogyakarta
jogjakarta
Jogjakarta
RE Bersifat Case Sensitive
Penggunaan Kurung siku [ dan ]

• Untuk menemukan kedua


kata “aku” dan “Aku” kita
bisa menambahkan fungsi
“[aA]ku”
Disjunction

• Karakter dalam kurung


siku ini sifatnya
disjunction artinya
tidak berhubungan
antara satu huruf atau
karakter dengan
karakter lainnya.
Range

•[0123456789] = [0-9]
•[abcdefghijklmnopqrstuvwxyz] = [a-z]
•[ABCDEFGHIJKLMNOPQRSTUVWXYZ] = [A-Z]
•[mnopq] = [m-q]
•[abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ] = [A-z]
Negation In Disjunction

• Karakter diawali dengan tanda caret ^ dalam kurung siku []


• Negation mencari karakter yang dicari yaitu karakter yang tidak
dalam kurung siku, missal [^Tk]ak, kata Tk ini yang akan tidak
dibaca di negation
Pemisah dengan Vertical Bar |

• Vertical bar digunakan untuk mencari dua kalimat yang berbeda


Kleene * dan Kleene +
• Kleene diambil dari nama seorang ahli matematika
• Kleene * adalah 0 atau lebih karakter sebelum tanda bintang atau *
• Kleene + adalah satu atau lebih karakter sebelum tanda plus atau
+
Text Normalization

• Data text sangat kaya akan informasi, bahkan jika disadari,


informasi yang beredar lewat internet sebagian besarnya adalah
berbentuk text. Jika diolah dengan baik dan benar, data text
dapat memiliki potensi pemanfaatan yang luar biasa
• Text preprocessing merupakan tahap dimana data text
dinormalisasi agar layak untuk diolah pada tahap selanjutnya yaitu
analisis. Tahap ini dapat disesuaikan dengan kasus yang sedang
ditangani.
Text Normalization (Cont)

• Sifat social media sebagai jejaring social dimana satu user dapat secara
bebas berkomunikasi atau berpendapat sesuai keinginannya membuat format
data text pada social media menjadi beragam. Misalnya seseorang berkata
“ayo kita mkan sekaragn sj di MaLioBoro!! @yasirutomo”. Dari penggalan
tweet ini, kita bisa melihat beberapa kesalahan seperti ‘mkan’ yang
seharusnya makan ‘sekaragn’ yang harusnya ‘sekarang’, MaLioBoro yang
seharusnya cukup ‘Malioboro’ sj dan tanda ‘!!’ yang harusnya cukup sekali
saja ‘!’. Jika data text ini langsung diolah untuk sebuah analisis seperti
sentiment analisis, maka hasil yang didapat bisa saja keliru atau tidak
akurat.
Text Normalization (Cont)

• Pada catatan ini konteks text preprocessing lebih ditekankan ke Bahasa


Inggris.
• Text dapat kita gambarkan sebagai rangkaian dari:
- Character
- Kata
- Frase dan nama entitas
- Kalimat
- Paragraph
Text Normalization (Cont)
• Kata, pada umumnya kita memandang text sebagai rangkaian dari kata yang memiliki arti. Dan kita juga dapat
mengatakan kata adalah rangkaian karakter yang memiliki arti. Pada Bahasa Inggris atau juga Bahasa Indonesia, kata
dipisahkan oleh spasi dan tanda baca.
• Contoh: Friends, Romans, Countrymen, lend me your ears;
Kalimat diatas dapat kita pisahkan menjadi
- Friends
- Romans
- Countrymen
- Lend
- Me
- Your
- ears
Tokenization

• Proses untuk memisahkan input text menjadi potongan yang


memiliki arti disebut tokenization. Hasil dari proses tokenization
disebut token. Token dapat berupa kata, kalimat, paragraph dan
lainnya.
Whitespace tokenization

• nltk.tokenize.WhiteSpaceTokenizer. Library ini akan melakukan


tokenization hanya berdasarkan whitespace (spasi).
• Contoh: This is Andre's text, isn't it?
Akan dipecah menjadi
- This
- Is
- Andre’s
- text,
- isn’t
- it?
Whitespace tokenization (Cont)

• Ada sedikit permasalahan dengan metode diatas, karena token


terkahir yaitu,  it? akan memiliki arti yang sama dengan
token it (begitu juga dengan text, dan text saja)

Namun model text classification yang kita buat akan melihatnya


sebagai token yang berbeda, dan mungkin akan menghasilkan efek
yang tidak kita harapkan.
Punctuation Tokenizer

• nltk.tokenize.WordPunctTokenizer. Library ini akan melakukan tokenization berdasarkan punctuation atau


tanda baca. Maka text diatas akan menjadi
- This
- Is
- Andre
- ‘
- s
- text
- isn
- ‘
- t
- it
- ?
Punctuation Tokenizer (Cont)

• Token yang bermasalah adalah s, isn, t tidak memiliki arti sama


sekali.
• Rules based tokenizer, yaitu:
nltk.tokenize.TreebankWordTokenizer. Library ini akan melakukan
tokenization berdasarkan aturan grammar Bahasa Inggris, dimana
hasil token lebih masuk akal untuk diproses lebih lanjut.
Normalization

• Normalization dilakukan biasanya pada kata plural atau irregular


verb. Contoh:
- wolf, wolves : wolf
- talk, talks: talk
Normalization (Cont)

• Proses normalization stemming proses membuang atau mengganti suffix untuk


mendapatakan root word, yang disebut stem. Metoda yang digunakan adalah
heuristic, hasilnya biasanya akan ada masalah untuk kata-kata tertentu.
• Contoh Stemming
• Porter's stemmer, adalah metoda stemming yang cukup terkenal dan banyak
digunakan. Menggunakan 5 fase heuristic stemming yang dilakukan secara
berurutan. Contoh fase pertama:
• SSES -> SS, contoh: caresses -> caress
• IES -> I, contoh: ponies -> poni (bermasalah, seharusnya pony)
• SS -> SS, contoh: caress -> caress
• S ->  , contoh cats -> cat
Normalization (Cont)

• NLTK menyediakan library stemming dan dapat diimport


dengan nltk.stem.PorterStemmer. PorterStemmer ini tidak bisa
membedakan irregular form.
• feet-> feet (seharusnya foot)
• wolves -> wolv (seharusnya wolf)
• Dapat dilihat dari contoh diatas, stemming memiliki kelemahan di
irregular word dan menghasilkan kata yang meaningless, meskipun
demikian dalam prakteknya hal ini belum tentu menjadi masalah.

Anda mungkin juga menyukai