Porter Vs. Bola Salju Vs. Lancaster – Menuju AI

Terms such as connections, connection, connected, and connecting have a common stem — connect.

Pengarang: Kaustubh Bhavsar

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Pelajari bagaimana Stemmer populer yang berbeda bekerja dan bagaimana Stemming berbeda dari Lemmatization

Istilah seperti koneksi, koneksi, terhubung, dan menghubungkan memiliki batang yang sama — sambungkan.Sumber: Gambar dari Canva, gambar yang diedit secara bebas oleh penulis.

pengantar

Aplikasi umum dari Natural Language Processing (NLP) adalah Information Retrieval (IR). Sistem IR berhubungan dengan memperoleh sumber daya terkait yang relevan dengan permintaan pencarian dari kumpulan besar sumber daya tersebut. Misalkan kita ingin mengambil resource untuk kata ‘connect’. Untuk alasan tata bahasa, kata yang sama ini akan mengambil bentuk yang berbeda seperti ‘terhubung’, ‘menghubungkan’, atau ‘menghubungkan’. Semua kata ini memiliki arti yang sama, tetapi tergantung pada konteks penggunaannya, mereka semua berbeda dalam ejaan atau akhir. Masuk akal untuk menggunakan hanya satu kata untuk mewakili vektor kata yang relevan untuk mencari satu set sumber daya terkait yang relevan dengan permintaan pencarian.

Mengapa kita harus menggunakan satu kata untuk mewakili vektor kata yang relevan?

Penggunaan satu kata untuk mewakili vektor kata terkait biasanya akan meningkatkan kinerja sistem IR. Mengurangi jumlah kata juga akan mengurangi ukuran keseluruhan dan, dengan demikian, kompleksitas total data dalam sistem.

Apa itu Stemming?

Stemming adalah proses mengidentifikasi bentuk akar, juga disebut bentuk dasar sebuah kata, dengan mengganti atau menghilangkan akhiran kata. Peneliti JB Lovins, dalam artikelnya, “Development of a Stemming Algorithm,” mendefinisikan stemming sebagai:

“Algoritma stemming adalah prosedur komputasi yang mereduksi semua kata dengan akar yang sama… menjadi bentuk umum, biasanya dengan menghapus setiap kata dari akhiran derivasional dan infleksionalnya.”

Misalnya, ‘boat’ adalah akar kata: ‘boats’, ‘boater’, atau ‘boating’.

Dalam batang, akar kata disebut batang. Jadi, dalam kasus kami, ‘perahu’ disebut batang. Untuk membuat konsep kita lebih kuat, mari kita pahami contoh lain; ‘menghubungkan’ adalah kata dasar untuk kata-kata berikut: ‘menghubungkan’, ‘menghubungkan’, ‘menghubungkan’, ‘menghubungkan’, atau ‘terhubung’.

Pengupasan awalan tidak banyak digunakan untuk stemming; namun, mungkin berguna dalam mata pelajaran tertentu, seperti kimia.

Apakah itu berarti Stemming akan selalu menghasilkan kata dasar yang valid?

Tidak. Misalnya, jika kita mengolah kata ‘transparan’ melalui porter stemmer, maka akar kata yang kita dapatkan adalah ‘transpar’. Demikian pula jika kita mengolah kata yang sama melalui stemmer Lancaster, maka akar kata yang kita peroleh adalah ‘transp’. CD Paice, dalam “Another Stemmer,” menyebutkan bahwa biasanya cukup bagi sistem IR untuk memetakan kata-kata terkait ke batang yang sama; namun, kata dasar tidak harus valid.

“…proses ini ditujukan untuk pemetaan untuk tujuan pengambilan, batang tidak perlu lemma atau akar yang benar secara linguistik.”

Kesalahan dalam Stemming:

Over-Stemming: Ini terjadi ketika dua atau lebih kata yang tidak terkait menghasilkan batang yang sama. Under-Stemming: Ini terjadi ketika dua atau lebih kata terkait menghasilkan batang yang berbeda.

