語言特徵

使用 spaCy 的自然語言處理

Azadeh Mobasher

Principal Data Scientist

詞性標記(POS)

  • 詞性標記(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 的自然語言處理

為何詞性重要?

 

  • 提升多數 NLP 任務的準確度

 

I will fish tomorrow.

I ate fish.

 

  • 翻譯系統情境

 

verb -> pescaré

noun -> pescado
使用 spaCy 的自然語言處理

為何詞性重要?

 

  • 詞義消歧(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 的自然語言處理

相依關係剖析(Dependency parsing)

  • 探索句子句法
  • 連結兩個語彙單位
  • 形成樹狀結構

相依關係剖析範例

使用 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 的自然語言處理

一起來練習吧!

使用 spaCy 的自然語言處理

Preparing Video For Download...