郭英杰 千博
摘要:當前人類處于信息爆炸的時代,對于海量的文本數(shù)據(jù),可以利用人工智能的工具來提高數(shù)據(jù)分析處理的效率,來挖掘海量數(shù)據(jù)的寶藏。文章主要對文本的主題分類算法進行研究,通過改進分類方法并提出可視化方案,使主題分類具有更好的應用價值。首先通過利用LDA主題分類算法進行處理,并提出了一些改進方法使分類效果更優(yōu),并最終生成可視化的主題分類結果,進而用于推薦系統(tǒng)、數(shù)據(jù)挖掘、數(shù)據(jù)分析等領域。
關鍵詞:自然語言處理:主題分類;數(shù)據(jù)可視化
自然語言處理是機器學習中的熱門領域,隨著Internet上數(shù)據(jù)產出的速度越來越快,文本挖掘廣泛用于特征抽取、語義關系挖掘、文本聚類等領域,并且在實踐的基礎上對文本挖掘的算法進行了豐富的研究和改進。本文給出一個基于文檔主題生成模型(Latent Dirichlet Allocation,LDA)的主題挖掘的完整應用,通過爬蟲來抓取特定網站的數(shù)據(jù),在數(shù)據(jù)預處理(包括分詞、去停用詞、詞頻計算、特征向量化)后,利用LDA主題分類算法進行處理,并通過對分類過程優(yōu)化和算法改進,得到良好的主題分類效果,最終利用玫瑰圖等可視化方式推送給用戶,進而將結果利用在知識存儲、推薦系統(tǒng)、數(shù)據(jù)分析等場景。本文最后以某老人健康網站為例,應用該系統(tǒng)展示分類效果。
1 數(shù)據(jù)采集與預處理
1.1獲取數(shù)據(jù)源
獲取數(shù)據(jù)源的方式多種多樣,為了面向數(shù)據(jù)不斷積累的互聯(lián)網,本節(jié)設計了爬蟲組件來靈活獲取數(shù)據(jù)源。爬蟲[1],是按照一定規(guī)則來自動抓取萬維網信息的程序或者腳本,是獲取信息的有效方式之一。本文設計了基于雙阻塞隊列的并行化爬蟲策略,對某老人健康網站持續(xù)爬取,截至當前積累了16 430篇有關老人養(yǎng)老、健康等方面的文章。
1.2文本預處理
對于文本預處理來說,首先需要對文本分詞,對于中文的分詞處理比拉丁系語言難度更大。和大部分西方語言不同,書面漢語的詞語之間沒有明顯的空格標記,句子是以字串的形式出現(xiàn)。把字串變?yōu)樵~串難點在與消除歧義[2],本文使用Jieba分析系統(tǒng),其python版本最高可以完成1.5 MB每秒的分詞速度。
其次對于原始文本來說,帶有很多噪聲,這時運用停用詞過濾的技術進行文本預處理[3]。停用詞除了不會讓日常用詞等噪聲影響分析結果外,同時也極大降低了計算規(guī)模。預處理的最后一步,就是建立詞袋模型,這是對語料集的特征向量化,為隨后的計算做準備。
2 文本主題分類
2.1 LDA主題模型
LDA為3層貝葉斯概率模型[4],包含文章、主題、詞語3層結構,一種無監(jiān)督的機器學習算法。在LDA中,主題是指在文本集合內具有隱含相關性的詞語的組合,適用于文字信息的提煉和歸納。LDA建模過程的概率圖模型如圖l所示,其中,陰影部分里的圓圈表示觀測變量,陰影外的圓圈表示隱含變量,箭頭表示變量之間的關聯(lián)。
LDA主題建模的核心思想認為,一篇文檔的生成是一個“以一定概率選擇了某個主題,并從這個主題中以一定概率選擇某個詞語”的過程。在LDA中參數(shù)αfalse和βfalse由用戶憑經驗事先給定,LDA的概率圖模型可以得到聯(lián)合分布率公式:
求解的常用方法包含EM算法、Gibbs抽樣法等。本文采用Gibbs抽樣法[5],其核心思想為每次只排除當前維度,然后給定其他維度的變量值采樣,再用這些采樣來估算出當前維度的值。不斷重復迭代上述過程直到收斂,得到待估參數(shù)。
2.2用TF-IDF改進系統(tǒng)
對于LDA來說,可以發(fā)現(xiàn)潛在的主題,但是在分析過程中會有很大的噪聲,這些噪聲并不是常見的停用詞,而是一些在文檔中出現(xiàn)的某些干擾詞,所以需要從“大局觀”的角度來去除燥聲,而TF_IDF[6]在這計算詞匯重要度方面表現(xiàn)優(yōu)異,可以通過對文檔集進行非重要詞過濾,同時保留重要度最高的那部分即可。
3 數(shù)據(jù)分析
3.1主題分類結果
本文系統(tǒng)使用python開發(fā),其中算法部分利用scikit-learn和numpy等開源框架實現(xiàn),可視化部分利用G2[7]提供的工具。并利用采集的16 430個相關文章作為原始語料,進行分析處理和結果展示。對語料分為10個主題分析,并展示每類主題前8個關鍵詞(見表2)。
3.2數(shù)據(jù)可視化
“一圖勝干言”是數(shù)據(jù)可視化[8]在數(shù)據(jù)分析等領域作用的簡短體現(xiàn),便于我們得知其中隱藏的各種聯(lián)系,進而便于展示和做出決策。主題分類輸出的南丁格爾玫瑰圖可視化結果如圖2所示,可以推斷出在該網站上,老人的飲食結構和心腦疾病是最受關注的,老人保健和運動相關主題其次。
4 結語
本文通過運用分詞、停用詞過濾、數(shù)據(jù)可視化等手段建立了基于LDA算法對互聯(lián)網數(shù)據(jù)進行主題分類系統(tǒng),通過對大量文本數(shù)據(jù)的主題模型建立,可以分析主題趨勢和用戶關注點。在大數(shù)據(jù)場景下,分布式處理是提高效率的有效手段,今后可以利用spark等開源分布式處理軟件,提高本系統(tǒng)應對互聯(lián)網海量數(shù)據(jù)的能力。