Apa itu stemming?

Stemming dalam natural language processing (NLP) melibatkan pengurangan kata ke bentuk dasar atau stem, yang mungkin tidak selalu merupakan kata yang valid. Misalnya, "arguing" dan "argued" terkadang dapat diubah menjadi "argu", yang bukan kata yang benar. Hal ini terutama dicapai dengan menghapus sufiks. Menghapus sufiks akan mengelompokkan bentuk-bentuk yang berbeda dari kata yang sama dan membantu komputer memprosesnya dengan lebih efisien. Proses ini meningkatkan akurasi dan efisiensi berbagai tugas NLP dengan mengurangi jumlah kata unik yang perlu dipertimbangkan.

Poin-poin penting

  • Apa itu stemming: Stemming adalah proses berbasis aturan yang cepat dalam NLP untuk memangkas kata menjadi bentuk dasarnya (misalnya, "running" menjadi "run")
  • Tujuan: Mengurangi variasi kata untuk meningkatkan efisiensi mesin telusur dan model analisis teks
  • Pertimbangan utama: Stemming lebih cepat tetapi kurang akurat dibandingkan dengan lematisasi, karena outputnya mungkin bukan kata sungguhan (misalnya, "arguing" menjadi "argu")
  • Algoritma umum: Jenis yang paling terkenal adalah stemmer Porter, Snowball, dan Lancaster

Apa tujuan stemming?

Tujuan utama stemming adalah untuk mengurangi variasi kata yang harus diproses oleh mesin. Dengan mengurangi kata ke bentuk dasarnya, mesin dapat memperlakukan berbagai bentuk kata yang sama sebagai satu entitas. Misalnya, "running", "runs", dan "runner" akan direduksi menjadi stem "run". Penyederhanaan ini dapat membantu meningkatkan akurasi dan efisiensi berbagai tugas NLP.

Beberapa tujuan utama stemming meliputi:

  • Pengambilan informasi: Stemming memungkinkan mesin telusur mengambil dokumen yang relevan meskipun kueri penelusuran menggunakan bentuk kata yang berbeda dari yang ada di dokumen
  • Penambangan teks: Stemming membantu mengidentifikasi pola dan tren dalam set data teks besar dengan mengelompokkan berbagai bentuk kata yang sama
  • Terjemahan mesin: Stemming berpotensi meningkatkan akurasi terjemahan mesin dengan mengurangi jumlah kata yang perlu diterjemahkan

Bagaimana cara kerja stemming dalam NLP?

Algoritma stemming menggunakan serangkaian aturan untuk mengidentifikasi dan menghapus sufiks dari kata. Aturan ini sering kali didasarkan pada pola linguistik atau analisis statistik dari kumpulan teks yang besar. Algoritma umumnya bekerja dalam serangkaian langkah, yang masing-masing menghapus jenis sufiks tertentu. Misalnya, aturan stemming sederhana adalah menghapus akhiran "-ing" dari kata yang berakhiran "-ing". Prosesnya biasanya cepat dan tidak mahal secara komputasional, sehingga cocok untuk memproses data teks dalam jumlah besar.

Stemming dan konflasi

Salah satu konsep penting yang terkait dengan stemming adalah konflasi, yang melibatkan perlakuan terhadap kata atau frasa yang berbeda sebagai kecocokan semantik karena merujuk pada ide pusat yang sama. Misalnya, 'decided' dan 'decidable' mungkin bukan sinonim, tetapi dapat diperlakukan sebagai kata yang mirip dalam konteks tertentu, seperti saat menganalisis topik yang terkait dengan proses pengambilan keputusan. Stemming dapat dilihat sebagai jenis konflasi yang berfokus pada pengurangan variasi infleksi kata.   

Stemming juga memainkan peran penting dalam konflasi istilah, yang merupakan proses yang lebih umum untuk mengurangi variasi leksikal dalam teks. Konflasi istilah bertujuan untuk mengurangi berbagai bentuk kata (seperti stemming dan lematisasi), serta variasi makna, tata bahasa, atau ejaan. Dengan mengurangi perbedaan ini, stemming dapat membuat analisis teks dan penelusuran informasi menjadi lebih efektif.

Jenis algoritma stemming

Dasar algoritma stemming diletakkan pada tahun 1968 oleh Julie Beth Lovins, yang mengembangkan stemmer pertama yang dipublikasikan. Sejak saat itu, beberapa algoritma stemming yang berbeda telah dibuat, masing-masing dengan kelebihan dan kekurangannya sendiri:

Stemmer Porter

