获得与spacy web依赖关系可视化工具相同的结果

2024-09-28 20:17:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下一句话:

kimchi, fermented-vegetable foods produced in Korea

我将其传递给Spacy依赖关系可视化工具(选中“合并短语”): enter image description here 我对这个结果非常满意,并尝试用Python“改造”这个结果:

nlp = spacy.load('en_core_web_sm')
nlp.add_pipe(nlp.create_pipe('merge_noun_chunks'))
doc = nlp("kimchi, fermented-vegetable foods produced in Korea")
for token in doc:
    print(token.text)

这给了我:

kimchi, fermented-vegetable foods
produced
in
Korea

因此这里kimchi,fermented-vegetable foods合并,而我希望它与示例中的完全相同。我检查了github^{}函数,它也使用了doc.noun_chunks,所以我无法理解差异的来源以及如何获得所需的结果


Tags: intokendocnlp关系spacychunksnoun
1条回答
网友
1楼 · 发布于 2024-09-28 20:17:16

以下是我如何在脚本中合并名词块:

import spacy

nlp = spacy.load('en_core_web_lg')
doc = nlp('kimchi, fermented-vegetable foods produced in Korea') 
spans = spacy.util.filter_spans(doc.noun_chunks)
with doc.retokenize() as retokenizer:
    [retokenizer.merge(span, attrs={"tag": span.root.tag, "dep": span.root.dep})for span in spans]

for token in doc:
    print(token.text)

输出:

kimchi
,
fermented-vegetable foods
produced
in
Korea

相关问题 更多 >