[英]Find similar sentences in between two documents and calculate similarity score for each section in whole documents
[英]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()
我已經看到許多有用的答案,它們描述了如何從一般意義上比較兩個文檔,但是我想找到一種解決方案,提供兩個文檔之間所有相似句子的列表。
我感謝您的幫助。
您是否配置了代碼? 這始終是優化的第一步。
話雖這么說,您當前正在初始化每對句子上的TfidfVectorizor-如果您在一個文件中有m個句子,而在另一個文件中有n個句子,那就是m * n個初始化。 但是,該對象並不依賴於語句-您只需要執行一次,然后將其傳遞給函數。 那可能是一些難以捉摸的果實。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.