如何对同一类型的命名实体进行分类?

数据挖掘 机器学习 nlp 命名实体识别
2022-03-10 19:06:07

我正在做一个从文本中提取日期/时间实体的项目。我正在使用基于规则的系统来提取时间表达式并将它们定位到实际的日期/时间。

我希望解决的问题的第二部分是标记发现的每个实体的角色。例如,考虑以下文本:“下午 2 点离开,下午 4 点返回”。我正确地将下午 2 点和下午 4 点识别为日期/时间实体。但是,我不能说实体是“开始时间”、“结束时间”,还是两者都不是。

问题是我该怎么做?

我是 NLP 和 ML 的新手。这是我的一个想法,请告诉我我是否走对了方向:

该计划是使用以下特征训练逻辑回归(或朴素贝叶斯?)分类器:

  1. 日期/时间短语窗口内每个词的词嵌入平均值。
  2. 日期/时间短语窗口内每个单词的 POS 标签??(不确定如何将其传递给逻辑回归分类器,但只是一个想法)
  3. 时间表达中单词的词形??

我对从哪里开始有点困惑,并且非常感谢一些关于如何选择我的功能以及什么分类器合适的指示。

我也愿意接受有关学习资源的建议。网上有很多 NER 资源,但关于如何对找到的实体进行“角色分类”的资源并不多。

2个回答

您可能对围绕TimeML构建的资源感兴趣,我认为有一些语料库和特定的解析器专门用于提取事件的时间细节。我不记得任何细节,但我尝试用谷歌搜索“timeml extract time”并找到了一些相关资源,这至少可以给你一些关于人们如何处理类似问题的灵感。

如果您没有找到任何适合您需要的东西,通常最好的方法是使用您自己的带有“开始时间”、“结束时间”、“两者都没有”标签的注释数据集来训练自定义 NER。

您应该应用与提取时间相同的计划来对这些时间进行分类:

  1. 从基于规则的系统开始
  2. 然后尝试机器学习方法

为了构建机器学习,您需要一组标记为“开始时间”、“结束时间”或“两者都不是”的文本。您可以先尝试传统算法,例如逻辑回归或朴素贝叶斯。鉴于这是一个相对细微的问题,因为您进行了条件分类,您可能必须构建一个更复杂的系统,该系统使用条件随机场 (CRF) 等上下文信息。