从文本中提取日期/持续时间

数据挖掘 机器学习 Python nlp 文本 命名实体识别
2022-01-25 18:25:24

要提取的文本和输出类似于以下内容:

“每两周检查一次” - 两周

“在第 1 天和第 14 天检查” - 第 1 天和第 14 天

“第 19 天和第 14 天很重要” - 第 19 天,第十四天

“游戏在 6 周内” - 6 周

“在 6 个月内检查” - 6 个月

“第 1 天和第 14 天很重要” - 第 1 天,第 14 天

“在第 11 天和第 14 天检查它” - 第 11 天,第 14 天

“在第一天和第十二天检查” - 第一天,第十二天

我曾尝试使用 SUTime 库来提取必要的信息,但它仅适用于第一个示例,并且无法从大多数其他句子中正确提取信息。考虑到可以编写相同文本的多种方式,使用正则表达式不太可行。

我想知道是否有任何可行的 NLP/ML 解决方案来提取这些信息。如果 NLP/ML 是解决这个问题的最佳方法,我有两个问题: 1. 我不确定我是否可以使用分类模型,我的首选是使用回归模型,这样做是否正确?2. 在任何一种情况下,我都没有很多标记数据可以训练。因此,如果有人可以让我知道是否有任何用于训练的开源标记数据+,那将会很有帮助。

1个回答

您在这里尝试做的是命名实体识别即,该任务包括将子字符串分类为一组命名实体(即人、位置等)。从更正式的角度来看,这是对序列的各个部分进行分类的序列标记任务。

可以通过不同的方式来完成此任务:

  • 地名词典/字符串匹配
  • 常用表达
  • 机器学习

我强烈推荐使用SpaCy它们允许您使用自己的数据和标签自定义和重新训练模型,并且通常,对于这样的用例,模型将在不需要大量数据的情况下表现良好。