【发布时间】:2010-12-28 02:11:33
【问题描述】:
我目前正在做一个项目,我需要从大量文本中挑选出最常用的短语。例如,假设我们有如下三个句子:
- 狗从女人身上跳了下来。
- 狗跳进了车里。
- 狗跳了上了楼梯。
从上面的示例中,我想提取“the dog jumped”,因为它是文本中最常见的短语。起初我想,“哦,让我们使用有向图[带有重复节点]”:
directed graph http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png
编辑:抱歉,我犯了一个错误,让这个图表“over”、“into”和“up”都应该链接回“the”。
我打算统计每个节点对象中单词出现的次数(“the”是 6;“dog”和“jumped”是 3;等等),但尽管有许多其他问题,但主要的问题当我们添加更多示例时出现(请忽略错误的语法:-)):
- 狗跳上跳下。
- 狗像以前没有狗一样跳跃。
- 狗高兴地跳了起来。
我们现在遇到了一个问题,因为“dog”会启动一个新的根节点(与“the”处于同一级别)并且我们无法识别“dog jumped “现在是最常见的短语。所以现在我在想也许我可以使用无向图来映射所有单词之间的关系并最终挑选出常用短语,但我不确定这将如何工作,因为你失去了重要的顺序关系的话。
那么对于如何识别大量文本中的常用短语以及我将使用什么数据结构,是否有人有任何一般的想法。
谢谢, 本
【问题讨论】:
-
我无法提供任何关于要使用的算法的具体信息。但是,您是否注意到用于表示和操作图形的 igraph 的到来?我使用 Python 和它的绑定使底层产品看起来非常漂亮。 igraph.sourceforge.net
-
只是链接回后面的帖子stackoverflow.com/questions/8898521/…
标签: data-structures graph data-mining text-analysis