我需要创建一个短语频率表,计算几百万字的非常大的集合中的所有短语。最终结果将是一个表,例如这里创建的内容: http://www.hermetic.ch/wfca/phrases.htm
实现这一目标的有效算法是什么?如果你能够展示一些细节,那么在Ruby中实现它会更好。或者,坦率地说,我甚至愿意使用xapian或lucene,但是根据需要建立频率表输出,没有立即用这些来实现这一点。
答案 0 :(得分:0)
我建议使用带有单词作为键的哈希值,并在找到每个短语时递增值。
Ruby是为这种类型的数据操作而构建的,所以你从正确的方向来看它。
我不打算为你做这个项目,但仔细看看:
http://ruby-doc.org/core-2.0/Hash.html
然后了解您需要解析的基本正则表达式:
http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ
编辑:我相信最近的红宝石,哈希是可以排序的!我打赌这会对你的表输出有所帮助。但是,我不确定Ruby如何实现(高效?)。