我目前正在做一个项目,我需要在大量文本中挑选出最常见的短语。例如,假设我们有如下三个句子:
- 狗从女人身上跳了过去。
- 狗跳进了车里。
- 狗跳上楼梯。
从上面的示例中,我想提取“ the dog jumped ”,因为它是文本中最常见的短语。起初我想,“哦,让我们使用有向图[带有重复节点]”:
有向图 http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png
编辑:抱歉,我在制作这个图表时犯了一个错误,“over”、“into”和“up”应该都链接回“the”。
我打算保持一个单词在每个节点对象中出现的次数(“the”将是 6;“dog”和“jumped”,3;等等),但尽管有许多其他问题,但主要问题还是出现了我们添加了更多示例(请忽略错误的语法:-)):
- 狗跳上跳下。
- 狗跳起来就像以前没有狗跳过一样。
- 狗高兴地跳了起来。
我们现在遇到了一个问题,因为“ dog ”会启动一个新的根节点(与“the”处于同一级别),并且我们不会将“ dog jumped ”识别为现在最常见的短语。所以现在我在想也许我可以使用无向图来映射所有单词之间的关系并最终挑选出常用短语,但我不确定这将如何工作,因为你失去了重要的顺序关系的话。
那么,对于如何识别大量文本中的常用短语以及我将使用什么数据结构,是否有人有任何一般的想法。
谢谢,本