卜磊
(南京國圖信息產業有限公司,江蘇南京 210003)
新聞分類或者說對于任何文本的分類,都是將待分類的文本與被定義的某類文本做相似度計算。如果相似度很高,那么該文本就屬于此類。然而計算機本質上是看不懂新聞的,它只是可以做快速的計算。余弦定理和新聞分類看似也毫無關聯,可實際上卻有著緊密的聯系。本文將闡述如何運用余弦定理讓計算機計算出文本的類別。此方法能夠快速準確地分類新聞,相比于依靠人工進行文本的編輯分類,將大大提高工作效率。
文章是依靠詞語來表達的,同類型的文章所包含的關鍵詞必定是類似的。反之,不同類型的文章所包含的關鍵詞則不太一樣。例如財經類新聞,出現頻率很高的關鍵詞有:股票、利息、債券、基金、銀行、GDP、物價、上漲、同比、環比。而另一些關鍵詞,如明星、電影、檔期、喜劇、觀眾、票房、演員、角色等,幾乎不會出現在財經類新聞之中。所以首先需要對文章進行分詞處理,從而進一步提取出能夠代表此類文章的關鍵詞。
中文分詞技術[1]是自然語言處理領域的關鍵技術,人可以很容易地識別一句話中的詞語,但怎樣讓計算機也能識別呢?所用到的基本方法為分詞算法。分詞的算法[2]基本可以分成三個大類:基于字符串匹配的分詞算法、基于語義理解的分詞算法和基于統計的分詞算法。按照是否需要和詞語的詞性相結合,又可以細分為只做分詞的方法和分詞與詞性標注相結合的方法。本文使用Ansj對文本進行分詞處理,并且采用單純只做分詞的方法。Ansj 是一個基于N-Gram+CRF+HMM 的中文分詞算法,底層是由JAVA 語言實現,屬于統計的分詞算法,分詞速度能夠達到每秒200 萬字左右。Ansj 目前所具備的功能有:中文分詞、詞性識別、關鍵詞提取、用戶自定義詞典、停用詞典、自動摘要、關鍵詞標記等功能。可以在自然語言處理等多個方面使用,適用于對分詞準確度要求很高的項目。Ansj會對語句進行原子切分和全切分,并且這兩個操作是同時進行的。原子是指短句中不可再分割的最小語素單位。例如,一個漢字就是一個原子。全切分的意思是把語句中的所有詞都找出來,只要是字典中有的就找出來。例如,“今天天氣真晴朗”這就話中所包含的詞有:今天、天氣、真、晴朗。一個文本可能擁有成百上千個詞語,哪些詞語能夠代表此文章呢?答案是“關鍵詞”。
正如上文所說,股票、基金、銀行、物價等詞匯能夠代表財經類新聞;明星、電影、票房、檔期等詞匯能夠代表娛樂新聞。這些能夠代表新聞類別的詞語,稱為關鍵詞。假設人們和計算機一樣,不理解詞語的含義,如何通過統計學的概念來判斷某個詞語是否為關鍵詞呢。首先想到的是,如果有個詞在一篇文章中出現的次數很多,那么這個詞相對來說是重要的。可是如果這個詞也在其他類別的文章中大量出現,那么這個詞就不是關鍵詞,因為其不具有代表性。例如“天氣”“周一”“時間”“高興”等,諸如此類的詞在任何文章中都可能出現,所以它們不具備成為關鍵詞的條件。準確地提取出具有象征意義的關鍵詞,對文章的分類有著至關重要的作用。
TF-IDF(Term Frequency-Inverse Document Frequency),即詞頻-逆文件頻率[3]。用于評估某個字或詞語對于一個文本庫中的其中一份文件的重要程度[4]。字詞的重要性和它在文件中出現的次數成正比,但同時與它在語料庫中出現的頻率成反比。簡而言之,一個詞語在某篇文章中出現的次數越多,且在所有文本庫中出現的次數越少,就越能代表這篇文章。需要注意的是,一篇文章中出現最多的詞為“的”“是”“在”這一類最常用的詞,以及標點符號。它們叫作“停用詞”(stop words),對結果的準確性會產生很大影響,所以在做分詞時必須過濾掉。TF-IDF被公認為是信息檢索中最重要的發明,在搜索、文本分類和其他相關領域有著廣泛的應用。
詞頻計算公式:

逆文檔頻率計算公式:

TF-IDF計算公式:
TF-IDF=詞頻(TF)×逆文檔頻率(IDF)
本文將新聞分成社會、財經、軍事、歷史文化、科技、汽車、房產、體育、娛樂、健康十個類別。通過網絡爬蟲技術爬取相應類別文本各100 篇,建立共1000 篇文章的文本庫。通過上述TF-IDF算法計算出每個文本包含詞語的TF-IDF值,然后將同類別文本的關鍵詞進行統計,最終得出TF-IDF值最高的100個詞,即此類文本的關鍵詞。經過實驗驗證,此方法獲得的類別關鍵詞準確且全面,為下一步相似度的計算奠定了基礎。
上文中已經獲得了能夠代表某類新聞的關鍵詞,即此類新聞TF-IDF排名前100的詞。例如財經類新聞,100個關鍵詞為【經濟,消費,理財,股票,基金,...】。將財經類新聞的特征向量[5-6](Feature Vector)定義為【1,1,1,1,1,...,1,1】。同理可以提取出待分類文章的關鍵詞,然后將此關鍵詞與類別關鍵詞做比對。如果出現在類別關鍵詞集合中,則相應位置特征向量的值為1,否則為0。可能得到的結果是【1,0,0,1,...,1,1】,這樣就形成了兩個100維的向量。當文本從文字變成了數字之后,就可以通過數學基本定理(余弦定理),來計算兩個向量之間的關系,即兩個文本的相識度。
余弦相似性指的是通過測量兩個向量夾角的余弦值來度量它們之間的相似性[7]。從兩個向量之間角度的余弦值可以確定兩個向量的距離,即向量所指的方向[8-9]。余弦相似度的值等于1 時,夾角為0 度,表示兩個向量具有相同的方向;余弦相似度的值等于0時,夾角為90度;余弦相似度的值等于-1時,夾角為180 度,這時兩個向量方向完全相反。在文本分類中,每個詞項被賦予不同的維度,而一個維度由一個向量表示,其各個維度上的值對應于該詞項在文檔中出現的頻率。余弦相似度因此可以給出兩篇文檔在其主題方面的相似性。
假設A向量為【x1,y1】,B向量為【x2,y2】,那么它們的余弦相似度計算形式為:

余弦相似度的計算方法對n維向量也是成立的。假定A和B 是兩個n 維向量,A 是【A1,A2,...,An】,B 是【B1,B2,...,Bn】,則A與B的夾角余弦值等于:

余弦值越接近于1,就表明夾角越接近0度,也就是兩個向量越相似,從而得出待分類文本關鍵詞和類別關鍵詞用詞越接近。余弦定理就這樣通過新聞的特征向量和新聞分類聯系在了一起。
本文首先通過網絡爬蟲技術爬取不同類別的新聞文本,建立文本庫。然后通過TF-IDF算法統計得出不同類別新聞的關鍵詞。將待分類文本關鍵詞和類別關鍵詞生成特征向量,通過余弦定理計算出文本的相似度,從而得出新聞的類型。實踐證明此方法高效準確,為新聞文本的自動分類提供了一種行之有效的方法。