My IBM Masuk Berlangganan

Apa itu stemming dan lematisasi?

10 Desember 2023

Penyusun

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Program Manager

Stemming dan lematisasi adalah teknik prapemrosesan teks yang mengurangi varian kata menjadi satu bentuk dasar.

Stemming dan lematisasi adalah teknik prapemrosesan teks dalam pemrosesan bahasa alami (NLP). Specifically, they reduce the inflected forms of words across a text data set to one common root word or dictionary form, also known as a “lemma” in computational linguistics.1

Stemming dan lematisasi sangat membantu dalam sistem pencarian informasi seperti mesin pencari di mana pengguna dapat mengirimkan kueri dengan satu kata (misalnya, meditate) tetapi mengharapkan hasil yang menggunakan bentuk infleksi dari kata tersebut (misalnya, meditates, meditation, dsb.). Stemming dan lematisasi selanjutnya bertujuan untuk meningkatkan pemrosesan teks dalam algoritma machine learning.

Mengapa stemming dan lematisasi?

Para peneliti memperdebatkan apakah kecerdasan buatan dapat bernalar, dan perdebatan ini telah meluas ke linguistik komputasional. Apakah chatbot dan model pembelajaran mendalam hanya memproses bentuk linguistik, atau bisakannya memahami semantik?2 Apa pun yang diyakini seseorang mengenai hal ini, tetap saja model machine learning harus dilatih untuk mengenali kata-kata yang berbeda sebagai varian morfologis dari satu kata dasar. Bahkan memproses kata berdasarkan morfologi, bukan semantik. Dengan mereduksi bentuk kata derivasional menjadi satu kata dasar, stemming dan lematisasi membantu sistem pencarian informasi dan model pembelajaran mendalam menyamakan kata-kata yang berhubungan secara morfologis.

Untuk banyak tugas penambangan teks termasuk klasifikasi teks, pengelompokan, pengindeksan, dan banyak lagi, stemming dan lematisasi membantu meningkatkan akurasi dengan menyusutkan dimensi algoritma machine learning dan mengelompokkan kata-kata yang terkait secara morfologis. Pengurangan dimensi algoritma dapat, pada gilirannya, meningkatkan akurasi dan ketepatan model statistik dalam NLP, seperti model topik dan vektor kata.3

Desain 3D bola yang menggelinding di lintasan

Berita + Insight AI terbaru 


Temukan insight dan berita yang dikurasi oleh para pakar tentang AI, cloud, dan lainnya di Buletin Think mingguan. 

Stemming vs lematisasi

Stemming dan lematisasi berfungsi sebagai salah satu tahap dalam pipeline penambangan kata yang mengubah data teks mentah menjadi format terstruktur untuk diproses oleh mesin. Baik stemming dan lematisasi menghilangkan afiks dari bentuk kata yang diinfleksikan, hanya menyisakan bentuk akar kata.4 Proses ini berarti menghapus karakter dari awal dan akhir token kata. Akar kata yang dihasilkan, atau kata dasar, kemudian diteruskan untuk diproses lebih lanjut. Di luar kesamaan dasar ini, stemming dan lematisasi memiliki perbedaan utama dalam hal bagaimana mereka mengurangi berbagai bentuk kata menjadi satu bentuk dasar yang sama.

Cara kerja stemming

Algoritma stemming sangat berbeda, meskipun mereka memiliki beberapa mode operasi yang umum. Stemmer menghilangkan sufiks kata dengan menjalankan token kata input terhadap daftar sufiks umum yang telah ditentukan sebelumnya. Stemmer kemudian menghapus semua string karakter sufiks yang ditemukan dari kata tersebut, jika sufiks tersebut tidak melanggar aturan atau ketentuan yang melekat pada sufiks tersebut. Beberapa stemmer (misalnya, Lovins stemmer) menjalankan bit-bit yang dihasilkan melalui seperangkat aturan tambahan untuk mengoreksi akar kata yang cacat.

Algoritma yang paling banyak digunakan adalah algoritma Porter stemming, dan versi yang diperbarui adalah Snowball stemmer. Untuk lebih memahami stemming, kita dapat menjalankan paragraf berikut dari Hamlet karya Shakespeare melalui Snowball stemmer: "There is nothing either good or bad but thinking makes it so.”

Toolkit bahasa alami Python (NLTK) berisi fungsi bawaan untuk Snowball dan Porter stemmer. Setelah melakukan tokenisasi pada kutipan Hamlet menggunakan NLTK, kita dapat meneruskan teks yang telah ditokenisasi melalui Snowball stemmer menggunakan kode ini:

from nltk.stem.snowball import SnowballStemmer
from nltk.tokenize import word_tokenize

stemmer = SnowballStemmer("english", True)
text = "There is nothing either good or bad but thinking makes it so."
words = word_tokenize(text)
stemmed_words = [stemmer.stem(word) for word in words]

print("Original:", text)
print("Tokenized:", words)
print("Stemmed:", stemmed_words)

Output kode:

Original: There is nothing either good or bad but thinking makes it so.
Tokenized: ['There', 'is', 'nothing', 'either', 'good', 'or', 'bad', 'but', 'thinking', 'makes', 'it', 'so', '.']
Stemmed: ['there', 'is', 'noth', 'either', 'good', 'or', 'bad', 'but', 'think', 'make', 'it', 'so', '.']

Algoritma Snowball dan Porter stemmer memiliki metode yang lebih matematis untuk menghilangkan sufiks daripada stemmer lainnya. Bisa dikatakan, stemmer menjalankan setiap token kata berdasarkan daftar aturan yang menentukan string sufiks yang akan dihapus sesuai dengan jumlah kelompok vokal dan konsonan dalam sebuah token.5 Tentu saja, karena bahasa Inggris mengikuti aturan leksikal yang umum tetapi tidak mutlak, kriteria sistematis algoritma stemming mengembalikan kesalahan, seperti noth.

Stemmer menghilangkan -ing, yang menjadi akhiran umum yang menandakan present progressive. Namun, dalam kutipan Hamlet , menghapus -ing secara keliru menghasilkan noth stemming. Hal ini dapat menghambat analisis linguistik selanjutnya untuk mengasosiasikan nothing dengan kata benda yang serupa, seperti anything dan something. Selain itu, stemmer meninggalkan kata kerja tidak beraturan is berubah. Snowball stemmer juga meninggalkan konjugasi lain dari to be, seperti was dan are, tidak tanpa stemming. Ini dapat menghambat model untuk mengasosiasikan konjugasi tidak teratur dari kata kerja tertentu dengan benar.

Cara kerja lematisasi

Literatur umumnya mendefinisikan stemming sebagai proses penghapusan imbuhan dari kata untuk mendapatkan string kata yang di stem, dan lematisasi sebagai usaha yang lebih besar untuk mengurangi varian morfologi menjadi satu bentuk dasar kamus.6 Perbedaan praktis antara stemming dan lematisasi adalah bahwa, di mana stemming hanya menghilangkan sufiks umum dari akhir token kata, lemmatisasi memastikan kata hasil adalah bentuk normal dari kata tersebut (misalnya, lema) yang dapat ditemukan dalam kamus.7

Karena lematisasi bertujuan untuk menghasilkan bentuk dasar kamus, maka diperlukan analisis morfologi yang lebih kuat daripada stemming. Penandaan kelas kata (POS) adalah langkah penting dalam lematisasi. POS pada dasarnya menetapkan setiap tag kata yang menandakan fungsi sintaksisnya dalam kalimat. Python NLTK menyediakan sebuah fungsi untuk algoritma Word Net Lemmatization, yang dengannya kita dapat melakukan lematisasi pada paragraf Hamlet :

from nltk.stem import WordNetLemmatizer
from nltk.corpus import wordnet
from nltk import word_tokenize, pos_tag
 
def get_wordnet_pos(tag):
    if tag.startswith('J'):
        return wordnet.ADJ
    elif tag.startswith('V'):
        return wordnet.VERB
    elif tag.startswith('N'):
        return wordnet.NOUN
    elif tag.startswith('R'):
        return wordnet.ADV
    else:         
        return wordnet.NOUN
       
