PRAKTIKUM 2
PEMROSESAN
BAHASA
ALAMI
Ade Nurhopipah, S.Si., M.Cs
ade_nurhopipah@amikompurwokerto.ac.id
MODUL PRAKTIKUM 2
PEMROSESAN BAHASA ALAMI
Normalisasi dan Regular Expression
Database Text
Internet telah menyediakan banyak database berupa text yang dapat kita pergunakan
untuk belajar mengolah bahasa alami. Mari mencoba mengakses e-book dari proyek
gutenberg.org.
from urllib.request import urlopen
url = "http://www.gutenberg.org/files/2554/2554-0.txt"
raw = urlopen(url).read()
print(type(raw))
raw
Kita akan mengubah format file dari types byte ke dalam bentuk string dengan kode ASCI.
raw = raw.decode('UTF-8')
print(type(raw))
raw
Mari kita cari tahu panjang teks dan isi dari 100 string pertama
Sebagai catatan bahwa teks yang kita download mengandung header berupa nama teks,
pengarang, editor, lisensi dan lain-lain. Kita akan melakukan seleksi bagian teks tertentu dari bagian awal
(Part 1) pada teks sampai akhir teks.
Karena file html tidak hanya berisi teks, maka Kita dapat menghilangkan metadata, image, javaScript,
form dan tabel dengan fungsi get_text.
raw = BeautifulSoup(html).get_text()
raw
Kita dapat secara manual membersihkan text dari karakter yang tidak diinginkan.
raw1 = raw1.replace("\n","",500)
raw1 = raw1.replace("\r","",500)
raw1 = raw1.replace("\t","",100)
print("Teks sesudah replacing")
raw1
Selanjutnya tentukan alamat dimana file berada, dan kita dapat langsung membacanya.
text_path = '/content/gdrive/My Drive/Colab Notebooks/IndonesiaRaya.txt'
text = open(text_path, 'rb').read()
print(type(text))
text
B. Normalisasi Text
Seperti sudah kita pelajari bahwa sebelum text dapat diolah, kita harus melakukan pre-
processing terhadap text, agar dapat diolah sesuai kebutuhan. Untuk praktikum kali ini kita akan
melakukan case folding, tokenisasi dan stemming.
Pada praktikum ini, mari kita mencoba case folding dengan merubah semua huruf pada text menjadi
huruf kecil
text_lower = text.lower()
text_lower
Stemming
Untuk melakukan stemming (memisahkan imbuhan) kita dapat menggunakan Sastrawi yang
merupakan library yang dapat mengubah kata berimbuhan bahasa Indonesia menjadi bentuk
dasarnya.
!pip install Sastrawi
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
def stemmingIndo(text):
factory = StemmerFactory()
stemmer = factory.create_stemmer()
return stemmer.stem(text)
tokens = nltk.word_tokenize(text)
tokens_lowText = nltk.word_tokenize(text_lower)
tokens_norm = nltk.word_tokenize(norm)
print(tokens)
print(tokens_lowText)
print(tokens_norm)
Mari kita lihat perbedaan dari jumlah vocabulary setelah melalui beberapa proses tersebut.
vocabs = set(tokens)
vocabs_lowText = set(tokens_lowText)
vocabs_norm =set(tokens_norm)
print("Panjang token text =", len(vocabs))
print(sorted(vocabs))
print("Panjang token lower text =" ,len(vocabs_lowText))
print(sorted(vocabs_lowText))
print("Panjang token lower text =" ,len(vocabs_norm))
print(sorted(vocabs_norm))
C. Regular Expression
Dalam mengaplikasikan Regular expression, kita perlu memperhatikan aturan penulisan dan
simbol-simbol yang telah kita pelajari sebelumnya. Beberapa regular expession dasar diantaranya adalah
sebagai berikut.
Selamat Bereksplorasi