張鈺莎,羅莉霞
(湖南信息學院,長沙 410151)
2016年中國網民微博用戶規模為4億多,網民使用率達到38.4%;手機微博用戶規模則為1.7083億,網民使用率達到30.7%[1]。微博,作為Web2.0時代大眾化的信息獲取、分享、傳播的網絡平臺,由于其門檻低、內容簡單、交互性強等特點,如今已經成為人們日常生活、表達訴求、傳遞信息的重要社交載體。
微博這種新的輿論媒介,隨著用戶規模不斷壯大的,微博的社會影響力也在近兩年達到巔峰。這其中,官方認證的大V用戶與草根用戶充當了大量事件的發起及傳播。對上述微博用戶所關注主題的分析和監控,既可以及時響應、預警一些社會熱點事件,又能夠聚焦用戶自身的熱點,從而提供更加個性化的服務(消息推送、產品推廣、廣告精準投放等)。因此,主題模型在用戶微博中的應用對微博社交平臺的持續發展、潛在價值利用有著重要意義。
LDA主題模型是一種使用概率的產生式模型來挖掘文本主題的方法。主題模型中的主題可以根據一定的規則產生單詞,而反過來,在已經知道文本單詞的情況下,根據概率公式,可以反向推導出文本集合的主題分布情況,其中最具代表性的主題模型為PLSA概率潛在語義分析(Probabilistic Latent Semantic Analysis)和LDA 潛在狄利克雷分布(Latent Dirichlet Allocation)[2]。張晨逸、孫建伶等人通過對LDA模型的改進,提出了基于MB-LDA模型的微博主題挖掘。王力、李培峰等人提出了基于LDA模型的主題句抽取方法,取得了較好的效果[3-4]。BLei等人提出的LDA模型認為文檔是由服從多項式分布的主題組成,每個主題由服從于主題的多項式分布組成,是文檔、主題和單詞組成的一種三層貝葉斯文檔生成模型。LDA可以作為一種降維工具,將每一個包含用戶微博內容的文檔作為訓練語料庫中的一個詞袋進行訓練,得出所有用戶文檔的主題分布,從而加以利用[5-6]。
TF-IDF(詞頻-逆向文檔詞頻)是一種用于資訊檢索與資訊探勘的常用加權技術。詞頻TF(Term Frequency),定義為:一個詞語在一個文檔中出現的頻率,詞頻越大表示這個詞對當前文檔的貢獻越大,是當前詞和當前文檔之間的關系。逆文檔詞頻IDF(Inverse Document Frequency),是先由總文檔數目除以出現了某個詞的文檔數目得到的商,將商取對數得到,表示了某個詞對于某一類文檔區分能力,是某個詞和所有文檔之間的關系。所以本文需要利用TF-IDF算法對每一個文檔進行特征提取,以達到通過文檔壓縮來提高LDA模型訓練效率的目的。
LDA微博主題建模的一般流程如圖1所示。
LDA模型可以進行潛在主題發現,而要利用LDA算法對語料庫進行訓練,首先要獲得適合算法計算的文本輸入,這里根據研究對象:草根用戶與大V用戶微博分別進行主題建模。
本文主要采用的爬蟲策略是借助微博開放平臺的接口獲取所有需要爬取對象的微博基本信息,如ID、用戶名、用戶網址、性別等信息。利用爬取的用戶信息中的ID作為爬蟲程序的初始URL種子,對微博用戶發布過的微博文本內容進行爬取。
數據從微博上爬取下來之后,會有大量無用信息,例如標點符號、表情、感嘆詞,等等,因此需要進行預處理,主要包括:數據整理、分詞、去除停用詞。
(1)微博內容整理
微博文本的特點是內容精簡、文本形式自由,雖然爬蟲程序可以根據網頁的結構化信息爬取指定結構和位置下的信息,但是每個用戶的消息都有自己的用語特點,有些含有大量的表情、有些含有大量鏈接、有些習慣以空格來代替停頓和標點、甚至有一些僅僅是轉發而不發表任何轉發理由造成了爬取內容解析字段的缺省,若想通過連貫的程序完成對這些多樣化內容的源數據存儲備份和下一步研究的分詞等繼續處理,則需要將爬取的微博內容進行統一標準化處理。
(2)分詞
本文采用了開源的分詞系統HanLP進行分詞處理,該系統支持中文分詞、命名實體識別、關鍵詞提取、自動摘要、短語提取、拼音轉換、簡繁轉換、文本推薦、依存句法分析(MaxEnt依存句法分析、CRF依存句法分析)。提供Lucene插件,兼容Lucene 4.x。
(3)去除停用詞
得到經過分詞處理的語料后,考慮到微博用戶多樣化的語言特點,對于大量的語料是無用和重復的,所以在得到分詞結果之后,設置一份停用詞表,將文檔中的停用詞進行過濾清理。
從數據庫中以用戶為單位提取微博內容字段數據,提取結果生成一個文檔。接著將每一個文檔輸入文本處理程序進行分詞和去除停用詞處理。
分詞算法采用了HanLP開源分詞系統對獲取的文本進行分詞處理,在使用前對源代碼進行改寫,在分詞過程中可以根據得到的詞性標注結果,進一步進行篩選。例如在主題檢測、主題建模中,對于最重要的名詞類詞性全部保留,而一些助詞、感嘆詞等則在分詞結果中過濾掉,以更好地去除分詞結果中的無用信息。本文選擇保留所有詞性標注結果中含有“n”的詞語以及詞性為“vn”和“vi”的詞語。
考慮到微博中的表情字符通常是以中括號加文本的形式表示的(如“[al開心]”、“[lt紅包]”等),所以也要剔除。在三個停用詞表合并的基礎上,將微博中的表情字符(567個)也添加進停用詞表,最終獲得的停用詞個數為3146個。此外部分微博信息中通常會包含一些符號和網址,也全部剔除。
由于語料庫經過分詞和去除停用詞等預處理后,仍然有接近1G的文本,如果直接以預處理結果的文檔集合作為算法的輸入進行LDA主題建模,預計時間成本將會很高,為了提高效率,采用TF-IDF算法對用戶文檔進行特征提取,將特征提取的結果,按照概率值降序,取前面的前N個作為當前用戶文檔的特征詞,將語料庫大規模壓縮。
爬取對象:微博關注的1864名用戶
爬取內容:①1864名用戶的基本信息;②1864名用戶3000條左右的微博信息。
爬取結果:成功獲取的原始數據3.42G,包含兩張表:用戶基本信息表及用戶微博內容表。
程序輸入:每個用戶為一個txt文檔,一共1864個文檔一起輸入程序。程序輸出:1864個用戶txt文檔,625.6M結果展示如圖2所示。

