王和勇 洪 明
(華南理工大學電子商務系 ,廣東 廣州510006)
特征融合在微博數據挖掘中的應用研究
王和勇洪明
(華南理工大學電子商務系 ,廣東 廣州510006)
針對傳統的微博聚類分析中,只單獨針對微博閱讀數、評論數等數據 (下稱微博結構化數據)進行分類或者單獨針對由微博內容進行文本分詞得到的分詞數據 (下稱微博分詞)進行分類的問題,本文采用了Kohonen聚類,研究結合微博結構化數據和微博分詞的融合數據聚類的效果是否比單獨對微博結構化數據或對微博分詞聚類有所提高。實證數據實驗結果顯示 ,微博結構化數據單獨聚類會出現一個類的標準差特別大 (本文稱為離群類),而對融合數據聚類 ,微博結構化數據則不會出現離群類;融合數據聚類結果對微博分詞的影響不顯著。
微博 ;聚類;融合數據
微博是當今流行的信息發布和交流的工具,微博蘊含著大量的信息資源,成為數據分析的重要數據來源。微博數據可以分為兩類 ,一類是結構化數據,微博的用戶名、閱讀數、轉播數、發表日期等微博相關的信息 (下稱 “微博結構化數據”);另一類是非結構化數據即微博用戶發表微博內容的文本數據 (下稱 “微博內容”)。
在微博研究中,往往需要對微博數據進行分類以發現某些數據間有趣的規律和模式。而從微博中收集的現實數據往往沒有預先定義的分類 ,由于微博數據龐大 ,無法進行手工分類,必須采用一些分類方法進行處理。由于微博非結構化數據都是經過文本分詞轉化為結構化數據進行有關分類研究,由微博內容轉化成的結構化數據下文稱為“微博分詞”。
文獻中,馬彬、洪宇、陸劍江、姚建民和朱巧明(2012)利用線索樹雙層聚類過濾垃圾微博,進而實現微博話題檢測 (微博分詞聚類)[1];張國安和鐘紹輝 (2012)分析用戶數據,利用K均值聚類研究微博用戶分類 (微博結構化數據聚類)[2];路榮、項亮、劉明榮和楊青 (2012)利用兩層K均值和層次聚類的混和聚類方法對微博文本進行聚類從而檢測出新聞話題 (微博分詞聚類)[3];潘大慶(2012)利用層次聚類以敏感話題為單位對微博進行分類(微博分詞聚類)[4];熊祖濤 (2013)基于文本稀疏性問題,描述了多種微博文本聚類的方法 (微博分詞聚類)[5];英文文獻中,Yang C,Ding H,Yang J等 (2012)利用K-均值聚類算法發現微博中的用戶社區 (微博分詞聚類)[6];Olariu A.(2013)利用層次聚類對Twitter的文本進行分類從而提高微博流匯總算法的有效性(微博分詞聚類)[7];Muhammad Atif Qureshi,Colm O'Riordan,Gabriella Pasi(2013)利用聚類分析來檢測Twitter上公司的聲望 (微博分詞聚類)[8];Huang B、Yang Y、Mahmood A等 (2013)利用單遍聚類方法來發現微博話題 (微博分詞聚類)[9];Elena Baralis、Tania Cerquitelli、Silvia Chiusano等 (2013)對Twitter同一話題發表內容的用戶進行聚類以發現相似的群組 (微博分詞聚類)[10]。目前的文獻都只是單獨針對微博結構化數據或者單獨針對微博分詞進行聚類分析,得到一個分類,本文將微博結構化數據和微博分詞結合起來形成融合數據,研究對融合數據進行聚類的分類效果是否比單獨對微博結構化數據或微博分詞聚類的分類效果有所優化。
通過軟件抓取騰訊微博 “房價”話題的數據 ,首先提取出用戶名,閱讀數等微博結構化數據和微博內容的文本 ,對微博內容的文本進行文本分詞形成微博分詞,然后將微博結構化數據和微博分詞結合形成包含微博結構化數據和微博分詞的融合數據。聚類實驗部分分別進行對微博結構化數據、微博分詞和融合數據所有字段的Kohonen神經網絡聚類分析,通過字段聚類后的標準差比較聚類結果的相對好壞,驗證融合了微博結構化數據和微博分詞的數據是否比單獨的微博結構化數據和單獨的微博分詞聚類效果有所提高。
1.1數據搜集
本文利用軟件搜集騰訊微博2011年11月8日 -2014年2月15日話題為 “房價”的數據共2 000條。搜集來的數據是HTML形式,需要進一步的處理提取出結構化字段和微博的文本內容,原始數據具體的情況如表1所示。

