Anggri Yulio P
Web Developer, sekarang mulai jatuh hati pada Computer Vision.
January 18, 2019 7:12 pm

Text Preprocessing dengan Python NLTK

Dalam text mining dikenal istilah Text Preprocessing. Text Preprocessing adalah tahapan dimana kita melakukan seleksi data agar data yang akan kita olah menjadi lebih terstruktur. Disini dijelaskan bagiamana melakukan proses Text Preprocessing menggunakan Python dengan Library NLTK. Silahkan baca artikel sebelumnya tentang Pengenalan dan Instalasi Python NLTK.

Tidak ada aturan pasti tentang setiap tahapan didalam proses Text Preprocessing semua tergantung dari jenis data (dokumen teks) dan hasil yang diinginkan. Namun pada umumnya tahapan proses text preprocessing adalah Case Folding, Tokenization dan Filtering, Stopword Removal, Stemming.

Mari kita coba melakukan proses text preprocessing dari penggalan kalimat pada sebuah artikel di situs MOJOK.co

“[MOJOK.co] Manfaat jogging setiap pagi yang pertama adalah meredakan stres. Olahraga itu seperti kode bagi tubuh untuk memproduksi hormon endorfin, agen perangsang rasa bahagia. Dilakukan di pagi hari, ketika udara masih bersih, sejuk, jalanan lengang, gunung terlihat jelas di sebelah utara, manfaat jogging bisa kamu rasakan secara maksimal.”

Case Folding

Dalam sebuah dokumen penggunan huruf kapital atau sejenisnya terkadang tidakmempunyai kesamaan, hal ini bisa dikarenakan kesalahan penulisan. Dalam text preprocessing proses case folding bertujuan untuk mengubah semua huruf dalam sebuah dokumen teks menjadi huruf kecil (lowercase). Untuk proses ini tidak perlu menggunakan library NLTK, kita bisa menggunakan fungsi lower() yang merupakaan bawaah dari python.

Tokenization

Dokumen teks terdiri dari sekumpulan kalimat, proses tokenization memecah dokumen tersebut menjadi bagian-bagian kata yang disebut token. Melakukan tokenization bisa menggunakan library NLTK

Setelah melalui proses tokenization kita bisa mendapatkan jumlah kemunculan setiap token nya.

Diatas diketahui jumlah kemunculan kata pada sebuah dokumen. Terdapat 6 kemunculan tanda koma, 3 kemunculan tanda titik, 2 kemunculan kata jogging dst.

Namun kemunculan tanda baca sebaiknya dihindari karena dapat nantinya menggangu proses perhitungan dalam penerapan algoritma Text Mining, kita bisa melakukan filtering terhadap kalimat tersebut untuk menghilangkan tanda baca dan karakter non-alfabet.

Stopword Removal

Tahapan ini akan mengambil kata-kata yang dianggap penting dari hasil tokenization atau membuang kata-kata yang dianggap tidak terlalu mempunyai arti penting dalam proses text mining. Artikel tentang steeming Bahasa Indonesia telah saya bahas sebelumnya di Stopword Removal Bahasa Indonesia dengan Python Sastrawi. Jika menggunakan NLTK dengan cara:

Stemming

Steeming bertujuan untuk mentransformasikan kata menjadi kata dasarnya (root word) dengan menghilangkan semua imbuhan kata. Sayangnya proses stemming Bahasa Indonesia menggunakan NLTK belum didukung.

Untuk steeming bahasa indonesia bisa menggunakan python bisa menggunakan library Python Sastrawi. Silahkan baca tulisan saya tentang Steeming Bahasa Indonesia dengan Python Sastrawi.