如何在大量文本中查找常用短语

时间:2009-12-18 15:52:26

标签: data-structures graph data-mining text-analysis

我正在开展一个项目,我需要在大量文本中挑选最常用的短语。例如,我们有三个句子如下:

  • 狗对那个女人跳了
  • 狗跳进车里
  • 狗跳上楼梯

从上面的例子中我想提取“ the dog jumped ”,因为它是文本中最常用的短语。起初我想,“哦,让我们使用有序图[重复节点]”:

directed graph http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

编辑:道歉,我把这个图表“翻过”,“进入”和“向上”都犯了一个错误,所有这些都应该链接回“the”。

我要记住每个节点对象中出现一个单词的次数(“the”将是6;“dog”和“jumped”,3;等等)但是尽管存在许多其他问题我们添加了一些例子(请忽略坏语法:-))时出现了:

  • 狗跳上跳下。
  • 狗跳得像以前没有狗跳过。
  • 狗高兴地跳了起来。

我们现在有一个问题,因为“ dog ”会启动一个新的根节点(与“the”处于同一级别),我们不会识别“ dog jumped “现在是最常见的一句话。所以现在我想也许我可以使用无向图来映射所有单词之间的关系,并最终选出常用短语,但我不确定这是如何工作的,因为你失去了重要的秩序关系这些话。

所有人都对如何识别大量文本中的常用短语以及我将使用的数据结构有任何一般性的想法。

谢谢, 本

1 个答案:

答案 0 :(得分:9)

查看此相关问题:What techniques/tools are there for discovering common phrases in chunks of text?还与the longest common substring problem相关。

之前我发布了这个,但我使用R来完成所有数据挖掘任务,它非常适合这种分析。特别是,请查看tm包。以下是一些相关链接:

更一般地说,有大量的文本挖掘包on the Natural Language Processing view on CRAN