鄭偉 王若怡 馬林 李明 王喆
[摘 要]KNN算法是模式識別領域中的一種常用算法,具有簡單有效、無須估計參數等優點。本文針對訓練樣本的不規則性,分析了相似度權重的KNN算法,并將該算法應用于網絡輿情的識別實驗中,旨在為研究KNN算法提供借鑒。實驗結果表明:KNN算法用相似度作為權重能夠有效提高輿情識別質量。
[關鍵詞]輿情;KNN算法;準確率
doi:10.3969/j.issn.1673 - 0194.2019.06.074
[中圖分類號]TP391[文獻標識碼]A[文章編號]1673-0194(2019)06-0-02
0? ? ?引 言
現實生活中的熱點、焦點問題會引發廣大網民關注,同時民眾會通過網絡媒體轉發并發表相關意見。輿情就是大量民眾集中的意見表述與訴求,網絡輿情識別與預警對于輿情工作尤為重要,如有關部門提前發現輿情的源頭或預測可能產生的現實危機,可以提早判斷輿論走向,可以通過多部門聯動做好輿論引導和應對突發事件的準備。輿情預警是否及時決定了后續輿情處理效果的好壞,如何有效地從海量的互聯網言論中及時發現一些潛在的存在危機的輿論導向對維護社會安定尤為重要。目前,輿情識別技術除日常監測外還有以下技術,如主題提取、情感分析、話題聚類和話題跟蹤等。
近年來,一些研究者做了一些與輿情識別新技術有關的研究。例如:王珍從社會網絡的角度詳細分析了輿情的監測和預警方法;田殷姿提出了一種挖掘搜索引擎日志內容的輿情監測方法,并通過實踐獲得了較好的預警效果;劉勘 等提出一種基于支持向量的真假輿情識別方法;趙靜嫻針對輿情的識別問題,提出一種基于組合優化決策樹的偽輿情識別方法。本文主要研究了KNN算法下的網絡輿情識別及分類,并嘗試在KNN中采用相似度作為權重參與計算。
1? ? ?經典KNN算法
經典KNN(K-Nearest Neighbor)是一種基于統計的分類算法,原理簡單、編程易理解,在各個領域應用廣泛。很多研究者對其進行了不同程度的改進,在分類、推薦與模式識別方向取得了較好的效果。KNN算法的思想在分類時采用投票原則,即少數服從多數原則;通過某種測量手段測量未知樣本的K個近鄰數,統計K個近鄰大多數屬于的類別,算法如下。
(1)已知訓練樣本集合K={K1,K2,…,Km},訓練集合中樣本的數目,m、n為類別數目。
(2)設定待測樣本的最近鄰數目值k。
(3)樣本間的相似程度采用余弦相似度進行測量,測度值用s表示。
(4)每個待測樣本用Z表示。①計算m個測度值并使用排序算法對其進行排序,排序后為:s1,s2,…,sk,sK+1,…,sm。②取出其相似度最高的K個樣本,然后遵守投票規則進行待測樣本Z的類別值判定,Z類別值為得票數最多的那個類別。
2? ? ?加權重KNN算法
針對K值的不易確定性、訓練樣本的不均勻性,KNN算法采用一種相似度加權的KNN算法,該算法在分類時可以有效體現類別代表樣本的重要性,修改后的算法流程如下。
(1)已知訓練樣本集合K={K1,K2,…,Km},m為訓練樣本數目,n為類別數。(2)樣本間的相似程度采用余弦相似度進行測量,測度值用s表示。
(3)每個待測樣本Z的計算如下:①依次計算樣本X與訓練樣本的余弦相似度si,其中i∈[1,n];②計算X的K個最近鄰的相似值{s1,s2,…,sk};③使用式(1)判別樣本X的類別,其中wk=sk,y?取最大值時所對應的類別為樣本最終對應的分類類別。
3? ? ?文本特征提取方法
向量空間模型常用文本向量表示,文本中的代表特征提取也稱特征選擇,通過構造一個評估算法,對待評估的文本特征進行打分,通過預設的閾值篩選出合適的詞條作為文本樣本的特征。目前,常用的特征評估函數有下列幾種形式:信息增益(IG)、互信息(MI)、χ2統計(CHI)、文本證據權(WET)、期望交叉熵(CE)等。周茜對上述常用的特征選擇方法進行了研究,研究發現IG、χ2、WET法的效果較佳。
3.1? ? 信息增益(IG)
信息增益是信息論的一種信息計算公式,可以衡量特征出現時類別的貢獻度,n個類別的信息增益值需要累加。IG的定義如下。
其中,t與t分別表示特征的出現與不出現,ci表示第i個類別。
3.2? ?文本證據權(Weight of Evid Txt)
一個類別出現的概率與某個特征出現的概率關系可以通過條件概率之間的差別進行表示,定義如下。
3.3? ?χ2估計(CHI)
CHI可以有效衡量特征詞t與類c之間的依存關系,特征t的CHI計算值為零,表示特征t與類別c之間相互獨立。對于類別c,特征t的CHI估計定義如下。
4? ? ?基于KNN算法的輿情分類實驗
表1顯示的是使用經典KNN分類算法取不同K值時的分類結果。在京東網上商城下載關于某型號數碼相機的網絡商品評論數據,共360條作為語料進行分類實驗,其中評論情感數據分為好評與差評兩類。實驗時選擇其中270條評論作為訓練數據,余下90條作為測試數據,實驗數據使用2組交叉語料進行實驗,特征選擇算法使用信息增益方法,特征維數取經驗值500維。實驗采用的評估指標為準確率,其具體計算公式如下。
從表1可以看到,當K值增大時,2組測試樣本所對應的分類準確率均在K值等于10時取最大值,隨后呈現波動趨勢,可見K值在10以后增加時,近鄰樣本中不斷引入各類別“雜”樣本。但是,加權重KNN算法與經典KNN分類準確率不同,表2顯示的是采用加權重KNN算法用于分類的結果。