Kapan saya menggunakan masing-masing?
Juga ... apakah lemmatisasi NLTK tergantung pada Bagian Bicara? Bukankah lebih akurat jika itu?
Kapan saya menggunakan masing-masing?
Juga ... apakah lemmatisasi NLTK tergantung pada Bagian Bicara? Bukankah lebih akurat jika itu?
Jawaban:
Singkat dan padat: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
Tujuan dari stemming dan lemmatization adalah untuk mengurangi bentuk infleksi dan terkadang kata-kata yang berhubungan secara derivatif dengan bentuk dasar yang umum.
Namun, kedua kata itu berbeda dalam rasanya. Stemming biasanya mengacu pada proses heuristik kasar yang memotong ujung kata-kata dengan harapan mencapai tujuan ini dengan benar sebagian besar waktu, dan sering termasuk menghilangkan imbuhan derivasional. Lemmatization biasanya mengacu pada melakukan sesuatu dengan benar dengan menggunakan kosa kata dan analisis morfologis kata-kata, biasanya bertujuan untuk menghilangkan ujung inflektif saja dan mengembalikan basis atau bentuk kamus kata, yang dikenal sebagai lemma.
Dari dokumen NLTK:
Lemmatization dan stemming adalah kasus khusus normalisasi. Mereka mengidentifikasi perwakilan kanonik untuk satu set bentuk kata yang terkait.
Lemmatisasi berkaitan erat dengan stemming . Perbedaannya adalah bahwa stemmer beroperasi pada satu kata tanpa pengetahuan tentang konteksnya, dan karena itu tidak dapat membedakan antara kata-kata yang memiliki arti yang berbeda tergantung pada bagian dari pidato. Namun, stemmer biasanya lebih mudah diimplementasikan dan dijalankan lebih cepat, dan akurasi yang berkurang mungkin tidak masalah untuk beberapa aplikasi.
Misalnya:
Kata "lebih baik" memiliki "baik" sebagai lemma-nya. Tautan ini tidak terjawab oleh stemming, karena memerlukan pencarian kamus.
Kata "berjalan" adalah bentuk dasar untuk kata "berjalan", dan karenanya ini cocok dalam stemming dan lemmatisasi.
Kata "meeting" dapat berupa bentuk dasar dari kata benda atau bentuk kata kerja ("to meet") tergantung pada konteksnya, misalnya, "dalam pertemuan terakhir kami" atau "Kami akan bertemu lagi besok". Tidak seperti stemming, lemmatisasi pada prinsipnya dapat memilih lemma yang tepat tergantung pada konteksnya.
Ada dua aspek untuk menunjukkan perbedaan mereka:
Sebuah stemmer akan mengembalikan batang kata, yang tidak harus identik dengan akar morfologis kata tersebut. Biasanya cukup bahwa kata-kata terkait memetakan ke batang yang sama, bahkan jika batang itu sendiri tidak menjadi root yang valid, sedangkan dalam lemmatisasi , itu akan mengembalikan bentuk kamus dari kata, yang harus menjadi kata yang valid.
Dalam lemmatisasi , bagian ujaran kata harus ditentukan terlebih dahulu dan aturan normalisasi akan berbeda untuk bagian ujaran yang berbeda, sedangkan stemmer beroperasi pada satu kata tanpa pengetahuan konteks, dan oleh karena itu tidak dapat membedakan antara kata yang memiliki perbedaan. artinya tergantung pada bagian dari pidato.
Referensi http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization
Tujuan dari stemming dan lemmatization adalah untuk mengurangi variasi morfologis. Ini berbeda dengan prosedur "istilah konflasi" yang lebih umum, yang juga dapat membahas variasi leksico-semantik, sintaksis, atau ortografis.
Perbedaan nyata antara stemming dan lemmatization ada tiga:
Stemming mereduksi bentuk-kata menjadi batang (semu), sedangkan lemasiisasi mereduksi bentuk-kata menjadi lemma yang secara linguistik valid. Perbedaan ini jelas dalam bahasa dengan morfologi yang lebih kompleks, tetapi mungkin tidak relevan untuk banyak aplikasi IR;
Lemmatization hanya berurusan dengan varians infleksional, sedangkan stemming mungkin juga berurusan dengan varians derivasional;
Dalam hal implementasi, lemasiasi biasanya lebih canggih (terutama untuk bahasa yang secara morfologis kompleks) dan biasanya memerlukan semacam lexica. Di lain pihak, pemuasan yang memuaskan dapat dicapai dengan pendekatan berbasis aturan yang agak sederhana.
Lemmatization juga dapat didukung oleh tagger bagian-of-speech untuk menyangkal homonim.
Seperti yang MYYN tunjukkan, membendung adalah proses menghilangkan afiks infleksiional dan terkadang derivasional ke bentuk dasar yang mungkin terkait dengan semua kata aslinya. Lemmatization berkaitan dengan memperoleh satu kata yang memungkinkan Anda untuk mengelompokkan sekelompok formulir infleksi. Ini lebih sulit daripada membendung karena memerlukan konteks untuk memperhitungkan (dan dengan demikian makna kata), sementara membendung mengabaikan konteks.
Adapun ketika Anda akan menggunakan satu atau yang lain, itu masalah seberapa banyak aplikasi Anda tergantung pada mendapatkan arti kata dalam konteks yang benar. Jika Anda melakukan terjemahan mesin, Anda mungkin ingin lemmatisasi agar tidak salah menerjemahkan kata. Jika Anda melakukan pencarian informasi lebih dari satu miliar dokumen dengan 99% dari pertanyaan Anda mulai dari 1-3 kata, Anda bisa puas dengan stemming.
Sedangkan untuk NLTK, WordNetLemmatizer tidak menggunakan bagian dari pidato, meskipun Anda harus menyediakannya (jika tidak default ke kata benda). Melewati "merpati" dan "v" menghasilkan "menyelam" sementara "merpati" dan "n" menghasilkan "merpati".
Penjelasan berdasarkan contoh tentang perbedaan antara lemmatization dan stemming:
Lemmatization menangani pencocokan "mobil" ke "mobil" bersama dengan pencocokan "mobil" ke "mobil".
Stemming menangani pencocokan "mobil" ke "mobil" .
Lemmatization menyiratkan lingkup pencocokan kata fuzzy yang lebih luas yang masih ditangani oleh subsistem yang sama. Ini menyiratkan teknik tertentu untuk pemrosesan tingkat rendah di dalam mesin, dan mungkin juga mencerminkan preferensi teknik untuk terminologi.
[...] Mengambil CEPAT sebagai contoh, mesin lemmatization mereka menangani tidak hanya variasi kata dasar seperti tunggal vs jamak, tetapi juga operator tesaurus seperti memiliki "panas" cocok dengan "hangat".
Ini bukan untuk mengatakan bahwa mesin lain tidak menangani sinonim, tentu saja mereka lakukan, tetapi implementasi tingkat rendah mungkin dalam subsistem yang berbeda dari yang menangani stemming dasar.
ianacl
tetapi saya pikir Stemming adalah peretasan kasar yang digunakan orang untuk mendapatkan semua bentuk kata yang berbeda hingga ke bentuk dasar yang tidak perlu menjadi kata yang sah sendiri.
Sesuatu seperti Porter Stemmer dapat menggunakan regex sederhana untuk menghilangkan akhiran kata umum
Lemmatization membawa kata ke bentuk dasar yang sebenarnya, dalam kasus kata kerja tidak beraturan, mungkin tidak terlihat seperti kata input
Sesuatu seperti Morpha yang menggunakan FST untuk membawa kata benda dan kata kerja ke bentuk dasar mereka
Stemming hanya menghilangkan atau menghilangkan beberapa karakter terakhir dari sebuah kata, sering kali mengarah pada makna dan ejaan yang salah. Lemmatization mempertimbangkan konteks dan mengubah kata menjadi bentuk dasarnya yang bermakna, yang disebut Lemma. Terkadang, kata yang sama dapat memiliki beberapa Lemma berbeda. Kita harus mengidentifikasi tag Part of Speech (POS) untuk kata dalam konteks spesifik itu. Berikut adalah contoh untuk menggambarkan semua perbedaan dan kasus penggunaan:
Stemming adalah proses menghilangkan beberapa karakter terakhir dari kata yang diberikan, untuk mendapatkan bentuk yang lebih pendek, bahkan jika bentuk itu tidak memiliki arti.
Contoh,
"beautiful" -> "beauti"
"corpora" -> "corpora"
Stemming dapat dilakukan dengan sangat cepat.
Lemmatization di sisi lain, adalah proses mengubah kata yang diberikan ke bentuk dasar itu sesuai dengan arti kamus kata.
Contoh,
"beautiful" -> "beauty"
"corpora" -> "corpus"
Lemmatization membutuhkan lebih banyak waktu daripada membendung.