如何在 spaCy 中获取 POS、Tag 和 Dep 的完整列表?

Goo*_*bot 1 nlp spacy

spaCy中使用的POS、TAG、DEP值是NLP常用的值,但我相信根据语料库的不同会有一些差异。

例如,Universal Dependencies Contributors列出了 37 个语法依赖项。spaCy 是否使用了所有这 37 个依赖项?仅此而已?

是否有命令可以输出 spaCy 可能提供的所有 POS、TAG 和 DEP 值?

kri*_*bek 9

这是一个老问题,但也许有人觉得我的回答有帮助。我不知道是否可以输出所有 POS,但可以在这里轻松找到它们:Part-of-Speech tagging

获取 DEP 列表:

nlp = spacy.load("en_core_web_sm")
for label in nlp.get_pipe("parser").labels:
    print(label, " -- ", spacy.explain(label))
Run Code Online (Sandbox Code Playgroud)

获取TAG列表:

nlp = spacy.load("en_core_web_sm")
for label in nlp.get_pipe("tagger").labels:
    print(label, " -- ", spacy.explain(label))
Run Code Online (Sandbox Code Playgroud)

spaCy提供的管道在这里:Pipelines


aab*_*aab 6

特定的管道组件可以显示其标签:

nlp = spacy.load('en')
nlp.get_pipe("tagger").labels
# ('$', "''", ',', '-LRB-', '-RRB-', '.', ':', 'ADD', 'AFX', 'CC', 'CD', 'DT', 'EX', 'FW', 'HYPH', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NFP', 'NN', 'NNP', 'NNPS', 'NNS', 'PDT', 'POS', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'SYM', 'TO', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP', 'WP$', 'WRB', 'XX', '_SP', '``')
Run Code Online (Sandbox Code Playgroud)

spacy.explain(label) 将为大多数标签提供一个简短的定义,例如:

spacy.explain("NN")
# 'noun, singular or mass'
spacy.explain("PERSON")
# 'People, including fictional'
Run Code Online (Sandbox Code Playgroud)

详细文档在这里:https : //spacy.io/api/annotation