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

ben*_*sky 18 graph text-analysis data-mining data-structures

我正在研究一个项目,我需要在大量文本中挑选最常见的短语.比如说我们有三个句子如下:

  • 那只狗跳过那个女人.
  • 那只狗跳进了车里.
  • 狗跳上楼梯.

从上面的例子我想提取" 狗跳 ",因为它是文本中最常见的短语.起初我想,"哦,让我们使用有序图[重复节点]":

有向图http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

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

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

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

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

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

谢谢,本

Sha*_*ane 12

看看这个相关的问题:有哪些技巧/工具可以发现文本块中的常用短语? 也与最长的常见子串问题有关.

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

更一般地说,CRAN上的自然语言处理视图中有大量文本挖掘包.