def lemmatize_passage(text):
    words = word_tokenize(text)
    pos_tags = pos_tag(words)
    lemmatizer = WordNetLemmatizer()
    lemmatized_words = [lemmatizer.lemmatize(word, get_wordnet_pos(tag)) for word, tag in pos_tags]
    lemmatized_sentence = ' '.join(lemmatized_words)
    return lemmatized_sentence
 
text = "There is nothing either good or bad but thinking makes it so."
result = lemmatize_passage(text)
 
print("Original:", text)
print("Tokenized:", word_tokenize(text))
print("Lemmatized:", result)

Kode mengembalikan:

Original: There is nothing either good or bad but thinking makes it so.
Tokenized: ['There', 'is', 'nothing', 'either', 'good', 'or', 'bad', 'but', 'thinking', 'makes', 'it', 'so', '.']
Lemmatized: There be nothing either good or bad but think make it so .

WordNetLemmatizer, seperti halnya Snowball stemmer, mengurangi konjugasi kata kerja menjadi bentuk dasar—misalnya thinking menjadi think, makes menjadi make. Namun, tidak seperti algoritma stemming Snowball, lemmatizer mengidentifikasi nothing sebagai kata benda, dan secara tepat membiarkan akhiran -ing tidak diubah sementara lebih lanjut mengubah is ke bentuk dasarnya be. Dengan cara ini, lemmatizer lebih tepat dalam mengubah bentuk kata kerja yang tidak beraturan.

Batasan

Stemming dan lematisasi terutama mendukung normalisasi data teks bahasa Inggris. Kedua teknik normalisasi teks ini juga mendukung beberapa bahasa aksara Romawi lainnya, seperti Prancis, Jerman, dan Spanyol. Skrip lain, seperti bahasa Rusia, lebih lanjut didukung oleh Snowball stemmer. Pengembangan algoritma stemming dan lematisasi untuk bahasa lain, terutama bahasa Arab, merupakan bidang penelitian yang sedang berlangsung. Bahasa Arab sangat menantang karena morfologi aglutinatif, variasi ortografi, dan ambiguitas leksikal, di antara karakteristik lainnya.8 Secara keseluruhan, elemen-elemen tersebut menimbulkan masalah bagi metode sistematis untuk mengidentifikasi bentuk kata dasar di antara varian morfologi, setidaknya jika dibandingkan dengan kata-kata dalam bahasa Inggris.

Di luar batasan umum ini, stemming dan lematisasi memiliki kelemahan masing-masing. Seperti yang diilustrasikan pada contoh Hamlet, stemming adalah proses penghapusan string karakter yang relatif heuristik dan berbasis aturan. Over-stemming dan under-stemming adalah dua kesalahan umum yang muncul. Over-stemming terjadi ketika dua kata yang berbeda secara semantik direduksi menjadi akar kata yang sama (misalnya, news menjadi new); under-stemming terjadi ketika dua kata yang berhubungan secara semantik tidak direduksi menjadi akar kata yang sama (misalnya, knavish dan knave menjadi knavish dan knave).9 Selain itu, stemming hanya menghilangkan sufiks dari kata-kata sehingga tidak dapat menjelaskan bentuk kata kerja yang tidak beraturan atau awalan seperti yang dilakukan oleh lematisasi. Tentu saja, stemming relatif sederhana dan mudah diimplementasikan, sementara lematisasi bisa jadi lebih mahal secara komputasi dan memakan waktu, tergantung pada ukuran data yang diproses.

Mixture of Experts | Podcast

Decoding AI: Rangkuman Berita Mingguan

Bergabunglah dengan panel insinyur, peneliti, pemimpin produk, dan sosok kelas dunia lainnya selagi mereka mengupas tuntas tentang AI untuk menghadirkan berita dan insight terbaru seputar AI.

Solusi terkait

Solusi terkait

IBM watsonx Orchestrate

Rancang asisten dan agen AI yang dapat diskalakan dengan mudah, otomatiskan tugas berulang, dan sederhanakan proses kompleks dengan IBM watsonx Orchestrate.

