查找句子与句子列表之间的相似性

时间:2016-04-21 08:10:32

标签: python nlp deep-learning gensim word2vec

我正在寻找一种有效的方法来创建单个句子的相似性向量与句子列表。

这样做的简单方法是迭代句子列表并检测单个句子和列表中每个句子之间的相似性。这个解决方案太慢了,我正在寻找一种更快的方法。

我的最终目标是检测句子列表中是否存在与我正在检查的句子中真正相似的句子,如果是,我将转到下一句话。

我现在的解决方案是:

for single_sentence in list_of_sentences:
    similarity_score = word2vec.sentences_similarity(sentence2test, single_sentence)
    if similarity_score >= similarity_th:
       ignore_sent_flag = True
       break 
list_of_sentences.append(sentence2test)

我试图把'list_of_sentences'在字典/集中,但时间上的改善很小。

我遇到了this解决方案,但它基于仅限Linux的软件包,因此与我无关。

2 个答案:

答案 0 :(得分:0)

我想建议两件事: 1.尝试输入list_of_sentences'在一个文件中 2.用正则表达式循环文件,速度更快。

答案 1 :(得分:0)

使用LSH(1)散列你的句子,只测试你的候选人匹配的哈希桶中的句子。不需要比较所有句子,您只需要测试更小的子集。

(1)How to understand Locality Sensitive Hashing?