1. 程式人生 > >中文句子相似度計算思路

中文句子相似度計算思路

這裡主要面向初學者介紹句子相似度目前主流的研究方向。

從詞到句子,這是目前中文相似度計算的主要思想。而由這個-思想引申出來的演算法卻非常多,這裡面向初學者介紹比較容易實現的方法。

這裡要介紹的是二分法計算句子相似度。這個演算法實現簡單,思路清晰由此出現的技術分類變化萬千,主要的變化是分組,也成為分集合。二分法的思想是:集合一和集合二是兩個詞的集合,集合一的每一個詞與集合二的每一個詞求相似度,找出最大的一個來相加,然後反過來,集合二到集合一求相似度,找出最大的相加。這樣就得到一個相似度的和,這個值再除以所有詞的個數就形成二分法求相似度了。這裡解釋兩個問題,第一個就是為什麼要反過來求一次,其實就是怕兩個集合個數不相同,會引發誤差。第二個問題,為什麼說變化相當多,有些讀者已經想到了,怎麼劃分集合一和集合二!這是一個大問題,把一個句子劃分為多個集合,這裡面的演算法會非常複雜也是現在研究的重點之一,這裡提供兩個思路。

思路一,權重。通過各種方法劃分每個詞在句子中的權重,最典型的代表就是把提取到的關鍵詞作為一個集合,其他的所有詞作為一個集合。

思路二,地位。通過判斷詞語在當前句子中的地位,處於相同地位的詞分別作為一個集合。最簡單的例子就是,把所有名字作為集合,動作作為集合等等進行計算。

詞到句子,這是一種基於語義的計算方法。另一種剛剛起步的就是基於語法的相似度計算方法。

這種方法在目前來看是很有前景的研究方向,因為在日常用語中不會出現太過複雜的句子結構,不同語義的句子往往語法上有不小的差別,語義差距越大語法差異越大,因此在處理日常會話中語法相似度就有著令人驚異的處理效率和處理準確度。這方面還處於剛剛起步的階段,研究也多是基礎性的,成熟的思想不多論文也很少。給出一點簡單的例子,例如詞序相似度和詞型相似度。這種相似度可靠性不高屬於基礎性,有興趣的可以繼續探索。越是空白領域更容易出成果。