Temukan watsonx Orchestrate
Alat dan API pemrosesan bahasa alami

Mempercepat nilai bisnis kecerdasan buatan dengan portofolio pustaka, layanan, dan aplikasi yang kuat dan fleksibel.

Jelajahi solusi NLP
Konsultasi dan layanan AI

Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Rancang asisten dan agen AI yang dapat diskalakan dengan mudah, otomatiskan tugas berulang, dan sederhanakan proses kompleks dengan IBM watsonx Orchestrate.

Temukan watsonx Orchestrate Jelajahi solusi NLP
Catatan kaki

1 Nitin Indurkhya dan Fred Damerau, Handbook of Natural Language Processing, 2nd edition, CRC Press, 2010.

2 Zhaofeng Wu, Linlu Qiu, Alexis Ross, Ekin Akyürek, Boyuan Chen, Bailin Wang, Najoung Kim, Jacob Andreas, Yoon Kim, "Reasoning or Reciting? Mengekplorasi Kapabilitas dan Batasan Model Bahasa Melalui Tugas-tugas Kontrafaktual," 2023, https://arxiv.org/abs/2307.02477. Gati Aher, Rosa Arriaga, Adam Kalai, "Menggunakan Model Bahasa Besar untuk Mimikri Manusia dan Meresapi Studi Subyek Manusia," Proceedings of the 40th International Conference on Machine Learning, PMLR, Vol. 202, 2023, hlm. 337-371, https://proceedings.mlr.press/v202/aher23a.html. Emily Bender dan Alexander Koller, “Climbing towards NLU: On Meaning, Form and Understanding in the Age of Data,” Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, 2020, hlm. 5185-5198, 10.18653/v1/2020.acl-main.463.

3 Gary Miner, Dursun Delen, John Elder, Andrew Fast, Thomas Hill, dan Robert A. Nisbet, Practical Text Mining and Statistical Analysis for Non-Structured Text Data Applications, Academic Press, 2012.

4 Christopher Manning dan Hinrich Schütze, Yayasan Pemrosesan Bahasa Alami Statistik, MIT Press, 1999.

5 Martin Porter, "An algorithm for suffix stripping", Program: electronic library and information systems, Vol. 14, No. 3, 1980, hlm. 130-137, https://www.emerald.com/insight/content/doi/10.1108/eb046814/full/html. Martin Porter, “Bola Salju: Bahasa untuk algoritma stemming,” 2001, https://snowballstem.org/texts/introduction.html.

6 Nitin Indurkhya dan Fred Damerau, Buku Pegangan Pemrosesan Bahasa Alami, edisike-2, CRC Press, 2010. Christopher Manning dan Hinrich Schütze, Foundations of Statistical Natural Language Processing, MIT Press, 1999.

7 Janez Brank, Dunja Mladenic dan Marko Grobelnik, “Feature Construction in Text Mining,” Encyclopedia of Machine Learning and Data Mining, Springer, 2017.

8 Abed Alhakim Freihat, Gábor Bella, Mourad Abbas, Hamdy Mubarak, dan Fausto Giunchiglia, "ALP: An Arabic Linguistic Pipeline," Analysis and Application of Natural Language and Speech Processing, 2022, pp.67-99, https://link.springer.com/chapter/10.1007/978-3-031-11035-1_4.  Abdul Jabbar, Sajid Iqbal, Manzoor Ilahi Tamimy, Shafiq Hussain and Adnan Akhunzada, "Empirical evaluation and study of text stemming algorithms," Artificial Intelligence Ulasan, Vol. 53, 2020, hlm. 5559–5588, https://link.springer.com/article/10.1007/s10462-020-09828-3. Abed Alhakim Freihat, Mourad Abbas, G'abor Bella, Fausto Giunchiglia, "Towards an Optimal Solution to Lemmatization in Arabic," Procedia Computer Science, Vol. 142, 2018, hlm. 132-140, https://www.sciencedirect.com/science/article/pii/S1877050918321707?via%3Dihub.

9 Chris Paice, “Stemming,” Encyclopedia of Database Systems, Springer, 2020.