Mari kita bahas tiga stemmer paling populer: Porter, Snowball, dan Lancaster.

Catatan: Penjelasan terperinci tentang cara kerja algoritme berada di luar cakupan artikel ini.

Suara Porter

Ini adalah salah satu stemmer yang paling umum digunakan, dikembangkan oleh MF Porter pada tahun 1980. Stemmer Porter terdiri dari lima fase yang berbeda. Fase-fase ini diterapkan secara berurutan. Dalam setiap fase, ada konvensi tertentu untuk memilih aturan. Seluruh algoritma porter kecil dan dengan demikian cepat dan sederhana. Kelemahan dari stemmer ini adalah hanya mendukung bahasa Inggris, dan stem yang diperoleh mungkin benar secara linguistik atau tidak.

https://medium.com/media/c97241c374356d463640969b36fc6e9a/href

Cuplikan kode yang ditunjukkan di atas akan menghasilkan: wa, found, mouse, run, run, ran

Perhatikan bagaimana batang ‘was’ adalah ‘wa’ menurut algoritma porter yang secara linguistik tidak valid.

Suara Bola Salju

MF Porter juga mengembangkan stemmer bola salju. Snowball adalah bahasa pemrosesan string yang terutama dikembangkan untuk membuat algoritma stemming. Itu dibuat oleh Porter sebagai peningkatan dari algoritma porter yang dibuat sebelumnya. Ini mendukung beberapa bahasa, termasuk Inggris, Rusia, Denmark, Prancis, Finlandia, Jerman, Italia, Hongaria, Portugis, Norwegia, Swedia, dan Spanyol. Stemmer bola salju yang menghadirkan stemmer bahasa Inggris disebut Porter2.

https://medium.com/media/24123e176ed9e57bf062869b777a7855/href

Cuplikan kode yang ditunjukkan di atas akan menghasilkan: was, found, mouse, run, run, ran

Menurut MF Porter, stemming stopwords seperti ‘being’ to ‘be’ tidak berguna karena tidak memiliki kesamaan makna, meskipun mungkin ada hubungan gramatikal antara kedua kata tersebut. Snowball menyediakan parameter lain yang disebut abaikan_stopwords, yang secara default disetel ke false. Jika disetel ke true, maka snowball tidak akan melakukan stemming stopwords.

https://medium.com/media/d4c9a175179c0869e305f19b8ae9d695/href

Cuplikan kode yang ditunjukkan di atas akan menghasilkan: being

Jika abaikan_stopwords disetel ke false, maka cuplikan kode yang sama akan menampilkan: ‘be’. Cobalah sendiri.

Suara Lancaster

Batang Lancaster disebut juga batang Paice atau Husk. Ini dikembangkan oleh CD Paice di Universitas Lancaster pada tahun 1990. Ini menggunakan pendekatan berulang, dan ini menjadikannya algoritma yang paling agresif di antara tiga stemmer yang dijelaskan dalam artikel ini. Karena pendekatan iteratifnya, ini dapat menyebabkan over-stemming, yang dapat mengakibatkan akar bahasa yang salah. Ini tidak seefisien porter atau stemmer bola salju. Juga, itu hanya mendukung bahasa Inggris.

https://medium.com/media/ce1a2234781fb79d216a7c8f810a3d98/href

Cuplikan kode yang ditunjukkan di atas akan menghasilkan: was, found, mic, run, run, ran

Karena stemmer Lancaster menggunakan pendekatan yang lebih agresif, kata ‘tikus’ direduksi menjadi ‘mikrofon’.

Apa itu Lemmatisasi? Dan apa bedanya dengan Stemming?

Seperti yang telah kita lihat sejauh ini, algoritma stemming mungkin atau mungkin tidak mengembalikan stem yang valid. Ini bukan masalah untuk sistem IR; namun, dapatkah batang yang tidak valid seperti itu digunakan dalam pemodelan bahasa, di mana bentuk yang benar secara linguistik sangat penting? Kami mungkin tidak bisa. Untuk mengatasi kelemahan stemming ini, kita menggunakan lemmatization yang mengembalikan kita ke akar linguistik yang benar. Lemmatization mengidentifikasi bentuk-bentuk infleksi dari sebuah kata dan mengembalikan akar linguistik yang benar. Dalam buku “An Introduction to Informational Retrieval,” mereka mendefinisikan lemmatisasi sebagai:

“Lemmatisasi biasanya mengacu pada melakukan sesuatu dengan benar dengan penggunaan kosakata dan analisis morfologi kata, biasanya bertujuan untuk menghilangkan akhiran infleksional saja dan mengembalikan bentuk dasar atau kamus dari sebuah kata…”

Bentuk infleksi dari sebuah kata memiliki ejaan atau akhiran yang berubah.

Akar kata dalam lemmatisasi disebut lemma. Jadi, untuk kata-kata seperti ‘lari’, ‘berlari’, ‘berlari’, atau ‘berlari’; ‘lari’ adalah lemmanya. Untuk kata-kata seperti ‘tikus’, lemmanya adalah ‘tikus’.

Salah satu lemmatizer yang paling banyak digunakan adalah WordNet yang disediakan oleh NLTK. Untuk mendapatkan lemma yang tepat, kita harus memberikan tag part of speech (pos) yang sesuai. Secara default, setiap kata diperlakukan sebagai kata benda (n). Kami akan meneruskan kata kerja (v) sebagai nilai ke parameter pos untuk semua kata dalam daftar.

https://medium.com/media/1eb0c2348b88bb1f4885a0934ca12fad/href

Cuplikan kode yang ditampilkan di atas akan menghasilkan: be, find, mouse, run, run, run

Di sini, kita amati bahwa ‘was’, ‘found’, ‘run’, ‘running’, dan ‘ran’ adalah verba, sehingga output yang kita dapatkan tepat. Namun, output untuk ‘tikus’ adalah ‘tikus’. Mengapa? Ini terjadi karena kata ‘mice’ adalah kata benda, jadi mengubah tag pos menjadi kata benda akan memberi kita output sebagai ‘mouse’. Cobalah sendiri.

Kesimpulan

Kami melihat bagaimana stemming, dan lemmatization berbeda, serta bagaimana stemmer berbeda bekerja. Ada lebih banyak jenis stemmer dan lemmatizer yang tersedia daripada yang disebutkan dalam artikel ini. Untuk meringkas seluruh artikel, mari kita jawab dua pertanyaan.

Pertama, haruskah kita memilih stemming atau lemmatization untuk langkah preprocessing? Itu tergantung pada aplikasi yang sedang dibuat. Stemming lebih cepat dibandingkan dengan lemmatization. Juga, stemming mungkin atau mungkin tidak mengembalikan batang atau akar yang valid, sedangkan lemmatisasi akan mengembalikan akar yang benar secara linguistik. Jadi, dalam aplikasi di mana kecepatan penting, seperti sistem pencarian dan pengambilan, stemming bisa lebih disukai; dan dalam aplikasi di mana akar yang valid penting, seperti dalam pemodelan bahasa, lemmatisasi bisa lebih disukai. Ingat, keputusan akhir tentang apa yang harus digunakan untuk langkah pra-pemrosesan akan selalu bergantung pada aplikasi yang dibuat dan pembuat aplikasi. Cobalah bereksperimen dengan keduanya dan lihat bagaimana hasilnya berbeda.

Kedua, apakah stemming hanya digunakan dalam sistem IR? Tidak. Stemming dapat digunakan dalam aplikasi yang membutuhkan transformasi bentuk morfologis kata ke akarnya. Artinya, stemming dapat dilakukan dalam peringkasan teks atau bahkan dalam kategorisasi teks.

Beri tahu saya di bagian komentar jika Anda pernah menggunakan atau mencoba bereksperimen dengan stemmer atau lemmatizer ini dan betapa bermanfaatnya bagi Anda!

Anda dapat terhubung dan menghubungi saya melalui LinkedIn.

Stemming: Porter Vs. Bola Salju Vs. Lancaster awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jeffrey Hayes