Stemmer Porter adalah salah satu algoritma stemming tertua dan paling banyak digunakan, yang dikembangkan oleh Martin Porter pada tahun 1980. Stemmer ini menggunakan serangkaian aturan untuk menghapus sufiks dari kata-kata bahasa Inggris. Algoritma ini dikenal karena kesederhanaan dan kecepatannya, tetapi terkadang dapat mengurangi kata secara berlebihan, sehingga menyebabkan ketidakakuratan, dan mungkin tidak berfungsi dengan baik untuk bahasa selain bahasa Inggris. Misalnya, stemmer Porter dapat mereduksi "university", "universal", dan "universities" menjadi stem yang sama: "univers". Hal ini jelas menunjukkan sifat agresif dan potensi hilangnya makna dari algoritma tersebut.

Stemmer Snowball

Stemmer Snowball dikembangkan sebagai peningkatan dari stemmer Porter. Snowball mendukung berbagai bahasa (tidak hanya bahasa Inggris) dan secara umum dianggap lebih akurat. Namun, itu tidak selalu menjamin penghindaran over-stemming. Algoritma ini lebih canggih, sehingga dapat menangkap lebih banyak nuansa linguistik dan menghasilkan stem yang lebih bermakna secara semantik, serta menawarkan keseimbangan yang lebih baik antara akurasi dan kecepatan. Hal ini dapat membantu dalam aplikasi yang memerlukan pelestarian konteks dan makna kata, seperti pengambilan informasi dan terjemahan mesin.

Stemmer Lancaster

Stemmer Lancaster adalah algoritma populer lainnya yang dikenal karena kemampuannya dalam mengurangi kata secara lebih agresif. Meskipun hal ini dapat menghasilkan pemrosesan yang lebih cepat, sering kali hal ini menghasilkan lebih banyak error stemming dibandingkan dengan stemmer Porter atau Snowball. Peningkatan kecepatan, meskipun berguna dalam situasi tertentu seperti memproses teks dalam jumlah besar yang membutuhkan waktu cepat, mungkin tidak sebanding dengan potensi hilangnya akurasi dalam banyak aplikasi.

Stemming dan lematisasi

Meskipun stemming dan lematisasi adalah dua metode yang digunakan untuk mengurangi kata ke bentuk dasarnya, keduanya tidak sama. Lematisasi adalah versi stemming yang lebih canggih yang mempertimbangkan konteks dan tata bahasa kata. Lematisasi menggunakan kamus dan analisis morfologi untuk mengetahui bentuk kamus kata, yang juga dikenal sebagai lema. Lematisasi biasanya menghasilkan kata yang valid (lema), tidak seperti stemming, yang mungkin tidak menghasilkan kata yang valid. Meskipun lematisasi umumnya lebih akurat daripada stemming, proses ini dapat lebih mahal secara komputasi karena membutuhkan lebih banyak waktu dan upaya.

Fitur

Stemming

Lematisasi

Kompleksitas

Lebih rendah

Lebih tinggi

Akurasi

Lebih rendah

Lebih tinggi

Kecepatan

Lebih cepat

Lebih lambat

Output

Mungkin bukan kata yang valid

Selalu kata yang valid

Fitur

Stemming

Lematisasi

Kompleksitas

Lebih rendah

Lebih tinggi

Akurasi

Lebih rendah

Lebih tinggi

Kecepatan

Lebih cepat

Lebih lambat

Output

Mungkin bukan kata yang valid

Selalu kata yang valid

Penerapan stemming

Stemming dapat digunakan dalam berbagai tugas NLP:

Pengambilan informasi

Sistem pengambilan informasi, seperti mesin telusur, alat penelusuran desktop, retrieval augmented generation (RAG), dan sistem pengelolaan dokumen, dapat memperoleh manfaat besar dari stemming. Dengan menerapkan stemming pada istilah penelusuran dan dokumen yang ditelusuri, sistem ini dapat mencocokkan kueri dengan konten yang relevan secara lebih efektif, meskipun kata-katanya tidak identik.

Klasifikasi teks

Stemming dapat membantu meningkatkan akurasi algoritma klasifikasi teks dengan mengurangi jumlah fitur atau atribut data teks dan meningkatkan kemungkinan kata-kata terkait dikelompokkan bersama. Hal ini memudahkan algoritma mengidentifikasi pola dan mengklasifikasikan teks secara akurat.

Peringkasan teks

Peringkasan teks dapat memanfaatkan stemming untuk membantu mengidentifikasi kata-kata terpenting dan mengurangi redundansi. Dengan mengelompokkan kata-kata yang terkait, stemming membantu membuat ringkasan yang lebih ringkas dan informatif.

Analisis sentimen

