首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用spacy doc.noun_chunks获取错误的名词块

使用spacy doc.noun_chunks获取错误的名词块
EN

Stack Overflow用户
提问于 2022-01-26 13:08:41
回答 1查看 313关注 0票数 2

我使用spacy en_core_web_trfdoc.noun_chunks来获取名词块。以前,它运行得很好,我可以正确地得到名词块。但最近,从12月中旬开始2021年(我猜),我用同样的方式,同样的脚本,但我不能正确地得到名词块。例如,在以下脚本中:

代码语言:javascript
复制
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')

我得到以下结果:

代码语言:javascript
复制
a label
a box
that
the status
a parcel

但是,根据依赖关系图(见下文),文本that(第一个)不应该是名词块,而是作为名词块打印出来的。另外,根据这里对名词块的描述,它说Doc.noun_chunks: Yields base noun-phrase Span objects。无论在哪种情况下,that都不是所谓的noun chunk,但是它在这里被识别为名词块,这给我以后的处理带来了很多麻烦。

有谁知道怎么解决这个问题吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 08:07:49

这种差异可能是由于使用了不同版本的en_core_web_trf。每个次要的spaCy版本都有一个新的模型版本,因此有模型版本: v3.0.0、v3.1.0、v3.2.0。您可以看到spacy validate当前安装的模型版本。

如果对特定任务需要完全相同的注释,请在需求中指定确切的模型版本:

代码语言:javascript
复制
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标记的更新,它们使用细粒度标记和依赖关系解析中的规则进行映射,因此您看到了不同的地方。一些名词块错误来自标签/解析器错误,但这里看起来像正确的标记、解析和POS。名词块的确切定义可能各不相同,但在我可以找到的示例中(主要来自于CoNLL 2003共享任务),像这样的相关代词包括在名词块中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70863919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档