Stemming & Lemmatization dengan Python: Yang Mana Yang Digunakan?

Diterbitkan: 2021-02-09

Natural Language Processing (NLP) adalah teknik pemrosesan komunikasi yang melibatkan ekstraksi fitur penting dari bahasa. Ini adalah kemajuan dalam kecerdasan buatan yang melibatkan pembangunan agen cerdas dengan pengalaman sebelumnya. Pengalaman sebelumnya di sini mengacu pada pelatihan yang dilakukan pada kumpulan data besar yang melibatkan data tekstual dari sumber termasuk media sosial, web scraping, formulir survei, dan banyak teknik pengumpulan data lainnya.

Langkah awal setelah pengumpulan data adalah pembersihan data ini dan konversi ke dalam bentuk yang dapat dibaca mesin, bentuk numerik yang dapat diinterpretasikan oleh mesin. Sementara proses konversi adalah hal lain, proses pembersihan adalah langkah pertama yang harus dilakukan. Dalam tugas pembersihan ini, infleksi merupakan konsep penting yang membutuhkan pemahaman yang jelas sebelum beralih ke stemming dan lemmatization.

Daftar isi

Infleksi

Kami tahu data tekstual terdiri dari kalimat dengan kata-kata dan karakter lain yang mungkin atau mungkin tidak memengaruhi prediksi kami. Kalimat-kalimat tersebut terdiri dari kata-kata dan kata-kata yang biasa digunakan seperti ada, ada, dan disebut stopword. Ini dapat dihapus dengan mudah dengan membentuk corpus untuk mereka, tetapi bagaimana dengan bentuk yang berbeda dari kata yang sama?

Anda tidak ingin mesin Anda menganggap 'belajar' dan 'belajar' sebagai kata yang berbeda karena maksud di balik kata-kata ini tetap sama dan keduanya menyampaikan arti yang sama. Menangani kasus jenis ini adalah praktik umum di NLP, dan ini dikenal sebagai infleksi. Ini adalah ide dasar dari stemming dan lemmatization dengan pendekatan yang berbeda. Mari temukan perbedaan di antara mereka dan lihat mana yang lebih baik untuk digunakan.

Stemming

Ini adalah salah satu teknik normalisasi teks yang berfokus pada pengurangan ambiguitas kata. Stemming berfokus pada pengupasan kata bulat ke kata induk. Ia melakukannya dengan menghapus awalan atau akhiran, tergantung pada kata yang dipertimbangkan. Teknik ini mengurangi kata-kata sesuai dengan seperangkat aturan yang ditentukan.

Kata-kata yang dihasilkan mungkin atau mungkin tidak memiliki akar kata yang bermakna. Tujuan utamanya adalah untuk membentuk kelompok kata-kata yang mirip bersama-sama sehingga pra-pemrosesan lebih lanjut dapat dioptimalkan. Misalnya, kata-kata seperti main, main, dan main semuanya termasuk dalam kata dasar “bermain”. Ini juga membantu dalam mengurangi waktu pencarian di mesin pencari, karena sekarang lebih banyak fokus diberikan pada elemen kunci.

Ada dua kasus yang perlu dibahas mengenai stemming, yaitu over steaming dan under stemming . Saat menghapus awalan dan akhiran dari kata memecahkan beberapa kasus, beberapa kata dilucuti lebih dari persyaratan.

Hal ini dapat menyebabkan lebih banyak kata-kata sampah tanpa arti. Padahal ini merupakan kekurangan dari stemming secara keseluruhan, dan jika terjadi lebih drastis disebut dengan over stemming. Under stemming adalah kebalikannya dimana proses stemming menghasilkan sangat sedikit atau perbedaan kata.

Lemmatisasi

Pendekatan lain untuk menormalkan teks dan mengubahnya menjadi makna dasar adalah Lemmatization. Ini memiliki motif yang sama untuk mengelompokkan kata-kata maksud yang sama menjadi satu kelompok, tetapi perbedaannya adalah bahwa kata-kata yang dihasilkan di sini bermakna.

Mereka tidak dilucuti dengan aturan yang telah ditentukan tetapi dibentuk menggunakan kamus atau kami menyebutnya Lemma. Di sini proses konversi membutuhkan lebih banyak waktu karena pertama, kata-kata dicocokkan dengan bagian-bagiannya, yang itu sendiri adalah proses yang memakan waktu.

Ini memastikan bahwa kata dasar memiliki arti literal yang membantu dalam memperoleh hasil yang baik dalam analisis. Ini berguna jika kita tidak ingin menghabiskan banyak waktu untuk pembersihan data, dan data yang lebih bersih diperlukan untuk analisis lebih lanjut. Salah satu kelemahan dari teknik ini adalah karena teknik ini lebih berfokus pada tata bahasa dari kata-kata, bahasa yang berbeda akan memerlukan corpora terpisah yang mengarah pada penanganan data yang lebih banyak dan lebih banyak.

Lihat: Ide Proyek Pembelajaran Mendalam untuk Pemula

Yang Mana yang Digunakan?

