获得不正确的 POS 标记
Getting incorrect POS tagging
我正在尝试获取句子的 POS
dragon flies to rescue the princess
使用以下代码
nlp = spacy.load("en_core_web_md")
doc = nlp("dragon flies to rescue the princess")
for token in doc:
print(f'{token.text:{12}} {token.pos_:{12}}')
以上代码的输出:
dragon NOUN
flies NOUN
to PART
rescue VERB
the DET
princess NOUN
这里,'flies' 被认为是名词,而它是动词,是因为 spacy 将 'dragon flies' 视为一个词吗?
如果我想得到 "VERB" 作为苍蝇的 POS,我该怎么办。
当运行使用您的示例时,有两点需要注意:
- Spacy 模型是经过统计训练的模型,它们各自具有特定的 POS accuracy,在本例中约为 97%。因此,一些 错误总是在意料之中,特别是当您处理包含各种句子的语料库时。
- Spacy 当然只能在句子语法正确的情况下提供有意义的标签,而您上面的示例并非如此。
当我运行改正后的句子"A dragon flies to rescue the princess.",输出为
The DET
dragon NOUN
flies VERB
to PART
rescue VERB
the DET
princess NOUN
. PUNCT
因此正是我们所期望的。如果您的数据集包含处理此类句法错误的句子,"easiest" 解决方案可能会手动注释一些示例,并利用 Spacy 的训练功能,可以找到详细信息 here。即便如此,也不能保证你会得到明显更好的结果,除非你注释了大量数据,并且可以断言大多数样本都有 "similar-looking" 错误。
我正在尝试获取句子的 POS
dragon flies to rescue the princess
使用以下代码
nlp = spacy.load("en_core_web_md")
doc = nlp("dragon flies to rescue the princess")
for token in doc:
print(f'{token.text:{12}} {token.pos_:{12}}')
以上代码的输出:
dragon NOUN
flies NOUN
to PART
rescue VERB
the DET
princess NOUN
这里,'flies' 被认为是名词,而它是动词,是因为 spacy 将 'dragon flies' 视为一个词吗?
如果我想得到 "VERB" 作为苍蝇的 POS,我该怎么办。
当运行使用您的示例时,有两点需要注意:
- Spacy 模型是经过统计训练的模型,它们各自具有特定的 POS accuracy,在本例中约为 97%。因此,一些 错误总是在意料之中,特别是当您处理包含各种句子的语料库时。
- Spacy 当然只能在句子语法正确的情况下提供有意义的标签,而您上面的示例并非如此。
当我运行改正后的句子"A dragon flies to rescue the princess.",输出为
The DET
dragon NOUN
flies VERB
to PART
rescue VERB
the DET
princess NOUN
. PUNCT
因此正是我们所期望的。如果您的数据集包含处理此类句法错误的句子,"easiest" 解决方案可能会手动注释一些示例,并利用 Spacy 的训练功能,可以找到详细信息 here。即便如此,也不能保证你会得到明显更好的结果,除非你注释了大量数据,并且可以断言大多数样本都有 "similar-looking" 错误。