Dilsel özellikler

spaCy ile Natural Language Processing

Azadeh Mobasher

Principal Data Scientist

POS etiketleme

  • POS etiketleri, bağlamdan; çevredeki kelimeler ve etiketlerinden etkilenir
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)])

POS etiketleme örneği

spaCy ile Natural Language Processing

POS neden önemlidir?

 

  • Birçok NLP görevi için daha iyi doğruluk

 

I will fish tomorrow.

I ate fish.

 

  • Çeviri sistemi kullanım örneği

 

verb -> pescaré

noun -> pescado
spaCy ile Natural Language Processing

POS neden önemlidir?

 

  • Anlam belirsizliği giderme (WSD), bir kelimenin cümlede hangi anlamda kullanıldığını belirleme problemidir.
  • Kelimenin anlamını belirlemek, makine çevirisi vb. için kritik olabilir.

WSD örneği

spaCy ile Natural Language Processing

Anlam belirsizliği giderme (WSD)

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')]
spaCy ile Natural Language Processing

Bağımlılık ayrıştırma

  • Cümle sözdizimini inceler
  • İki belirteç arasındaki bağları kurar
  • Bir ağaç oluşturur

Bağımlılık ayrıştırma örneği

spaCy ile Natural Language Processing

Bağımlılık ayrıştırma ve spaCy

 

  • Bağımlılık etiketi, iki belirteç arasındaki sözdizimsel ilişki türünü açıklar

 

Bağımlılık etiketi Açıklama
nsubj Ad özne
root Kök
det Belirleyici
dobj Nesne
aux Yardımcı fiil
spaCy ile Natural Language Processing

Bağımlılık ayrıştırma ve displaCy

  • displaCy bağımlılık ağaçlarını çizebilir
doc = nlp("We understand the differences.")

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

displaCy ile bağımlılık ayrıştırma örneği

spaCy ile Natural Language Processing

Bağımlılık ayrıştırma ve spaCy

  • Bir belirtecin bağımlılık etiketine .dep_ ile erişilir

 

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')]
spaCy ile Natural Language Processing

Hadi pratik yapalım!

spaCy ile Natural Language Processing

Preparing Video For Download...