21

我目前正在做一个项目,我需要在大量文本中挑选出最常见的短语。例如,假设我们有如下三个句子:

  • 狗从女人身上跳了过去。
  • 狗跳进了车里。
  • 狗跳上楼梯。

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

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

编辑:抱歉,我在制作这个图表时犯了一个错误,“over”、“into”和“up”应该都链接回“the”。

我打算保持一个单词在每个节点对象中出现的次数(“the”将是 6;“dog”和“jumped”,3;等等),但尽管有许多其他问题,但主要问题还是出现了我们添加了更多示例(请忽略错误的语法:-)):

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

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

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

谢谢,本

4

1 回答 1

13

查看这个相关问题:有哪些技术/工具可用于发现文本块中的常用短语? 也与最长公共子串问题有关。

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

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

于 2009-12-18T16:57:58.537 回答