當前位置:成語大全網 - 漢語詞典 - 如何計算兩個句子的相似度

如何計算兩個句子的相似度

如何計算句子的語義相似度,很容易想到向量空間模型(VSM)和編輯距離法,比如A:“我爸是李剛”和B:“我兒子是李剛”,用VSM法A(我,爸爸,是的,李剛)B(我,兒子,是的,李剛)計算兩個向量的夾角余弦,就不贅述了;剪輯距離就更好了。分別替換“爸爸”和“兒子”,d (a,b)= replace _ cost;

這是兩個比較平淡的方法,屬於基線中的基線。看兩個例子就知道A:“怎麽蓋樓?”b:“高爾夫怎麽打?”丙:“房子怎麽建?”如果按VSM計算,很明顯BC比AC更相似,因為B和C同壹個字“怎麽樣”;編輯距離是壹樣的;

解決這個問題並不難,只要把所有的句子都通過同義詞詞典展開,“如何”、“如何”、“建築”、“房子”都是同義詞或近義詞,然後用vsm或編輯距離就可以解決這個問題。這種方法在壹定程度上解決了召回率低的問題,但擴展後不可避免地會引入噪聲,尤其是當原句包含多義詞時。比如:“醬油”“毛衣”。漢字中的壹些單字表達了相當多的意思。這類漢字在董振東先生的《知網》中有很好的語義關系。詞粒度的相似性可以通過知網中詞到義素的樹結構來度量。

這個問題在這裏似乎得到了很好的回答,但在實踐中還遠遠不夠。VSM把句子中的詞作為獨立的特征,忽略了句序和位置對句子語義的影響。編輯距離考慮的是句子中詞的順序關系,但這種關系是機械的替換、移動、刪除和添加。其實每個詞表達的信息是不同的,同壹個詞在不同的詞組合中包含不同的信息或者語義信息。句法分析呢,計算句法樹的相似度?這比前兩種方法更可靠,因為語法樹很好地描述了單詞在句子中的位置。實際效果需要通過實驗來證實。

對了,還有壹種方法,翻譯模型,這是IBM在機器翻譯領域的壹個創舉。要獲得理想的翻譯結果,需要大量的語料庫進行訓練。當然包括中間詞對齊的結果。如果能利用web資源建立壹個高質量的語料庫,通過EM叠代將相似句子對中的詞對齊,並從詞對齊中生成句子相似度,這。。想想還是個好辦法!