Pre-processing Data Teks Menggunakan Python

Rina
13 min readDec 17, 2023

--

Gambar oleh penulis

Pada artikel sebelumnya, kita sudah belajar terkait cara menghasilkan data teks melalui teknik scraping. Pertanyaannya, setelah data-data tersebut terkumpul, kira-kira apa yang harus kita lakukan? Apakah kita harus membiarkan data tersebut? Atau kita bisa langsung mengolahnya untuk berbagai kepentingan seperti sentimen analisis, deteksi spam, klasifikasi dokumen, dan lain sebagainya? Jawabannya, tidak. Langkah selanjutnya yang harus kita tempuh yaitu melakukan preprocessing data atau pra-pemrosesan data.

Lalu, apa itu pra-pemrosesan data? Secara sederhana, pra-pemrosesan data teks dapat dipahami sebagai proses pengubahan data tidak terstruktur menjadi data yang terstruktur melalui serangkaian tahapan yang meliputi case folding, removing special characters, tokenization, remove stopwords (filtering) dan stemming.

Mungkin kamu akan bertanya, kenapa kita harus melakukan pra-pemrosesan dalam data teks? Seperti yang sudah dijelaskan pada bagian sebelumnya, data teks merupakan salah satu contoh jenis data tidak struktur sehingga data harus dibersihkan terlebih dahulu sebelum digunakan. Untuk mempermudah pemahaman, teknik pra-pemrosesan data teks bisa kita analogikan dalam kasus pembuatan tahu.

Sebelum diproses menjadi tahu, kedelai harus diolah dengan berbagai tahapan terlebih dahulu. Tahap ini dimulai dengan pemilihan bahan baku kedelai. Biji kedelai terbaik akan dipilih untuk menghasilkan tahu yang enak. Selanjutnya, biji kedelai yang dipilih akan direndam di dalam air. Hal ini bertujuan untuk memperlunak struktur sel sehingga akan mengurangi energi yang diperlukan selama penggilingan. Setelah direndam, Biji kedelai tersebut kemudian digiling menjadi bubur kedelai. Penggilingan bertujuan untuk memperkecil ukuran partikel kedelai sehingga mempermudah ekstraksi protein ke dalam susu kedelai. Berikutnya, bubur kedelai yang dihasilkan kemudian dimasak dan disaring untuk mendapatkan sari kedelai hingga akhirnya menghasilkan tahu yang siap didistribusikan. Berdasarkan penjelasan tersebut, dapat disimpulkan bahwa semakin bersih pra-pemrosesan yang dilakukan, maka kemungkinan besar tahu yang dihasilkan akan semakin enak untuk dikonsumsi.

Analogi di atas bisa kita implementasikan pada data teks yang kita miliki. Setelah kita menerima data yang dibutuhkan, terlebih dahulu kita harus membersihkan data dan menyingkirkan bagian data yang tidak berguna seperti menghilangkan kebisingan (noise) yang tidak diinginkan, menghapus tanda baca, menghapus kata-kata yang sering muncul, kesalahan ketik, menghapus URL, dan lain-lain.

1. Mengubah Teks Menjadi Huruf Kecil (Case Folding)

Case folding merupakan tahap pra-pemrosesan data teks yang digunakan untuk mengubah teks menjadi bentuk yang sama. Semua teks yang tersusun dari huruf kapital dan huruf kecil akan diubah menjadi huruf kecil (lowercase). Pada tahap ini, hanya huruf A sampai Z yang akan diubah. Karakter lain seperti tanda baca dan spasi dianggap sebagai delimiter[1]. Delimiter tersebut juga dapat dihapus atau dihilangkan dengan menggunakan perintah yang terdapat di Python[2]. Untuk pemahaman yang lebih baik, perhatikan contoh berikut ini:

Meski terlihat sederhana, tahap ini sering kali diabaikan. Perlu kita pahami, proses ini akan sangat berpengaruh pada tahap selanjutnya. Mengapa? Karena komputer hanya akan menganggap sebuah data teks adalah sama apabila data tersebut tersusun dari karakter yang sama. Misalnya, terdapat kata “BELAJAR”, “belajar”, dan “Belajar”. Sebagai manusia, tentu kita akan menganggap itu adalah sebuah kata yang sama. Namun, berbeda dengan komputer. Komputer akan mengenali ketiga kata tersebut sebagai data yang berbeda. Hal ini dikarenakan setiap kata tersusun dari huruf kapital dan kecil yang berbeda.

