Search code examples
spacydisplacy

How to display spaCy named entities in plain text?


spaCy visualizers render named entities into HTML or SVG. Is there any easy way to get quick debug output in plaintext that looks good? I'm using spaCy 3.7.2 and python 3.11.


Solution

  • I ended up making a simple utility function:

    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))
    

    Example output:

    3 tablespoons minced scallions
      ----------- UNIT 2..13
                         --------- INGREDIENT 21..30