表1 R微博原始數據
1.2數據整理
采集的數據是HTML的形式,為半結構化的數據,因此需要提取出結構化的字段微博結構化數據和微博的內容。經過閱讀THML代碼,代碼中可以提取的結構化字段名稱,含義及格式如表2所示。

表2 R微博結構化數據
本文使用R語言提取HTML文件中的微博結構化數據和微博內容。提取的過程如圖1所示。

圖1 RR提取微博結構化數據和微博內容
用R語言提取出的結構化數據存儲在EXCEL表格中,去掉重復的數據。在過程中發現有些微博的時間是 “今天10∶10”這樣沒有確切時間的數據,將其作為缺失處理,用NULL補全數據,因為不清楚發表日期,所以發表時間意義不大,因此發表日期為 NULL的條目發表時刻也設為NULL。微博內容的文本數據存儲在文本文件中。去掉了重復的數據后,現存的數據有1 672條,如果去掉發表時間和發表時刻為NULL的數據,則剩余1 399條。
微博內容數據存放在TXT文本文件中,每一條微博為一行。
2.1文本分詞
文本屬于非結構化數據,非結構化數據利用現有的技術無法直接處理,因此需要將文本轉化為結構化數據。根據一個文本中詞語的意義將文本劃分為一個一系列的有意義的詞的向量并統計每個有意義詞在一個文本中出現的次數即詞頻,這樣就將一個文本有非結構化數據轉化為結構化數據。有意義的詞是字段,詞頻是字段的值。非結構化文本數據轉化為結構化數據的轉化過程如圖2所示。

圖2 RR文本數據轉化為結構化數據過程
語料庫是匯總非結構化文本 ,一個文檔就是一個獨立的文本,本文把每一條微博內容作為一個文檔,文本庫是在語料庫的基礎上去掉了停用詞,數字等無用信息的非結構化純文本,而且初始的非結構化文本可能是HTML,XML等文件,因此由語料庫轉化為文本庫是必要的。文檔詞條矩陣是將每一個文檔分詞 ,然后統計每個文檔中詞條 (即前文說的有意義的詞)的詞頻,形成的一個以文檔為行,詞條為列的矩陣。文檔詞條矩陣是非結構化文本的結構化表現形式。
本文以R語言的tm包為基礎,構建語料庫和文本庫以及文檔詞條矩陣,使用Rwordseg包分詞。
2.2文本分詞實驗
利用本文數據和R語言進行文本分詞的過程如圖3所示。

圖3 RRR語言文本分詞過程
在建立結構化數據的過程中,對分詞進行了兩次篩選,第一次是篩選出分詞中的名詞,因為名詞的意義比較大 ,含義比較豐富。第二次是根據文檔詞條矩陣篩選出了詞頻大于200的詞,因為建立的矩陣稀疏,而且有些詞的詞頻很小,很難有代表性,因此人為選擇詞頻大于200的分詞。實驗過程中提取出詞頻100以上,200以上,300以上,400以上和500以上的詞。
實驗中發現,詞頻大于100的詞太多,會導致文檔詞條矩陣過于稀疏,不利于進一步實驗,詞頻大于200的詞數量比較適中,而選擇詞頻大于300的詞數量稀少,因此選擇詞頻大于200的詞。在詞頻大于200的詞中,有些詞跟房價的關聯性不大,因此進一步人為篩選,人工去掉“價”,“房價”,“錢”,“人”,“問題”,“新聞”和 “中國”去掉,這些詞語跟房價沒有太大的關聯性。因此 ,整理后的微博文本結構化數據的字段即微博分詞如表3所示。
2.3數據融合
在原來的結構化數據的基礎上 ,把微博分詞融合到微博結構化數據當中,形成一個新的數據表,該數據表的字段匯總如表4所示。

表3 R微博分詞字段

表4 R融合數據字段
3.1Kohonen神經網絡聚類簡介
Kohonen神經網絡聚類的原理大致是:當一條數據輸入到輸入層,輸入層將數據項的變量特征作為刺激信號傳遞給輸出層,輸出層中對該信號最為敏感的節點 “獲勝”,作為最能解釋該數據項的節點。對每條數據進行相同的操作,最后輸出層形成一個二維的結構,即是聚類的輸出結果。
Kohonen神經網絡聚類的過程如下:
3.1.1確定聚類的初始中心
設有p個輸入節點,則在時刻 t第j個輸出節點和p個輸入節點的中心Wj(t)為:

