【发布时间】:2022-01-27 16:07:49
【问题描述】:
我使用 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,而是在这里识别为名词块,给我后面的处理带来很大的麻烦。
有人对如何修复它有提示吗?谢谢!
【问题讨论】:
-
使用
[chunks for chunks in doc.noun_chunks],我得到[a label, a box, the status, a parcel]作为输出,没有that。 -
@WiktorStribiżew 谢谢,我刚刚尝试过你的方式,“chunk = [chunks for chunks in doc.noun_chunks] print(chunk)”,但“那个”仍然打印出来,我有不知道原因
标签: python nlp dependencies spacy