如何在大型集合中有效地计算所有短语?

时间:2013-09-25 21:39:07

标签: ruby lucene frequency xapian word-frequency

我需要创建一个短语频率表,计算几百万字的非常大的集合中的所有短语。最终结果将是一个表,例如这里创建的内容: http://www.hermetic.ch/wfca/phrases.htm

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

1 个答案:

答案 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/

编辑:我相信最近的红宝石,哈希是可以排序的!我打赌这会对你的表输出有所帮助。但是,我不确定Ruby如何实现(高效?)。