其中,w1j(t)(i=1,2,3,…,p)是連接的權值。剛開始時權值是隨機的,因此,剛開始的聚類中心也是隨機的。
3.1.2確定獲勝節點
在時刻 t,一條數據X(t)到達輸入層,根據X(t)屬性計算其與類中心的歐氏距離 d(t),最后選出d(t)最小的類中心Wc(t),Wc(t)便是獲勝節點。
3.1.3調整獲勝節點及其鄰居節點的類中心位置
當Wc(t)對一條數據 X(t)勝出時,Wc(t)及其鄰居節點對輸入層節點的權值需要調整 ,也就調整了類中心。調整Wc(t)類中心的方法如下:

其中,η(t)表示時刻 t的學習率。
Wc(t)鄰居節點指的是以Wc(t)為圓心 ,指定半徑內的節點,鄰居節點Wj(t)的調整方法如下:

其中,hjc(t)是時刻Wj(t)和Wc(t)的距離的度量。hjc(t)的一種形式是切比雪夫距離:

3.1.4判斷是否迭代終止
迭代終止的條件一般是權值基本穩定或者到達預定義的迭代次數,如果滿足條件,終止,否則回到第二步。
3.2Kohonen神經網絡聚類實驗
本文使用SPSSClementine軟件作為實驗環境,以6種比例的訓練集來進行實驗,分別使用50% ,60% ,70% ,80% ,90%和100%的數據進行聚類實驗。利用融合數據隨機篩選出上述比例的數據,實驗時分別提取出融合數據的結構化數據,文本結構化數據分別進行聚類實驗,最后再進行融合數據聚類實驗。實驗中剔除 “用戶名”、“發表日期”和 “發表時刻”以確保所有字段都是數字類型,使得微博結構化數據的字段和文微博分詞的字段具有可比性。具體的實驗步驟如圖4所示。
3.3實驗結果對比分析
按照實驗步驟對各個比例的融合數據分別進行微博結構化數據聚類,微博分詞聚類以及融合數據聚類。聚類結果顯示,在6個不同比例的訓練集實驗數據下,微博結構化數據聚類,微博分詞聚類,融合數據聚類都分為12類。
評判聚類效果的方法很多,本文使用標準差來評價聚類的相對好壞,1個類中相同字段的標準差越小,說明該字段的值相差越小,也就越相似。用函數 std(字段)表示在聚類結果中1個字段的12個類的標準差的匯總折線,如std(閱讀數)表示一個聚類結果中閱讀數的12個類的標準差的匯總折線。比較兩組結果:微博結構化數據聚類和融合數據聚類 ,微博分詞聚類和融合數據聚類,通過匯總折線的比較,評價聚類的效果的相對好壞,兩組比較具體的比較內容如表所示。對于微博結構化數據聚類,只需要把3個結構化字段的12個類的標準差折線和融合數據聚類中對應的字段的標準差折線分別比較,對于微博分詞數據,則要比較9個字段。具體如表5所示。

圖4 RR聚類實驗過程

表5 R實驗結果比較方法
3.3.1微博結構化數據聚類和融合數據聚類比較
將微博結構化數據聚類結果和融合數據聚類結果中微博結構化數據和融合數據共有的3個字段——閱讀數,評論數和轉播數的12個類的標準差繪制成折線圖,選擇80%訓練集的實驗結果展示如下 ,其他比例下的訓練集實驗結果類似 (fusion表示融合數據,structured表示微博結構化數據數據)。

圖5 RR80%實驗數據3個字段的比較
從圖5可以看出,微博結構化數據聚類的結果往往出現一個這樣一個類,類中3個字段的標準差都很大,偏離平均水平很多,本文稱為 “離群類”。而融合數據的結果則能夠縮小離群類和其他類的差異性。微博結構化數據的字段融入微博分詞聚類以后,能夠把 “離群類”的標準差的差異分攤到其他類,從而把 “離群類”拉回平均水平附近 ,這樣的代價是其他類的標準差會有所增加,但是整體的聚類效果得到提升,因為聚類中 “離群類”的與其他類的差異性變小,其他類的標準差影響不大。
3.3.2微博分詞聚類和融合數據聚類比較
將微博分詞聚類結果和融合數據聚類結果中共有的9個字段的12個類的標準差繪制成折線圖 ,選擇80%訓練集的實驗結果展示如下,其他比例下的訓練集實驗結果一致(Fusion表示融合數據,Non-structured表微博分詞)。

