孫飛 謝旭升
【摘要】本文是基于瑤湖論壇的關(guān)鍵字搜索應(yīng)用,在進(jìn)行文本的選擇與分詞、關(guān)鍵字權(quán)重的計(jì)算、文本向量空間模型的表示和帖子分類(lèi)算法的選擇上都充分考慮了論壇的性質(zhì),并且在分詞時(shí)增加了人工干預(yù)的形式,使得更好的滿(mǎn)足論壇的需要。
【關(guān)鍵詞】關(guān)鍵字搜索;中文分詞;文本聚類(lèi)
1.引言
隨著科技的發(fā)展,計(jì)算機(jī)技術(shù)的應(yīng)用也越來(lái)越普及,中文分詞、文本分類(lèi),信息檢索等各項(xiàng)技術(shù)在各大搜索引擎公司都得到了很好的應(yīng)用,但是商業(yè)引擎的處理信息量大,處理文本的信息各種各樣,它們有很強(qiáng)的通用性,但對(duì)于特定的領(lǐng)域或者特定信息空間的處理確有很大的提升空間[1]。本文基于瑤湖論壇,根據(jù)論壇的特點(diǎn),在文本的分詞、文本的向量模型表示、文本分類(lèi)算法的選擇等方面都因地制宜的進(jìn)行了改動(dòng),以期望達(dá)到更好的效果。
2.文本的分詞與關(guān)鍵字權(quán)重的計(jì)算
2.1 文本內(nèi)容的選取
提取計(jì)算帖子中關(guān)鍵字對(duì)帖子內(nèi)容而言所承載的信息量,和建立帖子空間向量模型的第一步是對(duì)帖子文本內(nèi)容進(jìn)行分詞。在文本內(nèi)容的選取上,充分考慮到論壇中帖子的語(yǔ)言表達(dá)方式基于學(xué)生生活用語(yǔ),并且帖子的文本篇幅長(zhǎng)度較短,同時(shí)對(duì)于帖子的回帖,其內(nèi)容較為固定和單一,帖子之間的區(qū)分度不高,噪聲較大。所以只將帖子的標(biāo)題和帖子的內(nèi)容作為帖子的文本信息進(jìn)行分詞。
2.2 分詞工具的選擇
我們將IK Analyzer作為分詞工具對(duì)取得的文本信息進(jìn)行處理,IK Analyzer是一個(gè)開(kāi)源的,基于java語(yǔ)言開(kāi)發(fā)的輕量級(jí)的中文分詞工具包。從2006年12月推出1.0版開(kāi)始,IKAnalyzer已經(jīng)推出了4個(gè)大版本。最初,它是以開(kāi)源項(xiàng)目Luence為應(yīng)用主體的,結(jié)合詞典分詞和文法分析算法的中文分詞組件。從3.0版本開(kāi)始,IKAnalyzer發(fā)展為面向Java的公用分詞組件,獨(dú)立于Lucene項(xiàng)目,同時(shí)提供了對(duì)Lucene的默認(rèn)優(yōu)化實(shí)現(xiàn)。在2012版本中,IKAnalyzer實(shí)現(xiàn)了簡(jiǎn)單的分詞歧義排除算法,采用了特有的“正向迭代最細(xì)粒度切分算法”,支持細(xì)粒度和智能分詞兩種切分模式,詞典支持中文、英文、數(shù)字混合詞語(yǔ)。
2.3 關(guān)鍵字權(quán)重的計(jì)算
查詢(xún)中每一個(gè)關(guān)鍵字的權(quán)重應(yīng)該反映這個(gè)詞對(duì)于查詢(xún)來(lái)講提供了多少信息,搜索關(guān)鍵字權(quán)重的科學(xué)度量是TF-IDF。其主要思想是:如果某個(gè)詞或短語(yǔ)在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn),則認(rèn)為此詞或者短語(yǔ)具有很好的類(lèi)別區(qū)分能力,適合用來(lái)分類(lèi)。TF-IDF實(shí)際上是:TF×IDF,TF詞頻(Term Frequency),IDF逆向文件頻率(Inverse Document Frequency)。TF表示詞條在文檔d中出現(xiàn)的頻率。IDF的主要思想是:如果包含詞條t的文檔越少,也就是n越小,IDF越大,則說(shuō)明詞條t具有很好的類(lèi)別區(qū)分能力。一篇帖子中關(guān)鍵字的權(quán)重公式如公式(1)所示。
(1)
其中|D|為語(yǔ)料庫(kù)中的文件總數(shù),表示包含詞語(yǔ)ti的文件數(shù)目(即的文件數(shù)目)如果該詞語(yǔ)不在語(yǔ)料庫(kù)中,就會(huì)導(dǎo)致被除數(shù)為零,因此一般情況下使用都會(huì)加上1。并且由于文本長(zhǎng)度的不同進(jìn)行了歸一化處理。
2.4 分詞與關(guān)鍵字權(quán)重中的人工干預(yù)
由于中文特殊的語(yǔ)言語(yǔ)境模式,雖然中文分詞已經(jīng)取得很大的發(fā)展,但是但無(wú)論按照人的智力標(biāo)準(zhǔn),還是同實(shí)用的需要相比較,差距還很大。為了彌補(bǔ)機(jī)器分詞的不足,我們先將文本內(nèi)容進(jìn)行分詞并計(jì)算出每個(gè)詞語(yǔ)的IDF值,將IDF值大于一定閾值的設(shè)為關(guān)鍵字,存入關(guān)鍵字表,將IDF值小于一定閾值的設(shè)為停止詞,這些詞大部分是沒(méi)有意義的虛詞。并且提供了可以通過(guò)的導(dǎo)入關(guān)鍵字詞典和停止詞典及修改詞典的方式來(lái)輔助分詞器在分詞時(shí)判斷哪些詞可以作為關(guān)鍵字,并且將停止詞典中的詞語(yǔ)作為無(wú)意義的詞而忽略掉。其后臺(tái)處理界面如圖1所示。
圖1 后臺(tái)處理界面
3.文本向量空間模型的建立與分類(lèi)
3.1 文本向量空間模型的建立
最常用的文本表示模型是G..Salton在1975年提出的向量空間模型(VectorSpaceModel),其基本思想是把文本d看作向量空間中的一個(gè)n維向量(w1,w2,w3...wn),其中w1,w2,...wn為表示該文本的n個(gè)特征所對(duì)應(yīng)的權(quán)重,一般取為詞頻的函數(shù)。文本分類(lèi)的第一步是對(duì)文本集進(jìn)行基于詞典的分詞處理。由于通用的的詞典收錄詞條數(shù)共有116921,如果把每個(gè)帖子表示成一個(gè)116921維的向量,由于帖子文本內(nèi)容較少且語(yǔ)言較為生活化,所以很多詞語(yǔ)都不會(huì)在帖子中出現(xiàn),導(dǎo)致生成的向量極為稀疏,浪費(fèi)的存儲(chǔ)空間,影響了分類(lèi)時(shí)的計(jì)算效率和分類(lèi)精度,所以要進(jìn)行文本的特征選擇[2]。
常用的文本特征選擇的方法有很多,如信息增益、期望交叉熵、互信息、文檔頻率[3],其核心都是基于信息論,基本思想都是對(duì)每一個(gè)特征中文詞,計(jì)算某種統(tǒng)計(jì)度量值,然后設(shè)定一個(gè)閾值T,把度量值小于T的那些特征過(guò)濾掉,剩下的即認(rèn)為是有效特征。我們第二小節(jié)已經(jīng)做了相關(guān)的工作[4],通過(guò)設(shè)置停止詞典的方式,在分詞時(shí)忽略了很多沒(méi)有意義的虛詞,有效的降低了文本向量的維度。將帖子文本的結(jié)果按照“關(guān)鍵字=tfidf值”的形式表示成空間向量存入SQL Server數(shù)據(jù)庫(kù)中。部分?jǐn)?shù)據(jù)如圖2所示。
圖2 帖子的向量空間模型的存儲(chǔ)
3.2 帖子文本的聚類(lèi)
將主題內(nèi)容相似的帖子分成一類(lèi),實(shí)現(xiàn)上認(rèn)為同一類(lèi)的帖子含有的相同的關(guān)鍵字就較多。以此思想對(duì)帖子進(jìn)行分類(lèi)。帖子的相似度就表示為兩個(gè)帖子的余弦值,既有:
(2)
圖3 帖子之間的余弦值
通過(guò)對(duì)論壇的一定帖子之間余弦值的計(jì)算和前期人工類(lèi)別的核實(shí)發(fā)現(xiàn)當(dāng)閾值大于0.18時(shí),帖子之間表現(xiàn)出了一定的相關(guān)性。部分?jǐn)?shù)據(jù)如圖3所示。
文本分類(lèi)是事先定義好類(lèi)別,類(lèi)別數(shù)不變。分類(lèi)器需要由人工標(biāo)注的分類(lèi)訓(xùn)練語(yǔ)料訓(xùn)練得到,由于論壇中帖子的文本內(nèi)容隨意且文本長(zhǎng)度較短,單一類(lèi)型的特征向量難以確定,類(lèi)別數(shù)也不好判斷,所以我們使用聚類(lèi)的方法來(lái)處理,將比較相似的文章或文本信息歸為同一組。文本的聚類(lèi)算法采用K-means算法,是很典型的基于距離的聚類(lèi)算法,采用距離作為相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象的距離越近,其相似度就越大[5]。算法過(guò)程如下:
(1)從n個(gè)數(shù)據(jù)對(duì)象任意選擇k個(gè)對(duì)象作為初始聚類(lèi)中心。
(2)根據(jù)每個(gè)聚類(lèi)對(duì)象的均值(中心對(duì)象),計(jì)算每個(gè)對(duì)象與這些中心對(duì)象的距離;并根據(jù)最小距離重新對(duì)相應(yīng)對(duì)象進(jìn)行劃分。
(3)重新計(jì)算每個(gè)(有變化)聚類(lèi)的均值(中心對(duì)象)。
(4)循環(huán)(2)到(3)直到每個(gè)聚類(lèi)不再發(fā)生變化為止。
根據(jù)上面的理論基礎(chǔ),在NetBeans平臺(tái)下用java實(shí)現(xiàn)了該系統(tǒng)的的相關(guān)功能,界面截圖如圖4所示。
圖4 關(guān)鍵字搜索界面
4.結(jié)束語(yǔ)
本文的應(yīng)用是基于特定的論壇,在系統(tǒng)實(shí)施的每個(gè)方面如文本的分詞、關(guān)鍵字權(quán)重的計(jì)算、文本向量空間模型的建立、分類(lèi)算法的選擇都充分的考慮的論壇的性質(zhì),并且增加了人工干預(yù)的方式,使得應(yīng)用更加靈活和準(zhǔn)確。但是限于原始帖子的測(cè)試數(shù)據(jù)較小,從論壇抓取的數(shù)據(jù)類(lèi)型還不夠多樣,導(dǎo)致在帖子分類(lèi)算法的選擇上沒(méi)有提供很好的參照。系統(tǒng)的完善和改進(jìn)將是我們下一步的工作。
參考文獻(xiàn)
[1]李銀松,施水才等.用戶(hù)興趣分類(lèi)在個(gè)性化搜索引擎中的應(yīng)用[J].情報(bào)學(xué)報(bào),2008,27(4):535-540.
[2]孫建濤.Web挖掘中的降維和分類(lèi)方法研究.北京:清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,2005.
[3]YangYiming,Pederson J O.AComparative Study on Feature Selection inText Categorization[A].Proceedings of the 14th International Conference on Machine learning[C].Nashville:Morgan Kaufmann,1997:412-420.
[4]余俊英.文本分類(lèi)中特征選擇的研究.江西:江西師范大學(xué)計(jì)算機(jī)信息工程院,2007,36(l):35-41.
[5]姚明宇,皮德常等.基于k-means的中文文本聚類(lèi)算法[A].Proceedings of 2010 International Conference on Services Science,Management and Engineering(Volume 2)[C].2010.
作者簡(jiǎn)介:
孫飛(1988—),男,江蘇人,碩士研究生,現(xiàn)就讀于江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院。
謝旭升(1963—),男,江西人,教授,現(xiàn)供職于江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院,主要研究方向:分布式數(shù)據(jù)庫(kù)。