文本数据中的“对象”检测

数据挖掘 nlp 物体检测 文件理解
2022-03-08 22:54:18

我有一个任务,其中输入是一个已解析的文档(即,1 个字符串或标记中的全文),我需要将部分文本分类为 5 个类(即,整个文本中的 5 个标记被标记为 5 个不同的类)。

例子:

文档#1:“... cat ...”(标记“cat”属于“0”类,即动物)

文档#2:“...fish ...”(标记“fish”属于“0”类,即动物)

重要的是要注意,在推理时,我拥有整个文档(文本),因此其中的大多数标记不属于任何类。

什么是完成这项任务的好方法?我想到了一个简单的分类问题,我从每个文档中获取标记的标记并将其输入到 RNN 分类器中,但这会忽略文档的其余部分,并且在测试时,不相关的标记可能比标记的标记具有更大的概率。

我也有一个受 YOLO 启发的想法,可能会在整个文本上应用 1D CNN 对象检测器(具有相应的类数)。这合理吗?

谢谢。

2个回答

这看起来与命名实体识别 (NER) 非常相似,命名实体识别 (NER)传统上是使用诸如条件随机场之类的序列标记模型完成的。通常在以下情况下使用 NER:

  • 可能的实体列表未预定义:训练数据可能包含“Mr James Smith”,但测试数据可能包含“Mr John Doe”。换句话说,课程是开放的。
  • 假设文本的上下文可以帮助模型预测实体。例如在“Today X said that ...”这样的句子中,X 后面的“said”这个词应该有助于模型预测 X 是一个人还是一个组织,但它不能是一个位置。

我不确定我是否完全理解这个问题,但如果你有手写文本,那么“猫”这个词可以用多种不同的方式书写,你可以训练一个像 YOLO 或 Faster R-CNN 这样的对象检测器来检测这个词(例如在您的数据或操作系统数据集(如 ICDAR2015-FST)上,甚至是其中的单独字符。另一方面,如果你想识别看不见的单词并将它们分类到其中一个类中,我认为这是不可能的。