短语匹配引擎

时间:2013-11-01 05:01:43

标签: java matching

我想开发一个匹配引擎的句子。 引擎将生成一个结果,该结果是输入中最匹配的句子。 即使它是最不匹配的,引擎也必须从数据集(带有大量句子的文本文件)生成输出。

例如:输入
你好我是Nidhin Joseph
        数据集
    1)。 你好,你好吗?
    2)。 我是Nidhin。
    3)。 我是Nidhin Joseph你好。
    在这三者中,根据我的要求,最匹配的是     第三句话。     我根据单词命中和单词顺序进行排名      我的输入 :{“Hello”,“I”,“am”,“Nidhin”,“Joseph”}     我的输出:{“I”,“am”,“Nidhin”,“Joseph”,“Hello”}
    此处没有单词匹配= 4
    没有相对有序的单词= 4
我不知道我是否能够传达你的想法。如果我做了,那么请     告诉我,如果Java中已有类似的库。     如果没有,请带领我朝着正确的方向前进,这样我就可以更容易地开发它。

1 个答案:

答案 0 :(得分:1)

我建议使用Levenshtein距离算法。您可以在整个句子上使用标准算法,将其视为一长串字符(包括空格和标点符号)。

根据您的要求,您可以尝试一些变体,例如在所有单词上运行Porter词干分析器或忽略标点符号。你甚至可以修改Levenshtein算法,使用单词作为原子而不是字符。