句子相似性計算

來源:互聯網
上載者:User

如何計算句子的語義相似性,很容易想到的是向量空間模型(VSM)和編輯距離的方法,比如A:“我爸是李剛”,B:“我兒子是李剛”,利用VSM方法A(我,爸,是,李剛)B(我,兒子,是,李剛),計算兩個向量的夾角餘弦值,不贅述;編輯距離就更好說了將“爸”,“兒子”分別替換掉,D(A,B)= replace_cost;

這是兩種相當呆的方法,屬於baseline中的baseline,換兩個例子看一下就知道A:“樓房如何建造?”,B:“高爾夫球怎麼打?”,C:“房子怎麼蓋?”,如果用VSM算很明顯由於B,C中有共同的詞“怎麼”,所以BC相似性高於AC;編輯距離同理;

解決這種問題方法也不難,只要通過同義字詞典對所有句子進行擴充,“如何”、“怎麼”,“樓房”、“房子”都是同義字或者近義詞,擴充後再算vsm或者edit distance對這一問題即可正解。這種方法一定程度上解決了召回率低的問題,但是擴充後引入雜訊在所難免,尤其若原句中含有多義詞時。例如:“打醬油”、“打毛衣”。在漢字中有些單字詞表達了相當多的意義,在董振東先生的知網(hownet)中對這種類型漢字有很好的語義關係解釋,通過hownet中詞語到義元的樹狀結構可以對對詞語粒度的形似度進行度量。

問題到這裡似乎得到了不錯的解答,但實際中遠遠不夠。VSM的方法把句子中的詞語看做相互獨立的特徵,忽略了句子序列關係、位置關係對句子語義的影響;Edit Distance考慮了句子中詞語循序關聯性,但是這種關係是機械的置換、移動、刪除、添加,實際中每個詞語表達了不同的資訊量,同樣的詞語在不同詞語組合中包含的資訊量或者說表達的語義資訊大不相同。What about 句法分析,計算句法樹的相似性?這個比前兩種方法更靠譜些,因為句法樹很好的描述了詞語在句子中的地位。實際效果要待實驗證實。

對了,還有一種方法translation model,IBM在機器翻譯領域的一大創舉,需要有大量的語料庫進行訓練才能得到理想的翻譯結果。當然包括中間詞語對齊結果,如果能夠利用web資源建立一個高品質的語料庫對兩兩相似句對通過EM迭代詞語對齊,由詞語對齊產生句子相似性,這個。。想想還是不錯的方法!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.