Caracteristici lingvistice

Procesarea limbajului natural cu spaCy

Azadeh Mobasher

Principal Data Scientist

Etichetarea POS

  • Etichetele POS depind de context, de cuvintele din jur și de etichetele acestora
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)])

Exemplu de etichetare POS

Procesarea limbajului natural cu spaCy

De ce este important POS?

 

  • Acuratețe mai bună în multe sarcini NLP

 

I will fish tomorrow.

I ate fish.

 

  • Caz de utilizare: sistem de traducere

 

verb -> pescaré

noun -> pescado
Procesarea limbajului natural cu spaCy

De ce este important POS?

 

  • Dezambiguizarea sensului cuvintelor (WSD) constă în determinarea sensului unui cuvânt într-o propoziție.
  • Identificarea sensului cuvântului este esențială în traducerea automată etc.

Exemplu WSD

Procesarea limbajului natural cu spaCy

Dezambiguizarea sensului cuvintelor

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')]
Procesarea limbajului natural cu spaCy

Analiza dependențelor

  • Explorează sintaxa unei propoziții
  • Legăturile dintre doi tokeni
  • Rezultatul este un arbore

Exemplu de analiză a dependențelor

Procesarea limbajului natural cu spaCy

Analiza dependențelor și spaCy

 

  • Eticheta de dependență descrie tipul relației sintactice dintre doi tokeni

 

Etichetă de dependență Descriere
nsubj Subiect nominal
root Rădăcină
det Determinant
dobj Complement direct
aux Auxiliar
Procesarea limbajului natural cu spaCy

Analiza dependențelor și displaCy

  • displaCy poate vizualiza arbori de dependențe
doc = nlp("We understand the differences.")

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

Exemplu de analiză a dependențelor cu displaCy

Procesarea limbajului natural cu spaCy

Analiza dependențelor și spaCy

  • Atributul .dep_ accesează eticheta de dependență a unui 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')]
Procesarea limbajului natural cu spaCy

Să exersăm!

Procesarea limbajului natural cu spaCy

Preparing Video For Download...