圖6 RR80%實驗數據9個字段的比較
從圖6可以看出,融入微博結構化數據的字段聚類后,微博分詞字段的標準差沒有明顯下降,跟微博分詞單獨聚類沒有明顯差異,因此,融合數據對微博分詞聚類沒有明顯幫助。
傳統的微博聚類分析針對微博結構化數據 (結構化字段)分類或者微博分詞 (通過某種方法轉化為結構化字段)分類。本文采用Kohonen神經網絡聚類,研究對結合了微博結構化數據和微博分詞 (通過某種方法轉化為結構化字段)的融合數據聚類的效果是否比單獨對結構化字段或文本結構化字段聚類有所提高。從數據中提取實證數據實驗結果顯示,結構化字段單獨聚類會出現一個類的標準差特別大的 “離群類”,而對融合數據聚類,結構化字段則不會出現 “離群類”,融合了微博分詞一起分類后,結構化字段的 “離群類”的標準差變小,被拉近標準
差的平均水平。另一方面,融合數據聚類對微博分詞的效果不太明顯,融合了微博結構化數據再聚類和微博分詞單獨聚類,結果不太顯著。
[1]馬彬 ,洪宇 ,陸劍江 ,等 .基于線索樹雙層聚類的微博話題檢測 [J].中文信息學報 ,2012,26(6):121-128.
[2]張國安,鐘紹輝.基于K均值聚類的微博用戶分類的研究[J].電腦知識與技術,2012,8(26):6273-6275.
[3]路榮,項亮 ,劉明榮,等.基于隱主題分析和文本聚類的微博客中新聞話題的發現 [J].模式識別與人工智能,2012,25 (3):382-387.
[4]潘大慶 .基于層次聚類的微博敏感話題檢測算法研究 [J].廣西民族大學學報 ,2012,18(4):56-59.
[5]熊祖濤.基于稀疏特征的中文微博短文本聚類方法研究 [J].軟件導刊,2014,13(1):133-134.
[6]Changchun Yang,Hong Ding,Jing Yang,Hengxin Xue.Mining Microblog Community Based on Clustering Analysis[C]∥Proceedings of the International Conference on Information Engineering and Applications(IEA)2012.Springer London,2013:825-832.
[7]Olariu A.Hierarchical clustering in improvingmicroblog stream summarization[M]∥Computational Linguistics and Intelligent Text Processing.Springer Berlin Heidelberg,2013:424-435.
[8]Muhammad Atif Qureshi,Colm O'Riordan,Gabriella Pasi.Clustering with Error-Estimation forMonitoring Reputation of Companieson Twitter[M]∥Information Retrieval Technology Lecture Notes in Computer Science,2013:170-180.
[9]Bo Huang,Yan Yang,Amjad Mahmood,Hongjun Wang.Microblog topic detection based on LDA model and single-pass clustering[C]∥Rough Sets and Current Trends in Computing.Springer Berlin Heidelberg,2012:166-171.
[10]Elena Baralis,Tania Cerquitelli,Silvia Chiusano,Luigi Grimaudo,Xin Xiao.Analysis of Twitter Data Using a Multiple-level Clustering Strategy[C]∥Model and Data Engineering Lecture Notes in Computer Science,2013:13-24.
[11]Jiawei Han,M icheline Kamber.數據挖掘概念與技術 [M].北京 :機械工業出版社,2008:283-284.
(本文責任編輯:郭沫含)
The Study of M icroblog Data M ining Using Feature Fusion
Wang Heyong Hong Ming
(Departmentof E-Business,South China University of Technology,Guangzhou 510006,China)
This paper focused the problem that traditional clustering analysis have focused on only structured data such as microblog reading numbers andmicroblog commentnumbers(microblog segmentation)oronlymicroblog text.In thispaper,microblogmetadata are combinedwithmicroblog text to form fusion data and Kohonen Network Clustering is applied to test if fusion data clustering is better thanmicroblogmetadata clustering and thanmicroblog text clustering.Experiments indicates thatmicroblog metadata clusteringmay causea classwith large standard deviation(outlier class)and on the contrary,fusion data clustering does not.Microblog text clustering performs aswell as fusion clustering.
microblog;clustering;fusion data
王和勇 (1973-),男,提前上崗教授,研究方向:數據挖掘、文本挖掘和大數據挖掘。
10.3969/j.issn.1008-0821.2015.05.013
G250.78
A
1008-0821(2015)05-0068-05
2015-03-05