我正在研究一个项目,我需要在大量文本中挑选最常见的短语.比如说我们有三个句子如下:
那只狗跳过那个女人.
那只狗跳进了车里.
狗跳上楼梯.
从上面的例子我想提取" 狗跳 ",因为它是文本中最常见的短语.起初我想,"哦,让我们使用有序图[重复节点]":
有向图http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png
编辑:道歉,我把这个图表"翻过","进入"和"向上"都犯了一个错误,所有这些都应该链接回"the".
我将维持每个节点对象中一个单词出现次数的计数("the"将是6;"dog"和"jumped",3;等等)但是尽管存在许多其他问题,但主要出现了我们添加了一些例子(请忽略坏语法:-)):
狗跳上跳下.
狗跳得像以前没有狗跳过.
狗高兴地跳了起来.
我们现在有一个问题,因为" dog "会启动一个新的根节点(与"the"处于同一级别),我们不会将" dog jumped " 识别为现在最常见的短语.所以现在我想也许我可以使用无向图来映射所有单词之间的关系,并最终选出常用短语,但我不确定这是如何工作的,因为你失去了重要的秩序关系这些话.
那么,对于如何识别大量文本中的常用短语以及我将使用什么数据结构,任何人都有任何一般性的想法.
谢谢,本
看看这个相关的问题:有哪些技巧/工具可以发现文本块中的常用短语? 也与最长的常见子串问题有关.
我以前发布过这个,但是我使用R来完成所有的数据挖掘任务,它非常适合这种分析.特别是看看tm
包装.以下是一些相关链接:
关于统计计算期刊中一揽子计划的论文: http://www.jstatsoft.org/v25/i05/paper.本文包含一个很好的例子,分析2006年R-devel邮件列表(https://stat.ethz.ch/pipermail/r-devel/)新闻组的帖子.
包主页:http://cran.r-project.org/web/packages/tm/index.html
看一下介绍性的小插图:http://cran.r-project.org/web/packages/tm/vignettes/tm.pdf
更一般地说,CRAN上的自然语言处理视图中有大量文本挖掘包.