Stemming dapat membantu menentukan apakah teks bersifat positif, negatif, atau netral dengan memendekkan kata ke bentuk utamanya. Misalnya, "happy", "happily", dan "happiness" semuanya menjadi "happy". Hal ini dapat memudahkan Anda melihat sentimen positif secara keseluruhan dan menghindari kebingungan akibat berbagai bentuk kata. Namun, terkadang stemming dapat menyebabkan kesalahan jika menghapus informasi penting atau memendekkan kata secara tidak benar. Namun, secara umum, hal ini membuat analisis sentimen menjadi lebih baik dan lebih cepat dengan berfokus pada makna inti kata, bukan tata bahasanya.

Manfaat stemming

Penggunaan stemming dapat memberikan beberapa potensi keuntungan:

Performa model yang ditingkatkan

Stemming dapat membantu meningkatkan performa model NLP Anda dengan mengurangi jumlah kata unik. Hal ini dapat mempercepat waktu pelatihan dan meningkatkan akurasi prediksi. Dengan mengelompokkan kata-kata yang terkait, stemming memperkuat sinyal untuk identifikasi pola dalam teks. Hasilnya, Anda mungkin melihat model yang lebih tangguh dan akurat, terutama untuk tugas seperti klasifikasi teks dan analisis sentimen. Misalnya, di Vertex AI, menggunakan stemming sebagai langkah prapemrosesan dapat meningkatkan akurasi model analisis sentimen Anda dengan mengurangi dampak variasi kata kecil.

Pengurangan dimensi

Pengurangan dimensi data dengan mengurangi jumlah kata unik yang diproses dapat dicapai secara langsung melalui stemming. Hal ini dapat membantu meminimalkan resource yang diperlukan untuk tugas seperti membuat matriks frekuensi istilah atau membangun indeks kosakata. Pengurangan dimensi juga dapat menghasilkan kecepatan pemrosesan yang lebih cepat dan konsumsi memori yang lebih rendah.

Peningkatan perolehan penelusuran

Dalam sistem pengambilan informasi, stemming dapat meningkatkan perolehan secara signifikan. Misalnya, seseorang yang menelusuri "hiking poles" juga dapat menemukan dokumen yang berisi "hikes", "hiker", atau "hiked". Stemming menjembatani perbedaan bentuk kata yang sama, sehingga dokumen yang relevan tidak terlewat karena variasi kecil dalam kata-kata. Peningkatan perolehan ini dapat menjadi penting untuk memastikan hasil penelusuran yang komprehensif, meskipun mungkin akan menghasilkan lebih banyak hasil yang tidak relevan.

Pengelompokan dan pemodelan topik yang ditingkatkan

Pengelompokan dokumen dan pemodelan topik dapat ditingkatkan melalui stemming. Dengan mereduksi kata ke bentuk dasarnya, stemming membantu mengelompokkan dokumen berdasarkan makna semantik yang mendasarinya, bukan variasi superfisial dalam bentuk kata. Hal ini dapat menghasilkan cluster atau topik yang lebih koheren dan bermakna.

Prapemrosesan teks yang disederhanakan

Stemming dapat sangat menyederhanakan pipeline prapemrosesan teks secara keseluruhan. Proses ini mengurangi jumlah istilah unik yang perlu dipertimbangkan dalam langkah-langkah berikutnya seperti penghapusan stopword, ekstraksi fitur (TF-IDF, embedding kata), dan normalisasi data. Representasi data yang lebih bersih dan ringkas sering kali lebih mudah dikelola dan dianalisis, sehingga membantu menghemat waktu dan sumber daya pengembangan.

Mengurangi ketersebaran data dan overfitting

Dalam model machine learning yang menangani data teks, stemming dapat membantu mengurangi ketersebaran data dengan mengelompokkan berbagai bentuk kata yang sama. Hal ini dapat mencegah overfitting, yaitu kondisi saat model menghafal bentuk kata tertentu, bukan mempelajari pola yang dapat digeneralisasi.

Batasan stemming

Meskipun memiliki manfaat, stemming juga memiliki beberapa keterbatasan yang mungkin terjadi:

  • Over-stemming: Hal ini terjadi ketika algoritma stemming menghapus terlalu banyak bagian kata, sehingga menghasilkan stem yang bukan kata valid atau memiliki arti yang berbeda dari kata aslinya
  • Under-stemming: Hal ini dapat terjadi ketika algoritma stemming gagal menghapus cukup banyak kata, sehingga berbagai bentuk kata yang sama diperlakukan sebagai kata yang berbeda
  • Kehilangan informasi: Stemming terkadang dapat mengakibatkan hilangnya informasi, karena sufiks yang dihapus mungkin berisi informasi gramatikal atau semantik yang penting
  • Kesalahan kontekstual: Algoritma stemming biasanya beroperasi tanpa mempertimbangkan konteks kata, yang dapat menyebabkan kesalahan dalam kasus di mana kata yang sama memiliki arti yang berbeda bergantung pada konteksnya

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.