0

我有一个要使用 Displacy 显示的示例文本和 IOB 标签:

from spacy.tokens import Doc
nlp = spacy.blank("en")
tags = ['O', 'B-PER', 'I-PER']
words = ["I'm","John","Smith"]
doc = Doc(nlp.vocab, words=words, ents=tags)
displacy.render(doc, style="ent", jupyter=True)

然而,Displacy 将文本可视化如下:

I'm John Smith (PER)

不喜欢:

I'm (O) John(B-Per) Smith (I-Per)

如何做到这一点?

4

1 回答 1

0

我不认为有任何方法可以做到这一点。

您想在每个令牌上显示文字 IOB 标签。displaCy 反而省略了 O 标记(因为它们是默认标记)并显示整个实体,而不是标记标记,因为这样更容易理解。这也是我所知道的所有其他图形工具显示标签的方式(例如,这里是brat)。我确信我从未见过明确显示 O 标记的工具(这有什么用?)。

如果你想用标签显示每个标记,我认为你最好只打印文本而不是使用 displaCy。

于 2021-08-15T12:22:06.143 回答