使用 spacy doc.noun_chunks 得到错误的名词块
Get wrong noun chunks using spacy doc.noun_chunks
我使用 spacy en_core_web_trf
和 doc.noun_chunks
来获取名词块。以前,它运行良好,我可以正确获取名词块。但最近,从 12 月中旬左右开始。 2021(我猜),我使用相同的方式,相同的脚本,但我无法正确获取名词块。例如,在以下脚本中:
import spacy
from spacy import displacy
nlp = spacy.load("en_core_web_trf")
test_sen = "a label on a box that ensures that the status of a parcel can be traced uniquely "
doc = nlp(test_sen)
# ---------------------get initial noun chunks---------------------
for chunks in doc.noun_chunks:
print(chunks)
# displacy.serve(doc, style='dep')
我得到以下结果:
a label
a box
that
the status
a parcel
但是,根据依存关系图(见下文),文本that
(第一个)不应该是名词块,而是打印为名词块。另外,根据here对名词块的描述,它说Doc.noun_chunks: Yields base noun-phrase Span objects
。无论哪种情况,that
都不会是所谓的noun chunk
,但在这里被识别为一个名词块,给我后面的处理带来很大的麻烦。
有人知道如何修复它吗?谢谢!
差异可能是由于使用了不同版本的 en_core_web_trf
。每个次要的 spaCy 版本都有一个新的模型版本,因此有模型版本:v3.0.0、v3.1.0、v3.2.0。您可以通过 spacy validate
.
查看当前安装的模型版本
如果您需要为特定任务使用完全相同的注释,请在您的要求中指定确切的模型版本:
https://github.com/explosion/spacy-models/releases/download/en_core_web_trf-3.1.0/en_core_web_trf-3.1.0-py3-none-any.whl
我认为您看到的差异是由于 v3.2.0 模型的更新改进了 POS 标签,这些标签与 fine-grained 标签和依赖项解析中的规则映射。一些名词块错误来自 tagger/parser 错误,但这看起来像是正确的标记、解析和 POS。名词组块的确切定义可能会有所不同,但在我可以找到的示例中(主要来自 CoNLL 2003 共享任务),像这样的关系代词包含在名词组块中。
我使用 spacy en_core_web_trf
和 doc.noun_chunks
来获取名词块。以前,它运行良好,我可以正确获取名词块。但最近,从 12 月中旬左右开始。 2021(我猜),我使用相同的方式,相同的脚本,但我无法正确获取名词块。例如,在以下脚本中:
import spacy
from spacy import displacy
nlp = spacy.load("en_core_web_trf")
test_sen = "a label on a box that ensures that the status of a parcel can be traced uniquely "
doc = nlp(test_sen)
# ---------------------get initial noun chunks---------------------
for chunks in doc.noun_chunks:
print(chunks)
# displacy.serve(doc, style='dep')
我得到以下结果:
a label
a box
that
the status
a parcel
但是,根据依存关系图(见下文),文本that
(第一个)不应该是名词块,而是打印为名词块。另外,根据here对名词块的描述,它说Doc.noun_chunks: Yields base noun-phrase Span objects
。无论哪种情况,that
都不会是所谓的noun chunk
,但在这里被识别为一个名词块,给我后面的处理带来很大的麻烦。
有人知道如何修复它吗?谢谢!
差异可能是由于使用了不同版本的 en_core_web_trf
。每个次要的 spaCy 版本都有一个新的模型版本,因此有模型版本:v3.0.0、v3.1.0、v3.2.0。您可以通过 spacy validate
.
如果您需要为特定任务使用完全相同的注释,请在您的要求中指定确切的模型版本:
https://github.com/explosion/spacy-models/releases/download/en_core_web_trf-3.1.0/en_core_web_trf-3.1.0-py3-none-any.whl
我认为您看到的差异是由于 v3.2.0 模型的更新改进了 POS 标签,这些标签与 fine-grained 标签和依赖项解析中的规则映射。一些名词块错误来自 tagger/parser 错误,但这看起来像是正确的标记、解析和 POS。名词组块的确切定义可能会有所不同,但在我可以找到的示例中(主要来自 CoNLL 2003 共享任务),像这样的关系代词包含在名词组块中。