Text Preprocessing: Tahap Awal dalam Natural Language Processing (NLP)

Rianita Giovanni Katryn
Sep 28 · 4 min read
Image for post
Image for post
(Sumber: pch.vector, www.freepik.com)

Pernahkah Anda bertanya-tanya mengapa chatbot dapat membalas pesan yang kita kirimkan? Atau mengapa Google Assistant dan Siri dapat berinteraksi dengan manusia? Jawabannya adalah karena mereka dibangun menggunakan metode NLP.

“Natural Language Processing (NLP) adalah ilmu dalam bidang komputer dan bahasa (linguistik) yang berkaitan dengan interaksi antara komputer dan bahasa alami manusia.” [3]

NLP mempelajari bagaimana mesin dapat berinteraksi dengan bahasa manusia. NLP digunakan untuk menerapkan algoritma Machine Learning dalam bentuk teks dan ucapan. Dalam NLP, data yang digunakan adalah dokumen dengan data tidak terstruktur. Karena itu, diperlukan tahap persiapan data sebelum data tersebut diolah lebih lanjut sesuai dengan kebutuhan penerapannya.

Text Preprocessing

Ada berbagai proses yang dapat digunakan dalam tahap Text Preprocessing. Tidak ada aturan yang baku mengenai proses apa saja serta urutan yang digunakan dalam tahap Text Preprocessing. Semua tergantung dari output yang kita inginkan dari data tersebut. Kali ini, kita akan mencoba melakukan Text Preprocessing menggunakan bahasa pemrograman Python dengan library Natural Language Toolkit (NLTK).

Beberapa proses yang dapat digunakan dalam Text Preprocessing, antara lain:

1. Parsing

Sebagai contoh:

  • Akan dilakukan analisa pada tiap paragraf dalam suatu artikel. Maka, artikel tersebut akan dipecah menjadi beberapa dokumen, sebanyak paragraf yang ada.
  • Dalam analisa tweet atau ulasan produk, maka masing-masing tweet/ulasan dapat dijadikan sebagai 1 dokumen.
Image for post
Image for post
Contoh Parsing pada Ulasan Produk

2. Case Folding

Berikut ini merupakan contoh proses Case Folding yang diterapkan pada salah satu ulasan produk:

ulasan   = 'Barangnya oke. Penjualnya juga ramah dan respon cepat. Mantaplah pokoknya! Very good!'# Case Folding
hasil_cf = str.lower(ulasan)
print (hasil_cf)
# OUTPUT:
# barangnya oke. penjualnya juga ramah dan respon cepat. mantaplah pokoknya! very good!

3. Tokenizing/Lexical Analysis

Berikut ini merupakan contoh proses Tokenizing pada ulasan produk yang sebelumnya telah melalui tahap Case Folding:

Tokenizing atau disebut juga tahap Lexical Analysis adalah proses pemotongan teks menjadi bagian-bagian yang lebih kecil, yang disebut token. Pada proses ini juga dilakukan penghilangan angka, tanda baca dan karakter lain yang dianggap tidak memiliki pengaruh terhadap pemrosesan teks.

Berikut ini merupakan contoh proses Tokenizing pada ulasan produk yang sebelumnya telah melalui tahap Case Folding:

# Tokenizing
from nltk.tokenize import RegexpTokenizer
tokenizer = RegexpTokenizer(r'\w+')
hasil_token = tokenizer.tokenize(hasil_cf)
print (hasil_token)
# OUTPUT:
# ['barangnya', 'oke', 'penjualnya', 'juga', 'ramah', 'dan', 'respon', 'cepat', 'mantaplah', 'pokoknya', 'very', 'good']

4. Stemming

Beberapa contoh algoritma stemming yang dapat digunakan, yaitu:

  • Porter Stemmer (English & Indonesia)
  • Stemming Nazief-Adriani (Indonesia)
  • Stemming Arifin-Setiono (Indonesia)
  • Khoja (Arabic)

Sebagai contoh, berikut ini digunakan library Sastrawi (Stemming Nazief-Adriani) pada proses Stemming:

# Stemming
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
factory = StemmerFactory()
stemmer = factory.create_stemmer()
input_stemm = str(hasil_token)
hasil_stemm = stemmer.stem(input_stemm)
print (hasil_stemm)
# OUTPUT:
# barang oke jual juga ramah dan respon cepat mantap pokok very good

Pada output, dapat terlihat bahwa imbuhan pada kata telah hilang dan setiap kata yang ditampilkan merupakan kata dasar.

5. Filtering/Stopword Removal

  • Stoplist
    Pada metode ini, kita menyiapkan kumpulan kata yang tidak deskriptif (tidak penting) yang disebut stoplist/stopword. Kata yang termasuk ke dalam stoplist akan dibuang dan tidak digunakan pada proses selanjutnya.
  • Wordlist
    Kebalikan dari stoplist, pada metode ini kita menyiapkan kumpulan kata yang deskriptif (penting) yang disebut wordlist. Hanya kata yang termasuk ke dalam wordlist yang akan digunakan pada proses selanjutnya, sementara kata lainnya akan dibuang.

Di bawah ini merupakan proses Filtering dengan metode wordlist pada ulasan produk yang sebelumnya telah melalui tahap Stemming. Sebagai contoh, file wordlist diberi nama ‘indonesia’, yang berisi kumpulan kata dalam Bahasa Indonesia.

# Filtering
from nltk.corpus import stopwords
wordlist = set(stopwords.words('indonesia'))
hasil_sw = [i for i in hasil_stemm.split() if i in wordlist]
print (hasil_sw)
# OUTPUT:
# ['barang', 'oke', 'jual', 'juga', 'ramah', 'dan', 'respon', 'cepat', 'mantap', 'pokok']

Pada output, dapat terlihat bahwa kata yang ditampilkan hanya kata yang terdapat dalam wordlist (Bahasa Indonesia), sementara kata lainnya tidak akan disimpan untuk pemrosesan teks selanjutnya. Pada proses Filtering, data pada stoplist atau wordlist dapat ditambahkan atau dikurangi sesuai dengan kebutuhan yang diinginkan.

Setelah melewati tahap Text Preprocessing, maka data telah siap untuk diproses sesuai dengan kebutuhannya dalam Natural Language Processing (NLP). Contoh penerapan yang dilakukan dengan menggunakan metode NLP for Text antara lain: chatbot, sistem penerjemah, analisis sentimen, dan lainnya.

Referensi

[1] Fauzi, M. A. (2016). Text Pre-Processing. http://malifauzi:lecture:ub:ac:id/files/2016/02/Text-Pre-Processing:pdf. Diakses pada 14 September 2020.

[2] Kannan, S., & Gurusamy, V. (2014). Preprocessing techniques for text mining. International Journal of Computer Science & Communication Networks, 5(1), 7–16.

[3] Kumar, E. (2011). Natural Language Processing. IK International Pvt Ltd.

[4] Yordanov, V. (2018). Introduction to Natural Language Processing for Text. https://towardsdatascience.com/introduction-to-natural-language-processing-for-text-df845750fb63. Diakses pada 14 September 2020.

Mandiri Engineering

Supporting Indonesia Economy through Technology

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store