Fitur linguistik

Pemrosesan Bahasa Alami dengan spaCy

Azadeh Mobasher

Principal Data Scientist

Penandaan POS

  • Tag POS bergantung pada konteks, kata sekitar dan tag-nya
import spacy
nlp = spacy.load("en_core_web_sm")
text = "My cat will fish for a fish tomorrrow in a fishy way."
print([(token.text, token.pos_, spacy.explain(token.pos_)) 
        for token in nlp(text)])

Contoh penandaan POS

Pemrosesan Bahasa Alami dengan spaCy

Apa pentingnya POS?

 

  • Akurasi lebih baik untuk banyak tugas NLP

 

I will fish tomorrow.

I ate fish.

 

  • Kasus penggunaan sistem terjemahan

 

verb -> pescaré

noun -> pescado
Pemrosesan Bahasa Alami dengan spaCy

Apa pentingnya POS?

 

  • Word-sense disambiguation (WSD) adalah masalah menentukan makna kata dalam kalimat.
  • Menentukan makna kata penting untuk penerjemahan mesin, dan lainnya.

Contoh WSD

Pemrosesan Bahasa Alami dengan spaCy

Word-sense disambiguation

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

verb_text = "I will fish tomorrow."
noun_text = "I ate fish."


print([(token.text, token.pos_) for token in nlp(verb_text) if "fish" in token.text], "\n") print([(token.text, token.pos_) for token in nlp(noun_text) if "fish" in token.text])
[('fish', 'VERB', 'verb')] 
[('fish', 'NOUN', 'noun')]
Pemrosesan Bahasa Alami dengan spaCy

Dependency parsing

  • Mengeksplor sintaks kalimat
  • Kaitan antara dua token
  • Hasilnya berupa pohon

Contoh dependency parsing

Pemrosesan Bahasa Alami dengan spaCy

Dependency parsing dan spaCy

 

  • Dependency label menjelaskan jenis relasi sintaksis antara dua token

 

Dependency label Deskripsi
nsubj Subjek nominal
root Akar
det Determiner
dobj Objek langsung
aux Auxiliar
Pemrosesan Bahasa Alami dengan spaCy

Dependency parsing dan displaCy

  • displaCy dapat menggambar pohon dependensi
doc = nlp("We understand the differences.")

spacy.displacy.serve(doc, style="dep")

Contoh dependency parser dengan displaCy

Pemrosesan Bahasa Alami dengan spaCy

Dependency parsing dan spaCy

  • Atribut .dep_ untuk mengakses label dependensi suatu token

 

doc = nlp("We understand the differences.")
print([(token.text, token.dep_, spacy.explain(token.dep_)) for token in doc])
[('We', 'nsubj', 'nominal subject'), ('understand', 'ROOT', 'root'),
('the', 'det', 'determiner'), ('differences', 'dobj', 'direct object'),
('.', 'punct', 'punctuation')]
Pemrosesan Bahasa Alami dengan spaCy

Ayo berlatih!

Pemrosesan Bahasa Alami dengan spaCy

Preparing Video For Download...