Bisa kita bayangkan, seandainya kita memiliki sebuah data teks yang terdiri dari 1000 kasus seperti di atas dan tidak dilakukan tahap case folding, tentu hal ini akan memperlambat proses komputasi.

1.1. Kode Python

Setelah penjelasan teori di atas, selanjutnya, kita akan mengimplementasikannya pada Google Colab. Diasumsikan Google Colab sudah terbuka dengan Notebook baru, kemudian tulis kode di bawah ini dan jalankan:

!pip install nltk
!pip install Sastrawi
import nltk
nltk.download()

Keterangan kode:

  • !pip install nltk, perintah yang digunakan untuk menginstal library NLTK.
  • !pip install Sastrawi, perintah yang digunakan untuk menginstal library Sastrawi.
  • import nltk, digunakan untuk mengimport library NLTK.
  • nltk.download(), perintah untuk mendownload package yang terdapat pada library NLTK.

Saat proses download package akan dimulai, Google Colab akan menampilkan pesan seperti berikut ini:

Pada menu Downloader> isikan d dan l pada menu Identifier>. Setelah itu, akan muncul tampilan daftar package yang dimiliki library NLTK. Klik enter untuk menampilkan seluruh daftar package hingga muncul tampilan seperti gambar di bawah ini:

Pada gambar di atas, menu Hit Enter to continue: diisi dengan allcorpora dan pada menu Identifier> diisi dengan all-nltk. Berikutnya, proses download package akan dilakukan hingga selesai. Kemudian, muncul pilihan untuk menutup proses instalasi package NLTK dengan mengisikan menu Downloader> q seperti ini:

Setelah proses instalasi berhasil dilakukan, selanjutnya, definisikan variabel yang digunakan untuk menyimpan data yang akan diubah menjadi huruf kecil seperti berikut:

teksInput = "Rina, Ilham, dan Ahmad merupakan mahasiswa prodi
Sistem Informasi Universitas Tadika Mesra. Tahun ini, mereka
memasuki semester lima (5) dan mendapatkan mata kuliah
Pembelajaran Mesin, Multimedia, & Metode Penelitian. Menurut Rina,
Pembelajaran Mesin adalah mata kuliah yang paling menyenangkan. "
lower_case = teksInput.lower()
print(lower_case)

Keterangan kode:

  • teksInput, merupakan nama variabel yang digunakan untuk menyimpan teks masukkan atau memanggil dataset. Nama variabel ini tidak bersifat mutlak, artinya kita bisa menggantinya menjadi data, kalimat ataupun yang lainnya.
  • lower_case = teksInput.lower(), variabel yang ditugaskan untuk menyimpan teks yang sudah berhasil diubah menjadi huruf kecil semua dengan menggunakan fungsi .lower() yang dimiliki oleh Pyhton.
  • print(lower_case), mencetak variabel lower_case. Setelah dijalankan, hasilnya seperti berikut:
rina, ilham, dan ahmad merupakan mahasiswa prodi
sistem informasi universitas tadika mesra. tahun ini, mereka
memasuki semester lima (5) dan mendapatkan mata kuliah
pembelajaran mesin, multimedia, & metode penelitian.
menurut rina, pembelajaran mesin adalah mata kuliah yang paling menyenangkan.

2. Menghapus Karakter Spesial (Removing Special Characters)

Setelah teks melewati tahap case folding, selanjutnya akan dilakukan proses penghapusan karakter spesial (delimiter) seperti angka, tanda baca, dan karakter kosong (spasi) yang tidak relevan. Dalam penjelasan lain, proses ini sering kali digabung dengan tahap case folding. Di bawah ini beberapa contoh tanda baca dan karakter spesial yang sering digunakan:

  • Titik (.)
  • Koma (,)
  • Seru (!)
  • Tanya (?)
  • Petik satu atau dua (‘ atau “)
  • Hashtag atau tagar (#)
  • Persen (%)
  • Dolar ($)
  • At (@)
  • Dan lain sebagainya.

Berikut ini, merupakan contoh tampilan teks yang belum dan sudah dilakukan penghapusan karakter spesial:

Saat memproses data teks twitter, sepemahaman penulis, kata yang diawali karakter @ dianggap sebagai kata yang tidak penting sehingga kata tersebut akan dihilangkan. Hal ini disebabkan karena karakter @ yang mengawali sebuah kata dalam data twitter menunjukkan nama user, misalnya @numerikid. Sebagai contoh, perhatikan tabel di bawah ini:

2.1. Kode Python

Contoh di bawah ini menunjukkan bagaimana Python menghapus karakter spesial berupa angka, tanda baca, dan karakter kosong (spasi) dalam data teks:

import re
import string
result = re.sub(r"\d+", "", lower_case)
result = result.translate(str.maketrans("","",string.punctuation))
result = re.sub('\s+', '',result)
print(result)

Keterangan kode:

  • import re, mengimport library re (regex) atau regular expression untuk menghapus karakter angka.
  • import string, perintah yang digunakan untuk mengimport library string.
  • result = re.sub(r”\d+”, “”, lower_case), menghapus karakter angka (0–9) dengan menggunakan fungsi re.sub() dan hasilnya akan disimpan pada variabel result.
  • result = result.translate(str.maketrans(“”,””,string.punctuation)), menghapus tanda baca seperti !”#$%&\’()*+,-./:;<=>?@[\]^_`{|}~ menggunakan fungsi .translate(str.maketrans(“”,””,string.punctuation)).
  • result = re.sub(‘\s+’, ‘’,result), menghapus lebih dari satu karakter kosong (spasi) yang terletak sebelum dan sesudah kata. Jika hanya satu karakter, gunakan fungsi .strip()
  • print(result), mencetak nilai yang dimiliki variabel result. Hasilnya seperti di bawah ini:
rina ilham dan ahmad merupakan mahasiswa prodi sistem informasi 
universitas tadika mesra tahun ini mereka memasuki semester lima
dan mendapatkan mata kuliah pembelajaran mesin multimedia metode penelitian
menurut rina pembelajaran mesin adalah mata kuliah yang paling menyenangkan

3. Tokenisasi (Tokenization)

Tokenisasi atau dikenal juga dengan segmentasi kalimat merupakan teknik yang digunakan untuk memecah teks menjadi bagian-bagian yang lebih kecil (token). Token-token tersebut dapat berupa kata, angka, simbol maupun tanda baca lainnya. Umumnya, dalam bahasa Indonesia, Inggris, dan beberapa bahasa lain yang memiliki abjad sejenis, pemecahan teks dilakukan dengan memanfaatkan spasi yang memisahkan setiap kata. Berdasarkan penjelasan tersebut, perhatikan contoh berikut ini:

Selain memecah teks menjadi komponen kata-kata penyusunnya seperti di atas, tokenisasi juga dapat dilakukan untuk memecah teks (paragraf) menjadi beberapa kalimat. Dalam bahasa Indonesia, Inggris, dan beberapa bahasa lain yang memiliki abjad sejenis, kita dapat memisahkan teks menjadi sebuah kalimat dengan melihat tanda baca (titik) kemudian diikuti whitespace (spasi) seperti contoh di bawah ini:

3.1. Kode Python

Selanjutnya, kita akan mengimplementasikan tahap ini pada Google colab dengan menggunakan contoh kalimat yang telah digunakan pada langkah sebelumnya. Silakan tulis dan jalankan kode berikut pada file Google colab yang sudah kita buat pada tahap sebelumnya:

from nltk.tokenize import word_tokenize
tokens = nltk.tokenize.word_tokenize(result)
print(tokens)

Keterangan kode:

  • from nltk.tokenize import word_tokenize, mengimport fungsi word_tokenize pada library NLTK untuk memecahkan kalimat menjadi kata-kata. Gunakan fungsi sent_tokenize() untuk memisahkan paragraf menjadi beberapa kalimat.
  • tokens = nltk.tokenize.word_tokenize(result), mentukan variabel tokens untuk menyimpan hasil tokenisasi.
  • print(tokens), mencetak variabel tokens. Hasilnya seperti berikut:
['rina', 'ilham', 'dan', 'ahmad', 'merupakan', 'mahasiswa', 'prodi', 'sistem', 'informasi', 
'universitas', 'tadika', 'mesra', 'tahun', 'ini', 'mereka', 'memasuki',
'semester', 'lima', 'dan', 'mendapatkan', 'mata', 'kuliah', 'pembelajaran', 'mesin',
'multimedia', 'metode', 'penelitian', 'menurut', 'rina', 'pembelajaran', 'mesin',
'adalah', 'mata', 'kuliah', 'yang', 'paling', 'menyenangkan']

Setelah kode berhasil dijalankan, selanjutnya, hitung panjang atau banyaknya kata yang sudah berhasil ditokenisasi menggunakan kode berikut:

len(tokens)

Keterangan kode:

  • len(tokens), digunakan untuk mengetahui panjang atau banyaknya kata setelah dilakukan proses tokenisasi. Hasilnya sebanyak 37.

Selanjutnya, kita bisa menghitung jumlah kemunculan tiap kata pada data teks yang kita proses menggunakan fungsi .freqDist() yang dimiliki library NLTK dan melihat hasilnya dengan menggunakan method .most_common(), sehingga implementasi pada Python menjadi seperti berikut:

from nltk.probability import FreqDist
freq_tokens = nltk.FreqDist(tokens)
print(freq_tokens.most_common())

Keterangan kode:

  • from nltk.probability import FreqDist, mengimport fungsi FreqDist pada library NLTK untuk menghitung distribusi frekuensi sebuah kata yang muncul dalam dokumen.
  • freq_tokens = nltk.FreqDist(tokens), menghitung jumlah kemunculan tiap kata menggunakan fungsi .FreqDist() yang terdapat pada library NLTK. Setelah dihitung, hasilnya akan disimpan pada variabel freq_tokens.
  • print(freq_tokens.most_common()), mencetak banyaknya elemen di dalam suatu list dengen menggunakan method .most_common(). Hasilnya seperti di bawah ini:
[('rina', 2), ('dan', 2), ('mata', 2), ('kuliah', 2), ('pembelajaran', 2), ('mesin', 2), 
('ilham', 1), ('ahmad', 1), ('merupakan', 1), ('mahasiswa', 1), ('prodi', 1),
('sistem', 1), ('informasi', 1), ('universitas', 1), ('tadika', 1), ('mesra', 1),
('tahun', 1), ('ini', 1), ('mereka', 1), ('memasuki', 1), ('semester', 1),
('lima', 1), ('mendapatkan', 1), ('multimedia', 1), ('metode', 1), ('penelitian', 1),
('menurut', 1), ('adalah', 1), ('yang', 1), ('paling', 1), ('menyenangkan', 1)]

Dari hasil tokenisasi di atas, kita akan memvisualisasikan variabel freq_tokens ke dalam bentuk diagram batang menggunakan library Pandas dengan menggunakan kode Python di bawah ini:

import pandas as pd
data_freq_tokens = pd.DataFrame.from_dict(freq_tokens, orient='index')
data_freq_tokens.columns = ['Frekuensi']
data_freq_tokens.index.name = 'Kata'
data_freq_tokens.plot(kind='bar')

Keterangan kode:

  • import pandas as pd, mengimport library pandas dengan singkatan pd yang berfungsi untuk mengubah dimensi data, membuat tabel, memeriksa data, membaca data dan lain sebagainya.
  • data_freq_tokens = pd.DataFrame.from_dict(freq_tokens, orient=’index’), digunakan untuk mengkonversi data pada variabel freq_tokens dictionary ke dalam pandas Dataframe.
  • data_freq_tokens.columns = [‘Frekuensi’], digunakan untuk memberi judul Frequency pada kolom.
  • data_freq_tokens.index.name = ‘Kata’, memberi judul pada indeks.
  • data_freq_tokens.plot(kind=’bar’), perintah untuk membuat diagram batang. Hasilnya seperti gambar berikut:

4. Menghapus Stopword (Removing Stopwords)

Stopword merupakan kata yang paling sering muncul dalam suatu bahasa tertentu dan dianggap tidak memiliki makna yang terlalu penting. Kata-kata yang dianggap tidak memiliki arti penting, biasanya akan dihilangkan dari sebuah teks. Tujuannya, agar kita dapat lebih fokus untuk mengolah kata-kata yang lebih penting sehingga dapat mempercepat proses komputasi dan meningkatkan performa model yang akan dibuat. Dalam bahasa Indonesia, contoh stopword meliputi kata hubung seperti yang, di, dan, dari, dan lain sebagainya. Contoh lain dalam bahasa Inggris misalnya a, at, the, for, on, is, dan seterusnya. Berikut ini beberapa contoh stopwords dalam bahasa Indonesia dan Inggris:

Untuk mengambil kata-kata penting dari proses tokenisasi yang sudah dilakukan pada proses sebelumnya, kita akan menggunakan teknik filtering. Terdapat dua algoritma yang dapat digunakan pada tahap ini, yaitu stoplist (membuang kata kurang penting) dan wordlist (menyimpan kata penting). Sebelum membuang kata yang kurang penting, diperlukan kamus yang berisi kata-kata stopword. Kamus ini akan digunakan untuk membandingkan setiap kata yang terdapat dalam data teks, jika kata tersebut ditemukan dalam kamus stopword, maka akan dihilangkan dari data teks. Untuk mempermudah pemahaman kita, perhatikan contoh di bawah ini:

Berdasarkan contoh di atas, kata-kata seperti adalah, ada, beberapa, jenis, yang, di, antaranya, serta dan dihilangkan saat proses filtering sehingga akan menghasilkan informasi yang lebih penting seperti pada tabel sebelah kanan. Perlu kita ketahui, tidak ada kamus stopwords yang bersifat universal. Artinya, daftar kata stopword bisa berbeda antara satu library dengan library yang lainnya. Beberapa library Python yang dapat digunakan untuk melakukan filtering di antaranya NLTK dan Sastrawi.

Untuk melakukan proses filtering menggunakan Python, silakan gunakan kode berikut ini:

from nltk.corpus import stopwords
list_stopwords = set(stopwords.words('indonesian'))
tokens_without_stopword = []
for word in freq_tokens:
if word not in list_stopwords:
tokens_without_stopword.append(word)

print(tokens_without_stopword)

Keterangan kode:

  • from nltk.corpus import stopwords, mengimport fungsi stopwords yang terdapat pada library NLTK
  • list_stopwords = set(stopwords.words(‘indonesian’)), digunakan untuk memanggil daftar stopwords bahasa Indonesia yang dimiliki library NLTK.
  • tokens_without_stopword = [], membuat fungsi perulangan yang digunakan untuk menghapus stopwords pada data teks yang kita miliki, kemudian hasilnya disimpan pada variabel tokens_without_stopword.
  • print(tokens_without_stopword), mencetak variabel tokens_without_stopword. Hasilnya seperti berikut:
['rina', 'mata', 'kuliah', 'pembelajaran', 'mesin', 'ilham', 'ahmad', 
'mahasiswa', 'prodi', 'sistem', 'informasi', 'universitas', 'tadika', 'mesra',
'memasuki', 'semester', 'multimedia', 'metode', 'penelitian', 'menyenangkan']

Setelah kode berhasil dijalankan, jika kita perhatikan, beberapa kata seperti dan, merupakan, ini, mereka, mendapatkan, menurut, yang, dan paling telah dihilangkan pada proses filtering. Selanjutnya, hitung panjang atau banyaknya kata yang sudah berhasil difilter menggunakan kode berikut:

Setelah kode berhasil dijalankan, selanjutnya hitung panjang atau banyaknya kata yang sudah berhasil difilter menggunakan kode berikut:

len(tokens_without_stopword)

Keterangan kode:

  • len(tokens_without_stopword), digunakan untuk mengetahui panjang atau banyaknya kata setelah dilakukan proses stopwords. Hasilnya sebanyak 20. Artinya, kita telah menghapus sebanyak 17 token yang kurang relevan.

Menurut artikel yang dipublikasi oleh Jim Geovedi menjelaskan bahwa penyesuaian daftar stopwords perlu dilakukan setiap pertama kali melakukan proyek analisa. Memang bukan sesuatu yang melelahkan, tapi jika tidak dilakukan maka ini akan dapat mengakibatkan salah interpretasi terhadap data.

5. Mengubah Menjadi Kata Dasar (Stemming)

Stemming merupakan proses mengubah bentuk kata hasil filtering menjadi kata dasar. Namun, kata dasar yang dimaksud di sini tidaklah sama dengan akar kata (root word). Proses stemming digunakan untuk mengubah bentuk kata dengan cara menghilangkan infleksi[3]. Artinya, jika suatu kata mendapatkan prefix (imbuhan yang diletakan di awal kata), suffix (imbuhan yang ditambahkan di akhir kata dasar), ataupun infix (imbuhan yang disisipkan di tengah kata), maka kelas kata[4] dari kata tersebut masih sama. Sebagai contoh, kata ”books” diubah menjadi ”book”. Kata ”book” menunjukkan jika buku tersebut hanya berjumlah satu (tunggal), sedangkan kata ”books” memiliki arti jumlah buku lebih dari satu (jamak). Namun, baik kata ”book” maupun ”books” keduanya masih sama-sama memiliki kelas kata sebagai kata benda (noun). Sayangnya, dalam bahasa Indonesia tidak mengenal bentuk kata tunggal dan jamak seperti contoh di atas, sehingga dalam kasus tertentu penggunaan stemming akan menimbulkan kesalahan makna. Di bawah ini, beberapa contoh kata hasil stemming:

Seperti yang sudah dijelaskan sebelumnya, untuk melakukan stemming antara satu bahasa dengan bahasa lainnya tentu akan berbeda. Misalnya, dalam teks bahasa Inggis proses stemming digunakan hanya untuk menghilangkan sufix (imbuhan yang ditambahkan di akhir kata). Sedangkan dalam teks bahasa Indonesia, semua kata imbuhan baik di awal, sisipan, maupun akhir akan dihilangkan. Beberapa algoritma yang tersedia pada library NLTK untuk melakukan proses stemming di antaranya:

· Porter stemmer

· Lancester stemmer

· WordNet Lemmatizer

· SnowBall

Sayangnya, beberapa algoritma yang disebutkan di atas, belum mendukung proses stemming pada teks berbahasa Indonesia. Namun, kita tak perlu khawatir, karena saat ini sudah tersedia library Python Sastrawi yang dapat kita gunakan untuk melakukan stemming pada teks bahasa Indonesia. Library tersebut menggunakan algoritma Nazief dan Adriani untuk melakukan stemming. Berikut implementasinya pada kode Python:

5.1. Kode Python

from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
factory = StemmerFactory()
stemmer = factory.create_stemmer()
list_tokens = tokens_without_stopword
output = [(token + " : " + stemmer.stem(token)) for token in list_tokens]
output

Keterangan kode:

  • from Sastrawi.Stemmer.StemmerFactory import StemmerFactory, mengimport fungsi StemmerFactory yang terdapat pada library Sastrawi.
  • factory = StemmerFactory(), digunakan untuk membantu membuat konfigurasi stemmer.
  • stemmer = factory.create_stemmer(), Stem Indonesia. Nazief & Adriani, CS Stemmer, ECS Stemmer, Peningkatan ECS.
  • list_tokens = tokens_without_stopword, memanggil variabel tokens_without_stopword untuk disimpan pada variabel list_tokens.
  • output = [(token + “ : “ + stemmer.stem(token)) for token in list_tokens], digunakan untuk menyimpan data (kata) sebelum dan sesudah dilakukan stemming dalam bentuk list.
  • output, menampilkan data (kata) sebelum dan sesudah dilakukan stemming yang disimpan pada variabel output. Hasilnya seperti ini:
['rina : rina',
'mata : mata',
'kuliah : kuliah',
'pembelajaran : ajar',
'mesin : mesin',
'ilham : ilham',
'ahmad : ahmad',
'mahasiswa : mahasiswa',
'prodi : prodi',
'sistem : sistem',
'informasi : informasi',
'universitas : universitas',
'tadika : tadika',
'mesra : mesra',
'memasuki : pasuk',
'semester : semester',
'multimedia : multimedia',
'metode : metode',
'penelitian : teliti',
'menyenangkan : senang']

Berdasarkan hasil di atas, beberapa kata seperti “pembelajaran”, “memasuki”, “penelitian”, dan “menyenangkan” diubah menjadi kata dasarnya yaitu “ajar”, “pasuk”, “teliti”, dan “senang”. Selain stemming, terdapat teknik lain yang digunakan untuk mengubah kata menjadi kata dasar yaitu Lemmatization (lematisasi). Lematisasi merupakan proses menemukan bentuk dasar dari sebuah kata yang memiliki arti tertentu berdasarkan pada kamus. Misalnya, terdapat kata “seen” dan “saw” maka kata tersebut akan dikembalikan ke dalam bentuk aslinya yaitu “see”. Proses ini akan berjalan jauh lebih lambat dibanding stemming, karena menggunakan vocabulary (kosa kata) dan analisis morfologi[5] untuk menghasilkan kata dasar (lemma).

[1] Delimiter merupakan karakter yang digunakan untuk memisahkan teks seperti koma atau spasi.

[2] Tahap ini akan dijelaskan pada bagian selanjutnya.

[3] Infleksi: Proses pembentukan kata baru dengan menambahkan imbuhan terhadap suatu kata namun tidak mengubah kelas kata tersebut.

[4] Contoh kelas kata yaitu: Kata kerja, kata benda, kata ganti, kata benda, kata sifat, dan lain-lain.

[5] Morfologi adalah ilmu yang mempelajari bentuk kata.

--

--

No responses yet