spaCy Lemmatization

spaCy lemmatization menjadi pilihan dibandingkan dengan stemming. Kita tidak akan membahas stemming karena tidak digunakan dalam spaCy. Stemming umum digunakan dalam library NLTK.

Berbeda dengan stemming, lemmatization bukan sekedar pengurangan kata, namun mempertimbangkan kosakata bahasa untuk menerapkan analisis morfologis pada kata-kata.

Lemma ‘was’ adalah ‘be’ dan lemma dari ‘mice’ adalah ‘mouse’. Lebih lanjut, lemma ‘meeting’ mungkin ‘meet’ atau ‘meeting’ tergantung pada penggunaannya dalam kalimat.

Contoh Lemmatization

import spacy
nlp = spacy.load('en_core_web_sm')

doc = nlp(u"I saw eighteen mice today!")

for token in doc:
    print(f'{token.text:{12}} {token.pos_:{6}} {token.lemma_}')
I            PRON   -PRON-
saw          VERB   see
eighteen     NUM    eighteen
mice         NOUN   mouse
today        NOUN   today
!            PUNCT  !

spaCy melakukan proses lemmatization dengan baik. Dapat kita lihat dari output diatas,

  • saw menjadi see
  • eighteen tetap eighteen, spaCy dapat ‘melihat’ sebagai angka
  • mice menjadi mouse
doc1 = nlp(u"I am meeting him tomorrow at the meeting.")

for token in doc1:
    print(f'{token.text:{12}} {token.pos_:{6}} {token.lemma_}')
I            PRON   -PRON-
am           VERB   be
meeting      VERB   meet
him          PRON   -PRON-
tomorrow     NOUN   tomorrow
at           ADP    at
the          DET    the
meeting      NOUN   meeting
.            PUNCT  .

Pada contoh diatas, spaCy mampu membedakan konteks kalimat.

  • meeting menjadi meet.
  • meeting tetap meeting (karena konteks pada kalimat adalah pertemuan, bukan betemu). Hal ini ditentukan berdasarkan Part of speech, dimana meeting disini adalah NOUN.
Sharing is caring: