带有 BIO 标记的命名实体识别

数据挖掘 伯特 命名实体识别
2022-03-06 20:51:42

我正在尝试使用 BIO 注释来实现 NER。例如

"I went to the United States"  
[O, O, O, B, I, I]

其中 B 和 I 表示实体的开始,“I”表示实体的后续。

但是,当我在序列的每个位置使用香草 BERT 进行分类(是否属于“B”、“I”、“O”)时,我会遇到“O”后面跟着“I”的情况。数据中没有显示('O','I')模式的案例,因为前面总是有一个'B'或'I'。显然,没有什么可以强制模型排除这种模式,但我想以某种方式将其合并到模型中(比如从“O”到“I”的转换概率为 0 或其他东西)。

我查看了 BERT 之上的条件随机字段,它试图做一些非常相似的事情,但预测不知何故仍然包含这些“O”“I”模式。

2个回答

根据我的经验,这些情况在实践中几乎是不可避免的,但这不是一个真正的问题:

  • 顺序模型学习根据特征将每个标记分类为 B、I 或 O。有时它可能会在测试数据中找到一个案例(有时甚至在训练数据中,如果它很嘈杂),即使之前的标记是 O,基于特征的最有可能的类别是 I。通常情况下很少见,因为模型没有看到训练数据中的任何 OI 序列。
  • 这并不重要:如果需要,可以轻松运行后处理脚本,将任何 OI 序列转换为 OB。
  • 请注意,如果您真的不想获得这种不一致,您可以选择不同的标记方案,例如只有 O,I。然而,在常规 NE 任务中,捕捉实体开始的指标很重要,并且可能与表征持续实体的指标不同,因此这可能会降低性能。请注意,存在其他方案,例如 BILOU,但由于它更复杂,因此通常会导致更多的不一致。

研究维特比算法可能会很有趣应用时,您基本上会查看成对的标记而不是单个标记。然后,您可以构造您的转换矩阵(即令牌 X 在令牌 Y 之前的条件概率),这样就不允许从 O 到 I 标签的转换(概率为 0)。

要记住的一件事是,从 O 标记到没有 B 标记的 I 标记的转换基本上具有较少的证据,并且这些后处理方法可能导致更高的误报率。