Berasal
Stemming adalah proses mereduksi kata hingga tercapai kata dasar/kata dasar. Itu memotong huruf-huruf dari akhir. Saat mencari kata kunci tertentu, ia mengembalikan variasi kata tertentu dari dokumen.
Misalnya: Mencari kata 'boat', return boating, boater, boating, dll
Di sini kata dasar adalah perahu dan sufiks dihilangkan sampai kata dasar tercapai.
Ada 2 jenis stemmer:
- Porter Stemmer
- Batang Bola Salju
Porter Stemmer:
Salah satu alat stemming yang paling umum dan efektif. Ini mengalami lima fase reduksi kata.
from nltk.stem.porter import PorterStemmer p_stemmer = PorterStemmer() words = ['run', 'runner', 'ran', 'runs', 'easily', 'fairly', 'fairness'] for word in words: print(word + '---->' + p_stemmer.stem(word)) print("\n") OUTPUT: run---->run runner---->runner ran---->ran runs---->run easily---->easili fairly---->fairli fairness---->fair
Batang Bola Salju:
Ini merupakan peningkatan dari stemmer Porter dalam hal kecepatan dan akurasi.
from nltk.stem.snowball import SnowballStemmer p_stemmer = PorterStemmer() words = ['run', 'runner', 'ran', 'runs', 'easily', 'fairly', 'fairness'] for word in words: print(word + '---->' + p_stemmer.stem(word)) print("\n") OUTPUT: run---->run runner---->runner ran---->ran runs---->run easily---->easili fairly---->fairli fairness---->fair
Lemmatisasi
Analisis lemmatisasi struktur kata. Ini lebih berguna dan informatif daripada stemming. Ini menganalisis kata-kata di sekitarnya untuk menentukan pos (bagian dari pidato) dari kata tersebut.
import spacy nlp = spacy.load('en_core_web_sm') doc = nlp(u'I am a runner running in a race because i love to run since i ran today') for token in doc: print(f'{token.text:{12}} {token.pos:{6}} {token.lemma:<{22}} {token.lemma_}') show_lemmas(doc) OUTPUT: I 95 4690420944186131903 I am 87 10382539506755952630 be a 90 11901859001352538922 a runner 92 12640964157389618806 runner running 100 12767647472892411841 run in 85 3002984154512732771 in a 90 11901859001352538922 a race 92 8048469955494714898 race because 98 16950148841647037698 because i 95 4690420944186131903 I love 100 3702023516439754181 love to 94 3791531372978436496 to run 100 12767647472892411841 run since 98 10066841407251338481 since i 95 4690420944186131903 I ran 100 12767647472892411841 run today 92 11042482332948150395 today
Hentikan Kata-kata
Kata-kata berhenti adalah kata-kata yang sering muncul dan tidak memerlukan penandaan. Jadi ini disaring dari teks yang akan diproses. Ini adalah kata benda dan kata kerja yang sering digunakan seperti is, the, a, dll.
Kata-kata berhenti default:
Kita juga bisa mendapatkan panjang kata-kata berhenti default menggunakan fungsi len().
import spacy nlp = spacy.load('en_core_web_sm') # Print the set of spaCy's default stop words: print(nlp.Defaults.stop_words) print(f"\n Length of default stop words is: {len(nlp.Defaults.stop_words)}") OUTPUT: {"'d", "'ll", "'m", "'re", "'s", "'ve", 'a',.. '’ll', '’m', '’re', '’s', '’ve'} Length of default stop words is: 326
Melihat apakah suatu kata merupakan kata henti atau bukan:
Untuk memeriksa apakah suatu kata tertentu merupakan kata henti atau bukan, kita dapat memeriksanya menggunakan is_stop.
#Checks in entire set nlp.vocab['is'].is_stop nlp.vocab['mystery'].is_stop OUTPUT: True False
Tambahkan kata berhenti:
Kita dapat menambahkan kata berhenti baru di kumpulan kata berhenti default.
nlp.Defaults.stop_words.add('btw') nlp.vocab['btw'].is_stop OUTPUT: True
Menghapus kata berhenti:
Kami dapat menghapus kata dari default dan memeriksa untuk mengonfirmasi apakah kata tersebut telah dihapus.
nlp.Defaults.stop_words.remove('beyond') nlp.vocab['beyond'].is_stop OUTPUT: False
Temukan kode sumber saya untuk artikel ini
Membendung
Lematisasi
Hentikan Kata-kata
«NLP-NaturalLanguageProcessing/stop_words.ipynb di main ·…
Berkontribusi pada pengembangan Shreya-khandelwal/NLP-NaturalLanguageProcessing dengan membuat akun di GitHub.github.com ""X"
Tentang saya
Saya Shreya Khandelwal, Ilmuwan Data. Jangan ragu untuk terhubung dengan saya di LinkedIn!
Ikuti saya di Medium untuk pembaruan rutin tentang topik serupa.