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.