Algorithm 高效的短语匹配算法

Algorithm 高效的短语匹配算法,algorithm,hadoop,phrase,Algorithm,Hadoop,Phrase,我有一组大约700万个短语要匹配大约3亿个查询 查询可以是子字符串,也可以包含短语本身。基本上,我想要衡量两个短语之间的“相似性”[不一定是编辑距离] 有人能给一些有效的算法来做这件事吗。我更喜欢分布式算法,因为我将在Hadoop上使用python通过流媒体实现这一点。Bed trees看起来很有趣 (Pdf演示文稿)这至少不是一件小事,因为你一方面有很多数据,另一方面甚至更多。 最简单的方法是在700万美元的基础上建立lucene指数。短语并让hadoop作业查询索引。不太确定您是否需要so

我有一组大约700万个短语要匹配大约3亿个查询

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

有人能给一些有效的算法来做这件事吗。我更喜欢分布式算法,因为我将在Hadoop上使用python通过流媒体实现这一点。

Bed trees看起来很有趣


(Pdf演示文稿)

这至少不是一件小事,因为你一方面有很多数据,另一方面甚至更多。

最简单的方法是在700万美元的基础上建立lucene指数。短语并让hadoop作业查询索引。不太确定您是否需要solr服务器,或者python中的任何类似实现。

映射器应该写出短语id或行号,无论您需要标识什么。或者至少是短语本身,以及匹配核心。

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



我不明白你想做什么。短语和查询之间的“匹配”要求是什么?是否只是短语必须是查询的子字符串?你想从这个算法中得到什么样的输出?我已经更新了这个问题的更多细节。