[文本語義相似] 基於編輯距離相似度

文本相似在問答系統中有很重要的應用,如基於知識的問答系統(Knowledge-based QA),基於文檔的問答系統(Documen-based QA),以及基於FAQ的問答系統(Community-QA)等。像 對於問題的內容,需要進行相似度匹配,從而選擇出與問題最接近,同時最合理的答案。本節介紹 基於編輯距離相似度。

 

算法描述:一個句子轉換爲另一個句子需要的編輯次數,編輯包括刪除、替換、添加,然後使用最長句子的長度歸一化得相似度。

 

import Levenshtein  # 第三方庫實現

def edit_sim(s1, s2):
    maxLen = max(len(s1), len(s2))
    dis = Levenshtein.distance(s1, s2)
    sim = 1 - dis * 1.0 / maxLen
    return sim

word1 = '這是什麼'
word2 = '這個什麼價錢'
word_sim = edit_sim( word1, word2 )

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章