现在,官方文档在https://spacy.io/api/annotation上提供了所有这些注释的更多详细信息(令牌的其他属性列表可在https://spacy.io/api/token上找到)。
如文档所示,它们的词性(POS)和依赖项标签具有针对不同语言的通用和特定变体,而explain()
函数是非常有用的捷径,无需文档即可更好地描述标签的含义,例如
spacy.explain("VBD")
给出“动词,过去式”。
0
现在,官方文档在https://spacy.io/api/annotation上提供了所有这些注释的更多详细信息(令牌的其他属性列表可在https://spacy.io/api/token上找到)。
如文档所示,它们的词性(POS)和依赖项标签具有针对不同语言的通用和特定变体,而explain()
函数是非常有用的捷径,无需文档即可更好地描述标签的含义,例如
spacy.explain("VBD")
给出“动词,过去式”。
0
0
只需在以下位置展开列表:
自从我第一次提出这个问题以来,文档有了很大的改进,而spaCy现在对此进行了更好的记录。
pos
和tag
属性在https://spacy.io/api/annotation#pos-tagging中制成表格,并描述了这些值列表的来源。在进行此编辑(2020年1月)时,文档中提到pos
属性:
spaCy按照“ 通用依赖项”方案将所有特定于语言的词性标签映射到一小组固定的单词类型标签。通用标签不编码任何形态特征,仅覆盖单词类型。它们可以作为
Token.pos
和Token.pos_
属性使用。
至于tag
属性,文档说:
英文词性标记器使用Penn Treebank标记集的OntoNotes 5版本。我们还将标签映射到更简单的Universal Dependencies v2 POS标签集。
和
德语词性标记器使用TIGER Treebank注释方案。我们还将标签映射到更简单的Universal Dependencies v2 POS标签集。
因此,您可以选择使用跨语言一致的粗粒度标记集( .pos
),还是使用特定于特定树库和特定语言的细粒度标记集( .tag
)。
.pos_
标记列表该文档列出了用于pos
和pos_
属性的以下粗粒度标签:
ADJ
:形容词,例如大,旧,绿色,难以理解的,第一ADP
:在例如,期间, ADV
:副词,例如非常,明天,下,哪里,那里AUX
:辅助,例如,是(完成),将(执行),应该(执行) CONJ
:合取,例如and和or,但是CCONJ
:协调连词,例如and和or,但是DET
:确定者,例如a,an,the INTJ
:感叹词,例如psst,ouch,bravo,hello NOUN
:名词,例如女孩,猫,树,空气,美女NUM
:数字,例如1、2017、1、77,IV,MMXIV PART
:粒子,例如,不是PRON
:代词,例如我,你,他,她,我,自己,某人PROPN
:专有名词,例如Mary,John,London,NATO,HBO PUNCT
:标点符号,例如。,(,) PUNCT
SCONJ
:从属连词,例如,如果SYM
:符号,例如$,%,§,©,+,-,×,÷,=,:) 、? VERB
:动词,例如,奔跑,奔跑,奔跑,吃,吃,吃X
:其他,例如sfpksdpsxmsa SPACE
:空间,例如请注意,当文档说此列表遵循“通用依赖项计划”时,文档稍微有些说谎。上面列出了两个不属于该方案的标签。
其中之一就是CONJ
,它曾经存在于Universal POS Tags方案中,但是自从首次编写SCONJ
以来就被分为CCONJ
和SCONJ
。根据文档中tag-> pos的映射,似乎spaCy的当前模型实际上并没有使用CONJ
,但是由于某些原因,它仍存在于spaCy的代码和文档中-可能与旧模型具有向后兼容性。
第二个是SPACE
,它不是Universal POS Tags方案的一部分(据我所知,从来没有过),并且由spaCy用于除单个普通ASCII空格(不会获得自己的令牌)之外的任何间距):
>>> document = en_nlp("This\nsentence\thas some weird spaces in\n\n\n\n\t\t it.")
>>> for token in document:
... print('%r (%s)' % (str(token), token.pos_))
...
'This' (DET)
'\n' (SPACE)
'sentence' (NOUN)
'\t' (SPACE)
'has' (VERB)
' ' (SPACE)
'some' (DET)
'weird' (ADJ)
'spaces' (NOUN)
'in' (ADP)
'\n\n\n\n\t\t ' (SPACE)
'it' (PRON)
'.' (PUNCT)
我将从此答案中省略.tag_
标签的完整列表(较细粒度的标签),因为它们数量众多,文档齐全,英语和德语不同,并且可能在不同发行版之间进行更改。相反,请查看文档中的列表(例如https://spacy.io/api/annotation#pos-en英文),其中列出了每个可能的标记,其映射到的.pos_
值以及其含义的描述。 。
spaCy现在使用三种不同的方案来进行依赖性标记: 一种用于英语 , 一种用于德语 , 另一种用于其他所有东西 。再次,值列表很大,在这里我不会完整地复制它。每个依赖项旁边都有一个简短的定义,但是不幸的是,它们中的许多(如“介词修饰语”或“子句补语”)都是艺术术语,对于像我这样的日常程序员而言,它们是相当陌生的。如果您不是语言学家,则只需研究这些艺术术语的含义就可以理解它们。
不过,我至少可以为从事英语文本研究的人员提供一个研究的起点。如果您想在真实句子中看到一些CLEAR依赖关系的示例 (由英语模型使用),请查看Jinho D. Choi在2012年的工作:他的《自然语言处理组件的鲁棒性和可扩展性优化》或《准则》 CLEAR样式到依存关系转换 (这似乎只是前一篇文章的一个小节)。两者都列出了2012年存在的所有CLEAR依赖项标签以及定义和例句。 (不幸的是,自2012年以来,CLEAR依赖项标签的集合发生了一些变化,因此Choi的工作中未列出或举例说明一些现代标签,但是尽管有些过时,它仍然是有用的资源。)
0
关于获取简短形式的详细含义的快速提示。您可以使用以下explain
方法:
spacy.explain('pobj')
这将为您提供如下输出:
'object of preposition'
0
spaCy标签向上每个
Token
S IN一个Document
与语音的部分(在两个不同的格式,一种存储在pos
及pos_
所述的属性Token
和其他存储在所述tag
和tag_
属性)和句法依赖于其.head
令牌(存储在dep
和dep_
属性中)。其中一些标签是不言自明的,甚至对于像我这样没有语言背景的人也是如此:
其他...不是:
更糟糕的是, 官方文档甚至没有包含这些属性中大多数属性的可能标签列表,也没有任何含义。他们有时会提到他们使用的令牌化标准,但是这些声明目前尚不完全准确,最重要的是很难追踪这些标准。
tag_
,pos_
和dep_
属性的可能值是什么,它们是什么意思?