语言特征

使用 spaCy 的自然语言处理

Azadeh Mobasher

Principal Data Scientist

词性标注(POS)

  • 词性取决于上下文、相邻词及其标签
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)])

词性标注示例

使用 spaCy 的自然语言处理

POS 的重要性

 

  • 提升多种 NLP 任务的准确率

 

I will fish tomorrow.

I ate fish.

 

  • 机器翻译用例

 

verb -> pescaré

noun -> pescado
使用 spaCy 的自然语言处理

POS 的重要性

 

  • 词义消歧(WSD)是判定一个词在句中所用含义的问题。
  • 判定词义对机器翻译等任务至关重要。

WSD 示例

使用 spaCy 的自然语言处理

词义消歧(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 的自然语言处理

依存句法分析

  • 探索句子语法
  • 两个标记之间的关系
  • 生成一棵树

依存句法示例

使用 spaCy 的自然语言处理

依存句法与 spaCy

 

  • 依存标签描述两个标记之间的句法关系类型

 

依存标签 说明
nsubj 名词主语
root
det 限定词
dobj 直接宾语
aux 助动词
使用 spaCy 的自然语言处理

依存句法与 displaCy

  • displaCy 可绘制依存树
doc = nlp("We understand the differences.")

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

使用 displaCy 的依存解析示例

使用 spaCy 的自然语言处理

依存句法与 spaCy

  • 使用 .dep_ 属性获取标记的依存标签

 

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 的自然语言处理

Passons à la pratique !

使用 spaCy 的自然语言处理

Preparing Video For Download...