圖2文本預處理結果
結果分析:在預處理之后的文檔中,會發現一些用戶長期關注某些話題而導致語料中大量出現某一些相同的詞語,如“帶著”、“爸媽”、“去旅行”等字樣,不僅使得語料規模龐大臃腫而且可能造成LDA算法效率降低,因此需要下一步的TF-IDF算法進行文檔特征詞提取。
TF-IDF文檔特征提取結果及流程:
首先根據數據庫信息將所有用戶文檔按照大V用戶和草根用戶進行分組,將兩類用戶分別生成兩個文檔集合。
分別將兩個文檔集合作為程序輸入計算TF-IDF,并按照預先定義的特征詞個數參數,得到每個文檔一定數目的特征詞。
按照權重降序的方式將每個文檔的特征詞記錄輸出。
參數設置:特征詞個數按照用戶文檔中詞語個數占所有文檔比重動態調整。
程序輸入:一組為大V用戶文檔集(991個用戶),一組為草根用戶文檔集(993個用戶)輸出結果:兩組文檔集,共1864個用戶txt文檔,7.6M。
結果分析:根據抽取結果文檔可見,部分文檔從特征詞中可看出用戶關注的主題方向,為“體育”“法律”“金融”三個大類,可見詞語特征非常明顯,從輸出結果對預處理語料的壓縮規模看,基本完成了LDA建模前將爬取的信息進行并整理、清理、壓縮成建模所需的語料庫的目標。
比較方式:將所有的大V用戶的特征詞整合到一個集合,記錄每個詞出現的次數,并進行降序排序;同樣的方式處理草根用戶的特征詞。提取排序的前N個特征詞比較二者的異同情況,這里N分別取值如下:100、200、300、500、800、1000、2000、3000、5000、7000、10000。異同情況如圖3所示。

圖3 兩類用戶前N個特征詞異同比較
結果分析:
(1)由圖3可知,兩類用戶日常微博的用詞中,有60-70%的特征詞是比較接近的。提取前200個特征詞比較結果中相同的特征詞進行詳細分析,相同比例:74%。
雖然結果中含有少量無關的詞語,但是從總體上可以看出,相同的特征詞中,主要特點是以個人為中心的詞語為多,可見一方面是由于草根用戶往往會關注很多大V用戶的日常微博,并進行轉發或者發表類似微博;另一方面也體現了微博自由、隨意、貼近生活的使用特點,因此特征詞中不乏大量相同之處。
(2)兩類用戶日常微博的用詞中,有30%左右的特征詞是有差異的,而這30%的詞可以從中挖掘出兩類用戶用語上的一些特點,于是進行進一步詳細分析。如圖4所示,差異比例:26.0-27.7%。

圖4 兩類用戶前200、300熱詞中的差異
結合后期的LDA建模用詞差異進行分析可知,大V用戶的獨有用特征詞與主題建模中各主題下的主題詞都有一定關聯,具有很明顯的領域特點,并且用詞也是比較書面規范化。而草根用戶的獨有特征詞則比較隨意,往往是生活中的吐槽和心情分享,所以含有很多口語化詞匯、心情詞匯以及大量網絡流行的用語,如“真愛”、“妹子”、“get”、“分手”、“尼瑪”、“牛逼”、“減肥”等。
基于微博用戶語料特征提取的LDA主題建模前的語料數據采集及存儲、文本整理及預處理和通過文檔特征詞提取進行語料規模壓縮等幾個問題。預期得到的微博用戶信息基本全部采集完成,并存儲在數據庫中可支持后續研究的進一步使用。
預期進行的文本預處理工作基本完成,停用詞表根據實際需要進行大規模的擴充(包含了哈工大停用詞表、百度停用詞表、四川大學機器智能實驗室停用詞庫、新浪微博表情標識符和實驗中總結的大量停用詞)。預期通過特征詞提取的語料庫壓縮規模基本完成,壓縮規模接近100倍。特征詞提取之后,結合LDA主題建模結果,對草根用戶與大V用戶特征詞使用異同及頻率情況進行分析,發現大V用戶的獨有特征詞與LDA建模后的各主題下主題詞直觀上有很大相似度,是響應吻合的,并且用詞也更加規范書面化;而草根用戶的獨有特征詞則更貼近個人生活隨想、情感流露和口語化,并且包含大量近年來流行的各種網絡用語,如“煩惱”、“學霸”、“真愛”、“屌絲”等。
(1)系統能夠隨時爬取指定用戶的一定規模語料。
(2)文本預處理模塊能夠識別新詞,并自適應進行更新。
(3)將對象分為草根用戶和大V用戶兩個分組的前提下,進一步將用戶按照行業、年齡或是興趣等,進行組內細分,然后再進行特征詞、主題建模研究
(4)完善TF-IDF特征詞提取時的缺陷。