检测句子是否包含数字系列

数据挖掘 nlp
2022-03-11 16:03:11

我有许多不同的文本字符串。这些文本字符串是特定事物的标签。但是这些标签很草率,有时一个标签用于许多不同的事情。例如:

《棕狐 1999 版系列 1-6 EDI》

“Light [old] seasons 1,2,3,4 其他胡言乱语”

我想回答这个问题:“如果标签包含一个系列,那么该系列是否包含值 N?” 对于上面的示例,第一个中将包含 6 个,但第二个中不包含。

最初我想使用正则表达式,但很快就失控了。数字无处不在,人们可以通过分隔符变得非常有创意,并且标签中系列的位置不固定。标签表示系列的方式有很多种。

但是,我可以做的是生成带有系列的标签。我将抓住一堆分隔符,一个开始和一个结束数字并迭代。这给了我一个很好的标记训练集。

朴素贝叶斯想到了这个问题,但我不确定有什么好的功能。

更新

让我试着澄清一下。给定一个标签并给定一个数字,确定该数字是否包含在该标签内。

例如:鉴于我正在寻找第 2 季(数字)。《先驱者一号 2011 第 1-3 季》包含第 2 季吗?

2个回答

所以有很多方法来表示一个系列。如果您不知道格式,您将如何解析系列以确定值?

确定标签是否有系列并不能让您了解系列中的特定数字。

2,3,5,7 解析为 4 个数字

6 是 1996 年吗?我假设这是一个数字和 1996 != 6

"55,56,57" 是带有 6 但不是数字 6 的系列

7-9 解析出 2 个数字还是 3 个数字
7-9 中是 6 吗?
如果 6 在 7-9 中,则将其标识为系列不回答该问题。

有多少种方式可以表示正则表达式失控的系列?对于每种格式的系列,您还需要解析值。您需要知道系列的格式才能解析出数字。我将一组正则表达式映射到一组解析器。

也许使用机器学习来识别新的系列格式,但您仍然需要解析系列。

我认为您的问题表述不当,但如果我理解它,您正在尝试将“好”数字(这里是电视节目季节的数字)与“坏”数字(例如,如果文本包含年份)分开1996”,而您正在寻找“6”,或在任何其他情况下为 6)。

朴素贝叶斯可能会做到这一点,也许将您的数字的邻域用作具有预定窗口的特征集?即,将出现在文本中的数字两侧的 X 标记用作您的功能集。你甚至可以用他们的词性和其他上下文证据来丰富它。