劉旭東,蘇馬婧,朱廣宇
(華北計算機系統工程研究所,北京 100083)
如今世界各國都在大力發展自身的綜合實力,尤以信息技術為最。隨著人工智能時代的到來,許多國家都把情報工作的地位提高到了前所未有的高度,身處大數據環境下,無所不在的信息每分每秒都在產生數據,世界各國的用戶無時無刻不在產生海量信息的交互,數據量已經呈現一種爆炸的狀態。這些體積大、類型多的數據中有許多高價值的信息,關鍵在于能否及時發現并做出相應的決策,因此誰掌握了數據誰就掌握了先機。
同樣,正因為這些非結構化數據中包含了大量的情報,例如某些社交軟件與論壇中難免出現一些危及社會安定、公共安全的信息。而這些信息并沒有想象中那么容易分辨,其中常常有一些“行話”,比如“豬肉”常被暗指毒品。傳統文本分析很難對具有該性質的文本進行準確的分析。因此,收集和分析來自網絡的大量評論需要使用文本相似度和情感傾向分析技術,掌握這些信息對于有關部門在提前預警、降低風險、提高應變能力、打擊違法犯罪、維持社會安穩等方面有著很大的輔助作用。
不可否認的是,情報分析在大數據時代也面臨著非常嚴峻的挑戰。第一是如何準確穩定地獲取情報信息,第二是情報信息的分析與可視化,在數據量激增時如何維持信息的利用程度,是目前情報分析面臨的一大難題。
情報分析研究分為科技文獻研究、專業研究、綜合研究三個主要階段。情報分析方法包括邏輯學方法、數學法、系統分析方法、社會學方法、情報學方法和經濟學方法等[1]。本文針對海量文本中關鍵情報的提取分析,主要使用了文本相似度分析及情感傾向分析。
目前,文本相似度計算的方法越來越豐富,情感傾向分析的效果取得了一定進步。Zhang Shunxiang等[2]實現了一種基于情感字典的方法來更好地支持網絡監管工作。王春柳[3]等人從表面文本相似度計算方法、語義相似度計算方法兩方面進行研究分析,對最新成果進行了歸納總結。GOVINOARAJAN M[4]提出了一種混合遺傳算法與樸素貝葉斯的方法來進行情感分析,也取得了不錯的效果。李青松[5]認為基于傳統機器學習進行情感分析也是目前主流的方法,此類方法可以對多種特征建模并進行分類。通過在大量的語料庫上進行訓練,最終輸出的模型不僅能夠提取出特征詞之間的關系,而且能夠考慮到文本中隨機詞和詞共現的影響。
但如今面向多源非結構化的海量文本,僅僅依靠一種方法來對其進行分析難以精確提取出更為深層次情報。為了更好地解決這一問題,本文從數據的獲取、聚類、分析以及展示層面,提出并設計了一套流程化的多源情報分析系統,為當今情報分析提供一定的支撐。
情報分析是情報工作的核心環節,而內容分析作為最為直觀的表現形式,具有直觀的說服力。本系統建立在充足數據的基礎上,運用前沿的深度學習方法,通過管理篩選、綜合分析、推理對比等邏輯設定,使文本信息內容的分析系統化、綜合化、準確化,并形成多種類型的情報成果,為有關部門提前預警、有效打擊違法亂紀行為提供有力支撐。
完整的情報分析系統的體系結構模型采用分層設計,由下到上依次是數據層、業務邏輯層、界面展示層,如圖1所示。

圖1 情報分析系統體系結構模型
(1)在數據層,確定研究對象,包括分析目標、情報搜集與采集樣本。
(2)在業務邏輯層,一是制定標準,構建語料庫、停用詞典等;二是編碼,將采集到的文本數據轉化成文本向量;三是數據分析,使用自然語言處理相關的技術對文本向量進行處理,實現相似文本的推送、文本情感傾向的分析。
(3)結果分析,將上一步得到的分析結果在界面展示層進行相應的可視化。
接下來對各模塊用到的核心技術進行詳細闡述。
自然語言處理的基礎是各類自然語言處理數據集,如tc-corpus-train(語料庫訓練集)、面向文本分類研究的中英文新聞分類語料、以IG卡方等特征詞選擇方法生成的多維度ARFF格式中文VSM模型、用于非監督中文分詞算法的中文分詞詞庫、UCI評價排序數據、情感分析數據集等。
本文通過運用深度學習與其結合的方法對數據源的文本進行了較為透徹的分析。
目前比較常用的相似度分析方法是TF-IDF(Term Frequency-Inverse Document Frequency)和BM25(Best Matching 25)算法,用TF-IDF模型計算普通的文本相似度分析效果已經比較可信,但是在實際的中文文本里,用TF-IDF表示的向量維數可能是幾百、幾千數量級,不易分析計算。GUAN W提出一種基于VSM的改進文本相似度算法[6],JIAO Y提出基于樹結構的文本內容相似度計算[7]。此外一些文本的主題或者說中心思想并不可能完全地通過文本中的詞來表示。Bm25算法通常用來作搜索相關性評分,通過使用不同的語素分析方法及相關性判定方法來衍生出不同的相關性得分計算方法。而LDA(Latent Dirichlet Allocation)模型有效地解決了文本挖掘中的特征稀疏和分類性能受損問題,文本相似度分析基于LDA模型獲得了比較好的效果。
LDA主題模型是由BLEI等人提出的,其中“文本—主題—詞”LDA基于貝葉斯模型,模型圖如圖2所示。

