Jazykové rysy

Zpracování přirozeného jazyka s knihovnou spaCy

Azadeh Mobasher

Principal Data Scientist

Označování POS

  • Značky POS závisí na kontextu, okolních slovech a jejich značkách
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)])

Příklad označování POS

Zpracování přirozeného jazyka s knihovnou spaCy

Jaký je význam POS?

 

  • Vyšší přesnost pro mnoho úloh NLP

 

I will fish tomorrow.

I ate fish.

 

  • Příklad použití v překladovém systému

 

verb -> pescaré

noun -> pescado
Zpracování přirozeného jazyka s knihovnou spaCy

Jaký je význam POS?

 

  • Disambiguace slovního smyslu (WSD) je problém určení, v jakém smyslu je slovo ve větě použito.
  • Určení smyslu slova může být klíčové pro strojový překlad atd.

Příklad WSD

Zpracování přirozeného jazyka s knihovnou spaCy

Disambiguace slovního smyslu

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')]
Zpracování přirozeného jazyka s knihovnou spaCy

Analýza závislostí

  • Zkoumá syntaxi věty
  • Propojuje dva tokeny
  • Výsledkem je strom

Příklad syntaktické analýzy závislostí

Zpracování přirozeného jazyka s knihovnou spaCy

Analýza závislostí a spaCy

 

  • Návěští závislosti popisuje typ syntaktického vztahu mezi dvěma tokeny

 

Návěští závislosti Popis
nsubj Jmenný podmět
root Kořen
det Determinátor
dobj Přímý předmět
aux Pomocné sloveso
Zpracování přirozeného jazyka s knihovnou spaCy

Analýza závislostí a displaCy

  • displaCy dokáže kreslit stromy závislostí
doc = nlp("We understand the differences.")

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

Příklad analyzátoru závislostí s displaCy

Zpracování přirozeného jazyka s knihovnou spaCy

Analýza závislostí a spaCy

  • Atribut .dep_ pro přístup k návěští závislosti tokenu

 

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')]
Zpracování přirozeného jazyka s knihovnou spaCy

Pojďme si procvičit!

Zpracování přirozeného jazyka s knihovnou spaCy

Preparing Video For Download...