【发布时间】:2016-08-14 07:11:16
【问题描述】:
我正在寻找一种针对句子列表创建单个句子的相似性向量的有效方法。
执行此操作的简单方法是遍历句子列表并检测单个句子与列表中每个句子之间的相似性。这个解决方案太慢了,我正在寻找一种更快的方法。
我的最终目标是检测句子列表中是否有与我正在检查的句子非常相似的句子,如果是,我将转到下一个句子。
我现在的解决办法是:
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 软件包,因此与我无关。
【问题讨论】:
-
您对一对多或所有对所有相似性检查感兴趣吗?解决方案还需要基于 gensim 吗?
-
@GökhanSever 我对“所有”列表正在增长时的一对多感兴趣
-
如果您的解决方案不需要 gensim,您可以简单地根据 n-character-gram 或 word-gram 计算 Jaccard 相似度。
-
解决方案实际上需要Gensim。
-
@LiorMagen 关于你如何解决这个问题的任何更新?
标签: python nlp deep-learning gensim word2vec