圖2 LDA模型
假設有M篇文本,對應第d個文本中有Nd個詞,即輸入如圖3所示。

圖3 輸入
為了找到每一篇文本的主題分布和每一個主題中詞的分布,LDA假設文本主題的先驗分布是Dirichlet(狄利克雷)分布,即對于任一文本d,其主題分布θd為:

LDA假設主題中詞的先驗分布是Dirichlet分布,即對于任一主題k,其詞分布βk為:


核心算法如圖4和表1所示。

圖4 核心算法偽代碼

LDA算法算法輸入:分詞后的文本內容集(一般一篇文本一行)話題數K,超參數α和β算法輸出:1.每個文本的各個詞被指定的話題編號:topic.txt2. 每個文本的話題概率分布θ:theta.txt3. 每個話題下的詞概率分布Φ:varphi.txt4. 程序里詞語WORD的映射表:map.txt5.每個話題下Φ概率排序的TOPN特征詞:topn.txt
目前常見的情感傾向分析方法主要有兩種:基于情感詞典的方法和基于機器學習的方法。前者存在著非常明顯的缺點與局限性,比如段落的得分是其所有句子得分的平均值,這一方法并不符合實際情況;其次,有一類文本使用貶義詞來表示正向意義,尤其是在含有重要情報信息的文本中,如果使用情感詞典來判斷會出現與實際不相符的結果。ALSAQER A F等人提出了一種使用RapidMiner運算符的方法進行情感分析,一定程度提高了準確率[8]。使用深度學習的方法能更為有效地解決這類問題。
3.2.1 數據預處理
對數據庫中所有的評論進行分詞并去除停用詞。因為模型的輸入需要的是數據元組,所以需要將每條評論的詞語組合轉化為一個數值向量。目前常見的轉化算法有Bag of Words、TF-IDF、Word2Vec。Word2vec能快速構建詞語的詞向量形式,詞向量的每一維的值代表一定的語義和語法上解釋的特征,其核心框架包括CBOW和Skip-gram兩種訓練模式,CBOW依據上下文決定當前詞出現的概率,但短文本上下文信息缺失,此模式不適用。Skip-gram采用跳躍組合的方式學習詞項規則,更能適應短文本特征稀疏的需要[9]。
核心代碼如下:
def Word2Vecs(content):
vecs = []
for ct in content:
ct = ct.replace(' ','')
try:
vecs.append(model[ct])
except KeyError:
continue
return np.array(vecs,dtype='float')
3.2.2 構建模型
本系統使用的是Na?ve Bayes SVM(Support Vector Machine)+PCA(Principal Component Analysis)來構建模型,SVM分類表現更為寬松,且使用PCA降維后模型表現有明顯提升。
等式左邊代表的是一條評論的極性類型,P(cj)指該極性類型出現的概率,ΠP(wi|cj)指在當前極性條件下文本中各個詞出現的概率的乘積。
其中V就是當前訓練文本的詞匯量。
系統該模塊的流程圖如圖5所示:

圖5 流程圖
將語料進行分詞后轉化為向量并對結果進行標準化和PCA降維后,經SVM模型訓練,得到P(positive)、N(negative)、C(confidence)三元組信息。
在微博、推特上各篩選了2 000條評論,Tor上則選取了6 000條具有“行話”性質的評論文本用來測試,如表2所示。

表2 評測樣本數據集
常用模型的文本相似度計算的準確率對比結果如圖6所示。

圖6 常用模型文本相似度對比圖
從測試結果可以看出,Naive Bayes在文本相似度計算中取得的效果并不令人滿意;而TF-IDF則是中規中矩,但對于這些具有特定主題的文本的中心思想不能非常準確地反映;LDA模型很好地彌補了這方面的缺點,能更加精確地返回與話題最為相似的文本,取得了比較好的效果。
情感傾向分析結果如圖7所示。

圖7 分析結果

表3 特征選擇對比
從表3不難發現,在Na?ve Bayes+SVM模型中,特征選擇的三種技術對于微博、推特、Tor的數據集來說,Binary TF和TF-IDF在情感傾向分析特征選擇上的效果有所不足,而Word2Vec因其神經網絡的性質對于最終訓練出來的權重矩陣有著更好的效果,對于準確把握文本情感傾向起到了關鍵的作用。
實驗證明該系統的設計方法對情報信息的獲取、分析有較好的效果。
文本相似度和情感傾向分析是自然語言處理中的一些基礎性研究,有著比較悠久的歷史,近年來隨著深度學習神經網絡的發展,各個模型的性能都得到了一定程度的提高。
目前的研發成果可以表明,運用自然語言處理的方法計算文本相似度及情感傾向分析在一定程度上可以輔助情報分析人員進行數據的存儲、清洗、處理、分析和結果展示。對于情感分析來說只是僅僅完成情感極性的一個分類、語法分析的任務,本文構建的專用于行話信息的語料庫在正負面情感分析上取得了較為滿意的效果。但是如何做到讓機器對人類情感進行深入細膩的把握和分析,甚至是讓機器模仿、創造出人類的情感并與人類進行情感交互是情感分析領域需要更加深入研究的問題。