2016-04-21 106 views
0

我正在尋找一種創建單個句子與句子列表相似度向量的有效方法。查找句子與句子列表之間的相似度

這樣做的微不足道的方法是迭代句子列表並檢測單個句子與列表中每個句子之間的相似性。這個解決方案太慢了,我正在尋找一個更快的方法來做到這一點。

我的最終目標是檢測句子列表中是否有與我正在查看的句子中的句子類似的句子,如果是的話,我將轉到下一句。

我的解決現在的問題是:

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) 

Iv'e試圖把「list_of_sentences」在字典/集,但在時間上的改進是次要的。

我遇到了this解決方案,但它基於Linux專用包,因此與我無關。

+0

您是否有興趣一對全部或全部對所有類似的檢查?解決方案還需要基於gensim? –

+0

@GökhanSever我對一對一感興趣,而'全部'列表正在增長 –

+0

如果您的解決方案不需要gensim,那麼您可以簡單地計算Jaccard相似度,可以基於n字符克或單詞-grams。 –

回答

0

我想推薦2條東西: 1.嘗試將'list_of_sentences'放在一個文件中 2.用正則表達式快速旋轉文件。

+0

'list_of_sentences的大小是動態的,如果相似度低於給定的閾值,我將'sentence2test'添加到'list_of_sentences',所以這聽起來像浪費時間來保存文件多次加載。我正在尋找一種方法,將使用這是Numpy對象的事實。 –