2013-09-25 128 views
2

我需要创建一个词组频率表,计算几百万字单词的一个非常大的集合中的所有短语。最终的结果将是,如什么是这里创建一个表: http://www.hermetic.ch/wfca/phrases.htm如何在大集合中有效地计算所有短语?

什么将是一个有效的算法来实现这一点?如果你能够展示一些细节,在Ruby中看到它会更好。或者,坦率地说,我甚至可以使用xapian或者lucene,但是没有看到用这些方法来实现这个目的的方法,就是根据需要建立频率表输出。

+2

”这是一个包含853个单词和4488个这些单词实例的24 KB文件上的计算全部短语操作的输出示例。 “经过的时间:36秒” – steenslag

+0

“计数所有短语”?那么,整个文件就是一个短语。减去第一个或最后一个单词的整个文档是另一个。那么,那个第一个或最后一个单词是另一个短语。你能澄清你的要求吗? –

回答

0

我会推荐使用散列作为关键词,并增加值,因为你发现每个短语。

Ruby是为这种数据处理而构建的,因此您从正确的方向着手。

我不会对这个项目给你,但仔细看看:

http://ruby-doc.org/core-2.0/Hash.html

然后了解基本的正则表达式你需要解析:

http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ

http://rubular.com/

编辑:我相信,在最近的红宝石,散列SOR表!我敢打赌,这将有助于您的表格输出。不过,我不确定Ruby如何实现(有效?)。 “

相关问题