余弦定理和新聞的分類似乎是兩件八桿子打不著的事,但是它們確有緊密的聯(lián)系。具體說,新聞的分類很大程度上依靠余弦定理。

Google 的新聞是自動分類和整理的。所謂新聞的分類無非是要把相似的新聞放到一類中。計算機其實讀不懂新聞,它只能快速計算。這就要求我們設(shè)計一個算法來算出任意兩篇新聞的相似性。為了做到這一點,我們需要想辦法用一組數(shù)字來描述一篇新聞。

我們來看看怎樣找一組數(shù)字,或者說一個向量來描述一篇新聞?;貞浺幌挛覀冊?#8220;如何度量網(wǎng)頁相關(guān)性”一文中介紹的TF/IDF 的概念。對于一篇新聞中的所有實詞,我們可以計算出它們的單文本詞匯頻率/逆文本頻率值(TF/IDF)。不難想象,和新聞主題有關(guān)的那些實詞頻率高,TF/IDF 值很大。我們按照這些實詞在詞匯表的位置對它們的 TF/IDF 值排序。比如,詞匯表有六萬四千個詞,分別為

單詞編號 漢字詞
------------------
1 阿
2 啊
3 阿斗
4 阿姨
...
789 服裝
....
64000 做作

在一篇新聞中,這 64,000 個詞的 TF/IDF 值分別為

單詞編號 TF/IDF 值
==============
1 0
2 0.0034
3 0
4 0.00052
5 0
...
789 0.034
...
64000 0.075


如果單詞表中的某個次在新聞中沒有出現(xiàn),對應(yīng)的值為零,那么這 64,000 個數(shù),組成一個64,000維的向量。我們就用這個向量來代表這篇新聞,并成為新聞的特征向量。如果兩篇新聞的特征向量相近,則對應(yīng)的新聞內(nèi)容相似,它們應(yīng)當歸在一類,反之亦然。

學過向量代數(shù)的人都知道,向量實際上是多維空間中有方向的線段。如果兩個向量的方向一致,即夾角接近零,那么這兩個向量就相近。而要確定兩個向量方向是否一致,這就要用到余弦定理計算向量的夾角了。

余弦定理對我們每個人都不陌生,它描述了三角形中任何一個夾角和三個邊的關(guān)系,換句話說,給定三角形的三條邊,我們可以用余弦定理求出三角形各個角的角度。假定三角形的三條邊為 a, b 和 c,對應(yīng)的三個角為 A, B 和 C,那么角 A 的余弦 --



如果我們將三角形的兩邊 b 和 c 看成是兩個向量,那么上述公式等價于



其中分母表示兩個向量 b 和 c 的長度,分子表示兩個向量的內(nèi)積。舉一個具體的例子,假如新聞 X 和新聞 Y 對應(yīng)向量分別是
x1,x2,...,x64000 和
y1,y2,...,y64000,
那么它們夾角的余弦等于,



當兩條新聞向量夾角的余弦等于一時,這兩條新聞完全重復(用這個辦法可以刪除重復的網(wǎng)頁);當夾角的余弦接近于一時,兩條新聞相似,從而可以歸成一類;夾角的余弦越小,兩條新聞越不相關(guān)。



我們在中學學習余弦定理時,恐怕很難想象它可以用來對新聞進行分類。在這里,我們再一次看到數(shù)學工具的用途。