如何以纯文本显示spaCy命名实体?

问题描述 投票:0回答:2

spaCy 可视化工具 将命名实体渲染为 HTML 或 SVG。有没有什么简单的方法可以以纯文本形式获得看起来不错的快速调试输出?我正在使用 spaCy 3.7.2 和 python 3.11。

spacy displacy
2个回答
0
投票

您可以迭代实体并显示文本和标签:

import spacy
from spacy import displacy

text = "When Sebastian Thrun started working on self-driving cars at Google in 2007, few people outside of the company took him seriously."

nlp = spacy.load("en_core_web_sm")
doc = nlp(text)


for ent in doc.ents:
    print(f"{ent.text}  => {ent.label_}")

输出:

Sebastian Thrun  => PERSON
Google  => ORG
2007  => DATE

有关更多信息,请参阅EntityRecognizer文档


0
投票

我最终制作了一个简单的实用函数:

def char_span_string(span: Span, extra: str = "") -> str:
    return (
            (span.start_char * " ")
            + ((span.end_char - span.start_char) * "-")
            + " "
            + span.label_
            + " "
            + str(span.start_char)
            + ".."
            + str(span.end_char)
            + extra
    )

for ent in doc.ents:
    print(char_span_string(ent))

输出示例:

3 tablespoons minced scallions
  ----------- UNIT 2..13
                     --------- INGREDIENT 21..30
© www.soinside.com 2019 - 2024. All rights reserved.