Sekarang sampai pada titik memilih salah satu di antara mereka berdua. Sangat subjektif untuk memilih siapa pun karena kasus penggunaan yang Anda targetkan memainkan peran utama di sini.

Jika Anda ingin menganalisis sepotong teks tetapi waktu adalah kendala, maka Anda dapat memilih stemming karena melakukan tindakan ini dalam waktu yang lebih singkat tetapi dengan tingkat keberhasilan yang rendah, dan stem disediakan melalui cara algoritmik yang mungkin tidak memiliki berarti.

Mengadopsi Lemmatization memberikan keuntungan tambahan untuk mendapatkan kata-kata dasar yang bermakna dan akurat dipukuli dari berbagai bentuk. Jika Anda mampu membeli sumber daya komputasi yang baik dengan lebih banyak waktu, maka ini bisa menjadi pilihan yang lebih baik. Ini harus diadopsi di mana kita ingin analisis yang tepat. Ini juga dapat terjadi pada beberapa teknik pencarian di mesin pencari di mana kata dasar cukup untuk mengambil hasil yang diinginkan pengguna.

Implementasi Python

Paket NLTK (Natural Language Tool Kit) adalah implementasi Python dari tugas-tugas di sekitar NLP. Perpustakaan ini memiliki semua alat yang diperlukan seperti Stemmers. Lemmatizers, hentikan penghapusan kata, buat pohon pengurai khusus, dan banyak lagi. Ini juga berisi data korpus dari sumber terkemuka yang disertakan dalam paket itu sendiri.

Teknik stemming memiliki banyak implementasi, tetapi yang paling populer dan tertua adalah algoritma Porter Stemmer. Stemmer bola salju juga digunakan di beberapa proyek. Untuk memahami perbedaan antara stemming dan lemmatization lebih jelas, lihat kode di bawah ini dan output yang sama:

impor nltk

dari nltk.stem impor PorterStemmer

dari nltk.stem impor WordNetLemmatizer

kata_stemmer = PorterStemmer()

lemmatizer = WordNetLemmatizer()

print(lemmatizer.lemmatize('lalat'))

print(word_stemmer.stem('lalat'))

Keluaran:

terbang

terbang

Keluaran pertama dari lemmatizer dan keluaran kedua dari stemmer. Anda dapat melihat perbedaan bahwa lemmatizer memberikan kata dasar sebagai output sedangkan stemmer hanya memangkas kata dari akhir.

Pelajari kursus ilmu data dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Baca Juga: Ide Proyek Pembelajaran Mesin

Kesimpulan

NLP berkembang setiap hari dan metode baru berkembang seiring waktu. Sebagian besar dari mereka fokus pada cara mengekstrak informasi yang tepat secara efisien dari data teks dengan kehilangan minimum dan menghilangkan semua gangguan. Kedua teknik ini populer digunakan. Yang penting adalah bahwa analisis dilakukan pada data yang bersih.

Apa dua jenis algoritma AI yang digunakan untuk mengelompokkan dokumen?

Pengelompokan hierarkis dan pengelompokan non-hierarkis adalah dua jenis algoritme AI yang digunakan untuk mengelompokkan teks. Algoritme pengelompokan hierarkis membagi dan menggabungkan dokumen menurut seperangkat aturan. Pasangan hierarki dari cluster item data kemudian dihubungkan bersama. Meskipun teknik ini mudah dibaca dan dipahami, teknik ini mungkin tidak seefektif pengelompokan non-hierarki. Ketika ada banyak kekurangan dalam data, pengelompokan mungkin sulit. Pengelompokan non-hierarki memerlukan penggabungan dan pemecahan cluster yang ada untuk membuat yang baru. Ini adalah pendekatan pengelompokan yang relatif lebih cepat, lebih dapat diandalkan, dan lebih stabil.

Apakah lemmatisasi lebih disukai untuk analisis sentimen?

Lemmatization dan stemming keduanya prosedur yang sangat efektif. Namun, ketika diubah ke dalam bentuk akar, lemmatisasi selalu menghasilkan istilah arti kamus. Ketika arti dari istilah tersebut tidak penting untuk penelitian, maka stemming direkomendasikan. Ketika arti sebuah kata sangat penting untuk analisis, lemmatisasi disarankan. Akibatnya, jika Anda harus memilih satu pendekatan untuk analisis sentimen, lemmatisasi akan menjadi pilihan.

Bagaimana stemming dan lemmatization digunakan untuk pengelompokan dokumen?

Pengelompokan dokumen, juga dikenal sebagai pengelompokan teks, adalah metode menganalisis teks tekstual dengan mengelompokkannya bersama-sama. Aplikasinya berkisar dari pengaturan dokumen otomatis hingga ekstraksi topik dan bahkan pengambilan informasi yang cepat. Stemming dan lemmatization digunakan untuk mengurangi jumlah token yang diperlukan untuk mengkomunikasikan informasi yang sama, sehingga meningkatkan teknik secara keseluruhan. Mengikuti langkah prapemrosesan ini, fitur dihitung dengan mengukur frekuensi setiap token, diikuti dengan pendekatan pengelompokan yang paling efisien.