簡體   English   中英

Python-使用sklearn查找兩個文檔之間的所有相似句子

[英]Python - Find all the similar sentences between two documents using sklearn

我正在嘗試返回兩個文檔之間的所有相似句子,並且我有解決方案,但是它非常慢。 有沒有更有效的方法來實現這一目標?

我打開兩個文檔(A和B),然后使用NLTK將兩個文檔中的每個句子提取到list_a和list_b中(快速)。 從那里,我遍歷list_a中的每個句子,並將每個句子與list_b中的所有句子進行比較(慢速)。 如果兩個句子基於百分比相似,我會將相似的句子附加到results_list上,以供日后查看。

我用來比較兩個句子的代碼:

# Compare two sentences
def compare_sentences( sentences_a, sentences_b ):

    # Init our vectorizer
    vect = TfidfVectorizer( min_df = 1 )

    # Create our tfidf
    tfidf = vect.fit_transform( [ sentences_a, sentences_b ] )

    # Get an array of results
    results = ( tfidf * tfidf.T ).A

    # Return percentage float
    return float( '%.4f' % ( results[0][1] * 100 ) )

# end compare_sentences()

我已經看到許多有用的答案,它們描述了如何從一般意義上比較兩個文檔,但是我想找到一種解決方案,提供兩個文檔之間所有相似句子的列表。

我感謝您的幫助。

您是否配置了代碼? 這始終是優化的第一步。

話雖這么說,您當前正在初始化每對句子上的TfidfVectorizo​​r-如果您在一個文件中有m個句子,而在另一個文件中有n個句子,那就是m * n個初始化。 但是,該對象並不依賴於語句-您只需要執行一次,然后將其傳遞給函數。 那可能是一些難以捉摸的果實。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM