聞彬,熊飛,陳薇









摘要:高校“百度貼吧”經常會有用戶發表一些討論帖,這些信息對于學校來說是非常有用的。但是未經處理的信息無法實時給當局者提供幫助。因此,文章提出一種利用自然語言處理方法獲取“貼吧”信息,并實時發現熱點話題的方法。本文首先獲取網絡文本信息,對文本進行預處理,包括分詞、去除停用詞,再計算文本的TF-IDF值,最后利用無監督學習方法(K-means)對文本進行聚類,從而獲取熱點話題。從實驗結果中可以看出,本方法可以有效地發現“貼吧”中的熱點話題。
關鍵詞:自然語言處理;熱點話題;機器學習;K-means
中圖分類號:TP391? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)35-0016-03
1 概述
眾所周知,互聯網已經成為當前人們日常獲取信息的主要途徑。基于此,人們也樂衷于在互聯網上發表自己的看法和觀點。但是絕大部分信息可能是沒有太大意義的,需要過濾掉不太重要的信息,并從中挖掘出有意義的信息。熱點話題發現就是在此背景下應運而生,并引起了廣泛的關注。
熱點話題發現的目的是在海量的數據信息中,找到引起大家共鳴、為大家津津樂道的信息,為當局或者管理者提供實時的情報,也為輿情監控和觀點抽取等提供支持。
2 研究現狀
話題發現(Topic Detection)[1]是指分析大量語料,在無需人工監督的情況發現文本中的熱點話題。話題發現常用的方法主要有三類:基于聚類的、基于主題模型和基于詞共現的方法。Xie[2]等人針對微博信息,首先提出用句子嵌入法來表示微博文本,然后再提取微博子主題,最后利用K-means[3]聚類算法對實驗結果進行驗證,實驗結果顯示,該算法取得較好的效果。Mathioudakis[4]等人建立了TwitterMonitor系統,該系統可以通過實時監測微博文本信息,并實時發現熱點話題,最后創建圖表來對熱點話題進行顯示。
目前的話題發現學習方式主要有監督學習和無監督學習。
2.1 有監督學習
在監督學習中,通過給出訓練數據集,并在數據集中標注類別,訓練機器并讓其能夠識別出是哪個類別,圖1為有監督學習流程圖。
有監督學習原理如圖2所示。
圖2中,分別對狗類和貓類進行了正確分類以及標注,然后利用機器學習算法進行訓練,獲取到模型的相應參數,再根據訓練好的模型,對新的樣本進行判定,如圖3所示,以此獲取新樣本的屬性。
監督學習算法根據任務的不同,又分為了回歸分析(Regression)和統計分類(Classification)兩大類。回歸和分類的算法區別在于輸出變量的類型,定量輸出稱為回歸,或者說是連續變量預測;定性輸出稱為分類,也稱為離散變量預測。回歸不是本文的重點,因此在這里不再講述,本文重點講述分類算法。以上介紹的是利用算法對模型訓練后,能夠將“狗”和“貓”進行分類。常用的分類算法有以下幾種:K-近鄰算法(K-Nearest Neighbors,KNN)、決策樹(Decision Trees)、神經網絡分類(Neural Network)、支持向量機(Support Vector Machine, SVM)等。
2.2無監督學習
無監督學習是指在缺乏足夠的先驗知識時,讓計算機幫助解決這些問題,或者至少提供一部分幫助,因此無監督學習使用的訓練集是沒有任何標注的,目的是發現數據集本身的聚集性。如圖4所示,訓練集本身沒有任何標注,通過機器學習訓練之后,聚類為2大類,同時也無法判定類別。
常見的無監督學習算法分為聚類和降維兩大類,熱點發現使用的為聚類算法,本文僅討論聚類算法。常見的聚類算法有:K-均值(K-means)聚類、層次聚類(Hierarchical Clustering)、基于密度聚類(Mean Shift)等。聚類算法的目的是將相似的樣本聚在一起,聚類只需要考慮樣本之間的相似度,而不需要考慮類別數目。以K-means為例,該算法用來對n維空間內的樣本根據歐式距離遠近程度進行聚類。
3 方法
本文以學校的百度貼吧為討論對象,從對應的學校的“貼吧”中獲取該學校的討論文本。然后對文本進行處理,從而獲得該學校的熱點話題。
從貼吧中獲取到相應文章,分別為Text1,Text2,Text3,..., Textn,熱點發現原理如圖2所示。
3.1 分詞
對文本進行分詞,使用Jieba[5]進行分詞。
Jieba的常用三種模式:
1)精確模式,盡可能將句子精確切分;
2)全模式,快速地將句子中的可能成詞的詞語都切分出來,不足之處在于無法解決漢語詞語的歧義問題;
3)搜索引擎模式,在第一種模式的基礎上,對句子中出現的長詞語再次精確切分,目的是提高召回率,一般適用于搜索引擎中的分詞工作。
本文采用第一種方式精確模式對文本進行處理。
3.2 去除停用詞
停用詞是指那些對句子沒有多大意義的詞語。在不犧牲句子含義的情況下,可以忽略。因此,需要將這些停用詞進行刪除,經過整理,共獲得1598個停用詞,在分詞后的文本中刪除停用詞。
3.3計算文本的TF-IDF值
首先考慮計算文本之間的相似度。本文使用TF-IDF對文本進行向量化。下面介紹一下TF-IDF的原理。
[TF-IDF=TF×IDF]? ? ? ? ? ? ? ? ?(1)
其中:
[TF=某個詞語在文章中的出現次數文章的總詞數]? ? ? ? ?(2)
[IDF=log(語料庫的文檔總數包含該詞的文檔數+1)]? ? ? ? ? ?(3)
TF-IDF用來評估某個詞語對于某篇文檔或者整個語料庫中其中一份文檔的重要性。例如,當一個詞語在一篇文檔中出現頻率很高,同時在其他文檔中出現頻率很低,甚至沒有出現,那就認為該詞語對于該詞語所在的文檔具有很強的代表性,適用于對文本進行處理。其中詞頻(Term Frequency,TF)就是指一個給定的詞語在該文本中出現的頻率。這個數字是對詞數的歸一化處理,以防止它偏向長的文本,從而忽略短文本的重要性。逆向文件頻率(Inverse Document Frequency,IDF)是一個詞語普遍重要性的度量。
3.4 向量空間模型
向量空間模型首先是假設文本內的詞語之間是不相關的,再利用向量將文本表示成向量模式,充分利用權重信息計算文檔之間存在的相關性[6]。
計算出TF-IDF值之后,為防止出現維度過高問題,采用Compressed Sparse Row Format(CSR)壓縮稀疏行矩陣進行存儲。
利用余弦相似度計算文本之間的距離,用向量空間中兩個向量的余弦值作為衡量兩個個體差異大小,如圖6所示。
其中,A、B分別為2個文本向量,Dist(A,B)為AB間的距離,cosθ為相似度,cosθ值越接近1,就表示夾角越接近0度,也就是兩個向量越相似,從而判定文本之間的相似程度similarity。
[similarity=cosθ=A·BAB=i=1nAi×Bii=1nAi2×i=1nBi2]? ? ? (4)
3.5 利用K-means聚類算法進行聚類
(1) 隨機生成K個聚類中心;
(2) 計算每個樣本與每個聚類中心的距離(余弦相似度),離哪個聚類中心近,就劃分到哪個聚類中心所屬的集合當中;
(3) 重新計算每個集合的聚類中心;
(4) 重復2、3步,直到收斂(聚類中心偏移很小,或者計算聚類中心次數超過閾值);
(5) 返回所有聚類標簽。
從“百度貼吧”下載湖北輕工職業技術學院、武漢理工大學、華中師范大學下載各1000篇文本,利用本文的方法對文本進行處理,處理完后,發現熱點話題如表1所示。
4 結束語
熱點話題發現有助于快速獲取網絡中的當前熱點,能夠及時為當局提供快速響應的依據。從實驗中可以看出,本文提供的方法可以有效且及時發現網絡中的熱點話題。不僅在貼吧平臺可以使用,在有數據來源的情況下,同樣可以作為社會輿論的監測工具。但是本實驗中數據量有限,實驗結果可能與實際情況存在稍許偏差,后期筆者將重點放在增加實驗數據和改進實驗方法的工作上。
參考文獻:
[1] Allan J.Topic Detection and Tracking:Event-based Information Organization[M].Boston,MA:Springer US,2002.
[2] Yu X,Bin Z,Yang O.A method based on sentence embeddings for the sub-topics detection[J].Journal of Physics:Conference Series,2019,1168:052004.
[3] Naik M P,Prajapati H B,Dabhi V K.A survey on semantic document clustering[C]//2015 IEEE International Conference on Electrical,Computer and Communication Technologies.Coimbatore,India.IEEE,2015:1-10.
[4] Mathioudakis M,Koudas N.TwitterMonitor:trend detection over the twitter stream[C]//Proceedings of the 2010 ACM SIGMOD International Conference on Management of data.Indianapolis,Indiana,USA.New York:ACM,2010:1155-1158.
[5] https://github.com/fxsjy/jieba.
[6] 徐云青,徐義峰,李舟軍.基于VSM的中文信息檢索[J].計算機系統應用,2007,16(4):21-23.
【通聯編輯:唐一東】