卜磊
(南京國圖信息產(chǎn)業(yè)有限公司,江蘇南京 210003)
新聞分類或者說對于任何文本的分類,都是將待分類的文本與被定義的某類文本做相似度計(jì)算。如果相似度很高,那么該文本就屬于此類。然而計(jì)算機(jī)本質(zhì)上是看不懂新聞的,它只是可以做快速的計(jì)算。余弦定理和新聞分類看似也毫無關(guān)聯(lián),可實(shí)際上卻有著緊密的聯(lián)系。本文將闡述如何運(yùn)用余弦定理讓計(jì)算機(jī)計(jì)算出文本的類別。此方法能夠快速準(zhǔn)確地分類新聞,相比于依靠人工進(jìn)行文本的編輯分類,將大大提高工作效率。
文章是依靠詞語來表達(dá)的,同類型的文章所包含的關(guān)鍵詞必定是類似的。反之,不同類型的文章所包含的關(guān)鍵詞則不太一樣。例如財經(jīng)類新聞,出現(xiàn)頻率很高的關(guān)鍵詞有:股票、利息、債券、基金、銀行、GDP、物價、上漲、同比、環(huán)比。而另一些關(guān)鍵詞,如明星、電影、檔期、喜劇、觀眾、票房、演員、角色等,幾乎不會出現(xiàn)在財經(jīng)類新聞之中。所以首先需要對文章進(jìn)行分詞處理,從而進(jìn)一步提取出能夠代表此類文章的關(guān)鍵詞。
中文分詞技術(shù)[1]是自然語言處理領(lǐng)域的關(guān)鍵技術(shù),人可以很容易地識別一句話中的詞語,但怎樣讓計(jì)算機(jī)也能識別呢?所用到的基本方法為分詞算法。分詞的算法[2]基本可以分成三個大類:基于字符串匹配的分詞算法、基于語義理解的分詞算法和基于統(tǒng)計(jì)的分詞算法。按照是否需要和詞語的詞性相結(jié)合,又可以細(xì)分為只做分詞的方法和分詞與詞性標(biāo)注相結(jié)合的方法。本文使用Ansj對文本進(jìn)行分詞處理,并且采用單純只做分詞的方法。Ansj 是一個基于N-Gram+CRF+HMM 的中文分詞算法,底層是由JAVA 語言實(shí)現(xiàn),屬于統(tǒng)計(jì)的分詞算法,分詞速度能夠達(dá)到每秒200 萬字左右。Ansj 目前所具備的功能有:中文分詞、詞性識別、關(guān)鍵詞提取、用戶自定義詞典、停用詞典、自動摘要、關(guān)鍵詞標(biāo)記等功能??梢栽谧匀徽Z言處理等多個方面使用,適用于對分詞準(zhǔn)確度要求很高的項(xiàng)目。Ansj會對語句進(jìn)行原子切分和全切分,并且這兩個操作是同時進(jìn)行的。原子是指短句中不可再分割的最小語素單位。例如,一個漢字就是一個原子。全切分的意思是把語句中的所有詞都找出來,只要是字典中有的就找出來。例如,“今天天氣真晴朗”這就話中所包含的詞有:今天、天氣、真、晴朗。一個文本可能擁有成百上千個詞語,哪些詞語能夠代表此文章呢?答案是“關(guān)鍵詞”。
正如上文所說,股票、基金、銀行、物價等詞匯能夠代表財經(jīng)類新聞;明星、電影、票房、檔期等詞匯能夠代表娛樂新聞。這些能夠代表新聞類別的詞語,稱為關(guān)鍵詞。假設(shè)人們和計(jì)算機(jī)一樣,不理解詞語的含義,如何通過統(tǒng)計(jì)學(xué)的概念來判斷某個詞語是否為關(guān)鍵詞呢。首先想到的是,如果有個詞在一篇文章中出現(xiàn)的次數(shù)很多,那么這個詞相對來說是重要的。可是如果這個詞也在其他類別的文章中大量出現(xiàn),那么這個詞就不是關(guān)鍵詞,因?yàn)槠洳痪哂写硇?。例如“天氣”“周一”“時間”“高興”等,諸如此類的詞在任何文章中都可能出現(xiàn),所以它們不具備成為關(guān)鍵詞的條件。準(zhǔn)確地提取出具有象征意義的關(guān)鍵詞,對文章的分類有著至關(guān)重要的作用。
TF-IDF(Term Frequency-Inverse Document Frequency),即詞頻-逆文件頻率[3]。用于評估某個字或詞語對于一個文本庫中的其中一份文件的重要程度[4]。字詞的重要性和它在文件中出現(xiàn)的次數(shù)成正比,但同時與它在語料庫中出現(xiàn)的頻率成反比。簡而言之,一個詞語在某篇文章中出現(xiàn)的次數(shù)越多,且在所有文本庫中出現(xiàn)的次數(shù)越少,就越能代表這篇文章。需要注意的是,一篇文章中出現(xiàn)最多的詞為“的”“是”“在”這一類最常用的詞,以及標(biāo)點(diǎn)符號。它們叫作“停用詞”(stop words),對結(jié)果的準(zhǔn)確性會產(chǎn)生很大影響,所以在做分詞時必須過濾掉。TF-IDF被公認(rèn)為是信息檢索中最重要的發(fā)明,在搜索、文本分類和其他相關(guān)領(lǐng)域有著廣泛的應(yīng)用。
詞頻計(jì)算公式:
逆文檔頻率計(jì)算公式:
TF-IDF計(jì)算公式:
TF-IDF=詞頻(TF)×逆文檔頻率(IDF)
本文將新聞分成社會、財經(jīng)、軍事、歷史文化、科技、汽車、房產(chǎn)、體育、娛樂、健康十個類別。通過網(wǎng)絡(luò)爬蟲技術(shù)爬取相應(yīng)類別文本各100 篇,建立共1000 篇文章的文本庫。通過上述TF-IDF算法計(jì)算出每個文本包含詞語的TF-IDF值,然后將同類別文本的關(guān)鍵詞進(jìn)行統(tǒng)計(jì),最終得出TF-IDF值最高的100個詞,即此類文本的關(guān)鍵詞。經(jīng)過實(shí)驗(yàn)驗(yàn)證,此方法獲得的類別關(guān)鍵詞準(zhǔn)確且全面,為下一步相似度的計(jì)算奠定了基礎(chǔ)。
上文中已經(jīng)獲得了能夠代表某類新聞的關(guān)鍵詞,即此類新聞TF-IDF排名前100的詞。例如財經(jīng)類新聞,100個關(guān)鍵詞為【經(jīng)濟(jì),消費(fèi),理財,股票,基金,...】。將財經(jīng)類新聞的特征向量[5-6](Feature Vector)定義為【1,1,1,1,1,...,1,1】。同理可以提取出待分類文章的關(guān)鍵詞,然后將此關(guān)鍵詞與類別關(guān)鍵詞做比對。如果出現(xiàn)在類別關(guān)鍵詞集合中,則相應(yīng)位置特征向量的值為1,否則為0。可能得到的結(jié)果是【1,0,0,1,...,1,1】,這樣就形成了兩個100維的向量。當(dāng)文本從文字變成了數(shù)字之后,就可以通過數(shù)學(xué)基本定理(余弦定理),來計(jì)算兩個向量之間的關(guān)系,即兩個文本的相識度。
余弦相似性指的是通過測量兩個向量夾角的余弦值來度量它們之間的相似性[7]。從兩個向量之間角度的余弦值可以確定兩個向量的距離,即向量所指的方向[8-9]。余弦相似度的值等于1 時,夾角為0 度,表示兩個向量具有相同的方向;余弦相似度的值等于0時,夾角為90度;余弦相似度的值等于-1時,夾角為180 度,這時兩個向量方向完全相反。在文本分類中,每個詞項(xiàng)被賦予不同的維度,而一個維度由一個向量表示,其各個維度上的值對應(yīng)于該詞項(xiàng)在文檔中出現(xiàn)的頻率。余弦相似度因此可以給出兩篇文檔在其主題方面的相似性。
假設(shè)A向量為【x1,y1】,B向量為【x2,y2】,那么它們的余弦相似度計(jì)算形式為:
余弦相似度的計(jì)算方法對n維向量也是成立的。假定A和B 是兩個n 維向量,A 是【A1,A2,...,An】,B 是【B1,B2,...,Bn】,則A與B的夾角余弦值等于:
余弦值越接近于1,就表明夾角越接近0度,也就是兩個向量越相似,從而得出待分類文本關(guān)鍵詞和類別關(guān)鍵詞用詞越接近。余弦定理就這樣通過新聞的特征向量和新聞分類聯(lián)系在了一起。
本文首先通過網(wǎng)絡(luò)爬蟲技術(shù)爬取不同類別的新聞文本,建立文本庫。然后通過TF-IDF算法統(tǒng)計(jì)得出不同類別新聞的關(guān)鍵詞。將待分類文本關(guān)鍵詞和類別關(guān)鍵詞生成特征向量,通過余弦定理計(jì)算出文本的相似度,從而得出新聞的類型。實(shí)踐證明此方法高效準(zhǔn)確,為新聞文本的自動分類提供了一種行之有效的方法。