我需要创建一个短语频率表,计算包含几百万个单词的非常大的集合中的所有短语。最终结果将是一个表格,例如此处创建的表格: http ://www.hermetic.ch/wfca/phrases.htm
什么是实现这一点的有效算法?如果您能够展示一些细节,那么在 Ruby 中实现它会更好。或者,坦率地说,我什至对使用xapian或 lucene 持开放态度,但在根据需要构建频率表输出方面,并没有看到一种直接的方法来实现这一点。
我需要创建一个短语频率表,计算包含几百万个单词的非常大的集合中的所有短语。最终结果将是一个表格,例如此处创建的表格: http ://www.hermetic.ch/wfca/phrases.htm
什么是实现这一点的有效算法?如果您能够展示一些细节,那么在 Ruby 中实现它会更好。或者,坦率地说,我什至对使用xapian或 lucene 持开放态度,但在根据需要构建频率表输出方面,并没有看到一种直接的方法来实现这一点。
我建议使用以单词为键的散列,并在找到每个短语时递增值。
Ruby 是为此类数据操作而构建的,因此您正朝着正确的方向发展。
我不会为您介绍该项目,但请仔细查看:
http://ruby-doc.org/core-2.0/Hash.html
然后了解您需要解析的基本正则表达式:
http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ
编辑:我相信最近的红宝石,哈希是可排序的!我敢打赌这将有助于您的表格输出。但是,我不确定 Ruby 是如何实现的(有效的?)。