高效的短语匹配算法

时间:2011-02-21 03:39:18

标签: algorithm hadoop phrase

我有一套约7百万个短语可与大约3亿个查询匹配。

查询可以是子字符串,也可以包含短语本身。基本上我想要衡量两个短语之间的“相似性”[不一定是编辑距离]

有人可以指出有效的算法来做到这一点。我更喜欢分布式算法,因为我将使用python通过流式传输在Hadoop上执行此操作。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

这至少不是很微不足道,因为你在一方面拥有非常多的数据,而在另一方面则更多。

最简单的方法是7百万的lucene指数。短语,让hadoop作业查询索引。不太确定你是否需要一个solr服务器,或者python中的任何类似实现
映射器应该写出短语id或linenumber,无论你需要识别它。或者至少是短语本身,以及匹配核心。

在缩小步骤中,您可以缩小短语键并用分数写出所有相关短语。 (或任何你想要的)
有关相似性,您可以在此处进一步阅读:

Similarity of Apache Lucene
Apache Lucene itself