本發(fā)明涉及一種基于用戶詞典的網絡社交文本大數據處理方法及系統。
背景技術:
隨著互聯網技術的迅速發(fā)展,網絡無時無刻地不在影響著人們的生產、生活乃至社會發(fā)展。根據IDC(網絡數據中心)預測,全球數據的額總量每兩年就增加一倍,估計到2020年會達到35ZB,而且絕大部分數據具有非結構或半結構化的特點,人們對大數據的關注程度也日益升高。
同時,互聯網的發(fā)展也帶動了以微博為主導的社交媒體的迅猛發(fā)展,不論是國外以Twitter為代表的社交媒體,還是國內以騰訊微博和新浪微博為代表社交媒體,其用戶都在不斷增長。如此巨大的用戶基數,產生了巨大的數據,而這些數據蘊含著巨大的價值。網絡社交文本大數據呈現出數量巨大、增長速度快、結構多樣化等特點,傳統的數據處理方式是總體中抽取樣本來進行有關領域的分析,這樣分析出來的結果并不是對真實數據的描述,只有采用新的數據處理方式才能獲得大數據更加全面有效的信息。正如前文所述,微博文本數據也有非結構化或半結構化的特點,將其結構化處理對數據價值發(fā)掘具有重大意義。
早期對于大數據的處理由于受到計算機硬件及技術的影響發(fā)展緩慢,巨大的信息資源并沒有完全被發(fā)掘出來。目前的關于大數據的研究主要集中在云計算、視覺分析、數據挖掘等方面,大數據的處理技術中的分布式計算在大型集群中的簡化數據處理技術,該技術需要通過計算機相互連接組成分散系統,比較復雜,技術實現較為困難。
技術實現要素:
本發(fā)明的目的就是為了解決上述問題,提供一種基于用戶詞典的網絡社交文本大數據處理方法及系統,本發(fā)明技術提出相應的網絡社交文本非結構或半結構化數據如何轉化為結構性的數據,對網絡社交文本大數據分析價值的挖掘,以及網絡社交文本大數據處理的方法與技術。采用集中式計算的方法,將半結構化數據的數據轉化為結構化的數據,本發(fā)明主要是對半結構化的數據進行處理,通過對有代表性的樣本微博中抽取相關的心理品質關鍵詞,通過人工評判與問卷調查來刪減詞匯,構建某種心理品質的用戶詞典?;谀:ヅ浼皺嘀卦O置(程度級別詞語與否定詞)對微博文本消息中的關鍵詞進行頻數統計。
為了實現上述目的,本發(fā)明采用如下技術方案:
一種基于用戶詞典的網絡社交文本大數據處理方法,包括:
步驟(1):網絡社交文本大數據的獲?。涸谛吕宋⒉╅_放平臺上獲取新浪微博用戶的微博文本,由于微博文本數據存儲空間大以及為了保證大數據的獲取速度,從網上下載了文本壓縮文件;然后對文本壓縮文件解壓縮處理得到包含微博數據的txt文件,對包含微博數據的txt文件進行數據信息初步的提??;
步驟(2):用戶詞典的構建:從微博數據中篩選符合待研究心里品質的詞匯,對該詞匯進行預處理,根據預處理后的詞匯編制調查問卷,根據調查問卷的問卷題目篩選結果,構建用戶詞典;
步驟(3):將微博文本消息與用戶詞典中的關鍵詞進行模糊匹配,對關鍵詞詞頻進行統計:
步驟(31):根據微博發(fā)布的時間點來劃分微博片段,同時將用戶詞典中待匹配的關鍵詞分解為單個字;
步驟(32):判斷關鍵詞當中的每一個字是否均在微博片段的文本消息中出現一次,若是,則關鍵詞詞頻加一;若不是則關鍵詞詞頻不變;對所有微博片段進行分析,找出用戶詞典中的各個關鍵詞在每個月份的詞頻。
統計每個月份含有各個關鍵詞的頻數,以csv文件格式進行保存;詞頻統計csv文件的第一列是關鍵詞,第一行是含有該關鍵詞的月份。
根據各個關鍵詞在每個月份的詞頻,判斷被研究人員的待研究心理品質。
若某個微博片段中含有多個關鍵詞,則該微博片段的內容會同時與不同關鍵詞進行模糊匹配。
由于微博文本中的程度級別詞語和否定詞會影響到關鍵詞的模糊匹配,將程度級別詞語設置不同的權重;沒有出現程度級別詞語的權值記為1;否定詞權重奇數次出現記為-1,偶數次出現記為1;每個關鍵詞的詞頻=程度級別詞語權值*否定詞權重+名詞詞頻。
所述步驟(1)中進行數據信息初步的提取是指采用文本遍歷和文本過濾的方法過濾掉無用的信息,保留有用的信息,將有用的信息另存為txt文件。
所述無用的信息包括:網絡連接或表情符號;
所述有用的信息包括:用戶創(chuàng)建微博的時間、省份、微博內容以及用戶性別。
將程度詞分為四個等級并賦予相應權重(2,1.75,1.5,0.5)。
所述步驟(2)的步驟為:
步驟(21):確定待研究心理品質的維度;待研究心理品質指的是使用者的所研究的心理主題,待研究心理品質包括:生涯適應力或大五人格;
步驟(22):從微博排名前設定個數的用戶的原創(chuàng)微博的微博文本內容中抽取符合待研究心理品質的詞匯;抽取的詞匯必須包括名詞和趨勢詞;所述趨勢詞是指能表述事物發(fā)展動向的詞,對抽取的詞匯進行匯總整理,刪除重復詞匯,對含同義詞或近義詞進行合并處理;
步驟(23):問卷編制:問卷包括若干個題目,每個題目包括五個選項;每個題目對應一個待研究的心理品質維度;將合并處理的詞作為題目,一個詞匯對應一個題目,隨機抽取人群作為被試人員,問卷采用Likert 5點計分,從非常同意"、"同意"、"不一定"、"不同意"到"非常不同意"五種選項,分別記為5、4、3、2、1分;被試人員對某個題目的選項越集中,說明該題目對應的詞匯越具有代表性。按照集中程度來進行問卷題目的刪除:計算問卷中每個題目中各個選項的百分比,參考一致性系數的數值標準,保留單個選項百分比大于等于60%和兩個選項百分比之和大于等于60%或且相鄰三個選項中兩兩相鄰選項百分比不能同時大于等于60%的詞匯;
步驟(24):形成用戶詞典;按照步驟(23)的按照集中程度來進行問卷題目的刪除方法,刪除被試人員難以達成一致的詞匯,保留被試人員能達成一致的詞匯,構成了最終的待研究心理品質的用戶詞典,保留被試人員能達成一致的詞匯就是用戶詞典的關鍵詞;所述用戶詞典的關鍵詞個數人為設定。
例如:對于研究消費者信心指數來說,我們尋找工薪階層,具有一定的購買力,請被試人員評價這些詞匯在多大程度上符合他對當前(或未來一年)相關經濟狀況的看法。
一種基于用戶詞典的網絡社交文本大數據處理系統,包括:
網絡社交文本大數據的獲取單元:在新浪微博開放平臺上獲取新浪微博用戶的微博文本,由于微博文本數據存儲空間大以及為了保證大數據的獲取速度,從網上下載了文本壓縮文件;然后對文本壓縮文件解壓縮處理得到包含微博數據的txt文件,對包含微博數據的txt文件進行數據信息初步的提??;
用戶詞典的構建單元,用于從微博數據中篩選符合待研究心里品質的詞匯,對該詞匯進行預處理,根據預處理后的詞匯編制調查問卷,根據調查問卷的問卷題目篩選結果,構建用戶詞典;
微博文本消息中的關鍵詞模糊匹配,關鍵詞詞頻統計單元:
根據微博發(fā)布的時間點來劃分微博片段,將用戶詞典中待匹配的關鍵詞分解為單個字,
判斷關鍵詞當中的每一個字是否均在微博片段的文本消息中出現一次,若是,則關鍵詞詞頻加一;若不是則關鍵詞詞頻不變;
對所有微博片段進行分析,找出用戶詞典中的各個關鍵詞在每個月份的詞頻。
本發(fā)明的有益效果為:
1、將半結構化的數據轉化為結構化的數據,具體的來說是二維的數據結構,轉換數據結構之后更加地便于對數據進行分析;
2、基于大數據來對數據的總體進行分析,全面進行描述真實的數據,克服了傳統數據分析的一些弊端,例如:用樣本估計總體,難以描述客觀的世界,處理的誤差小于傳統數據等。
3、微博數據可以實時地被獲取到,經過此種處理的方法速度快,經過處理過后得到的數據具有時效性;
4、大數據處理過程簡潔,一臺計算機就可以處理,無需構建計算機集群。
附圖說明
圖1是用戶詞典構建的過程;
圖2是程序處理的過程。
具體實施方式
下面結合附圖與實施例對本發(fā)明作進一步說明。
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1-2所示,整個數據處理的過程主要分為用戶詞典構建,否定詞的獲取,程度級別詞語的獲取,程序處理。
為了保證所選詞匯具有代表性,選取相關研究心理品質領域的熱門微博排名前50位博主與前10位媒體的所有原創(chuàng)微博(剔除轉發(fā)以及圖片、視頻、音頻等),從這些微博信息中篩選符合相關研究心理品質的詞匯。
必須和相關研究心理品質的詞匯,或者屬于某個心理品質維度的詞匯。例如,基于消費者信心指數的理論維度,篩選的詞匯必須與經濟有關,并且屬于或類屬于消費者滿意指數與消費者預期指數以及滿意指數的七個維度;要求篩選的詞匯是實質詞和趨勢詞的組合(例如:股票上漲)。滿意指數的七個維度包括:經濟形勢、利率、物價、消費、就業(yè)、收入、生活質量水平。
在Excel表格內匯總篩選出的全部詞匯→刪除重復詞匯→為保證詞匯的普適性和代表性,根據各個詞匯在微博的搜索量,刪除搜索頻次在1000以下的詞匯→通過小組評定、專家評定等方式(按照少數服從多數的原則)合并意義相近或相似的詞匯(如股票上漲,股價上漲)。
將匯總的詞匯分到若干個所研究的心理品質維度中,隨機抽取符合研究人群作為被試若干名(視情況而定),請被試評價這些詞匯在多大程度上符合他對當前(或未來一年)相關經濟狀況的看法。問卷采用Likert 5點計分,從“1-完全不符合”到“5-完全符合”。
與傳統問卷不同,用戶詞典問卷旨在考察我們刪選出的目標詞的有效性。例如,每個選項代表的是被試對該目標詞能否代表現在或未來經濟形勢的看法。因此,被試對某個目標詞的選項越集中,說明他們對這個目標詞的看法越接近,即這個目標詞越具有代表性。計算每個詞匯各個選項的百分比,參考一致性系數的數值標準(>0.6),保留單個選項百分比大于等于60%和相鄰兩個選項百分比之和大于等于60%且相鄰三個選項中兩兩相鄰選項百分比不能同時大于等于60%的詞匯。按照集中程度來進行刪除問卷題目。
按照以上刪題標準,共刪除被試難以達成一致的詞匯,保留被試較能達成一致的詞匯,構成了最終的相關研究心理品質的用戶詞典。
文本消息中的關鍵詞模糊匹配包括:基于程序出現目標詞的每一個字,則次數算一次。例:“利率終于下降了”則算“利率下降”關鍵詞出現一次。對所有微博片段進行分析,找出每個月份含有各個關鍵詞的微博片段,若某個片段中含有多個關鍵詞詞,則這條微博內容會同時保留在不同關鍵詞相應的文件中。統計每個月份含有各個關鍵詞的頻數,以csv文件格式進行保存。
在Excel表格內匯總篩選出的全部詞匯、刪除重復詞匯,為保證詞匯的普適性和代表性,根據各個詞匯在新浪微博的搜索量,刪除搜索頻次在1000以下的詞匯→通過小組評定、專家評定等方式(按照少數服從多數的原則)合并意義相近或相似的詞匯。
獲得新浪微博用戶2009年8月-2012年9月的微博文本。共包括10個文件夾,每個文件夾包括多個壓縮包,壓縮包以weibo_datas_XX_XX.rar命名。每個壓縮包解壓縮之后可以找到名為“SinaNormalRobot”的文件夾,內含“Status”文件夾,打開“Status”即可看到多個.txt格式的文本文件,每個文本文件均包括多條微博內容及其相關信息。共計207個壓縮包,總文件大小約580G。在分析之初,利用Python編程調用電腦的WinRar解壓縮軟件對文件進行自動解壓,因此,要求電腦里安裝了WinRar解壓縮軟件,并將winrar.exe的路徑添加至系統環(huán)境變量PATH中。
首先利用Python編程對微博文本進行批處理,遍歷所有文本,過濾文本中的無用信息,保留用戶的基本信息、發(fā)表時間和微博正文等有用信息,將過濾后的信息保存為txt文件,微博原始數據形式及過濾后的微博數據形式。之后的頻數分析均在過濾后的微博文本基礎上進行。
微博消息最多只有140字的短文本信息,由于一條微博可能含有多個文本片段,每個片段中都有可能包括一個或多個關鍵詞詞,以“,”、“?!?、“!”、“?”、“;”等標點符號作為微博片段分割的依據,利用Python編程將每條過濾后的微博文本分割為n個片段S1、S2、S3……Sn,在存儲微博文本片段時采用一個一行的方式。
在分割后的每個微博片段中,若同時出現目標詞的每一個字,則次數算一次。例:“房子價格上漲的真厲害”,同時出現關鍵詞中的每一個字“房”、“價”、“上”和“漲”;則算“房價上漲”目標詞出現一次。對所有微博片段進行分析,找出每個月份含有各個目標詞的微博片段,若某個片段中含有多個目標詞,則這條微博內容會同時保留在不同目標詞相應的文件中。統計每個月份含有各個目標詞的頻數,以csv格式進行保存。關鍵詞包括名詞和趨勢動詞。
知網(HowNet,www.keenage.com)在其官網發(fā)布了“情感分析用詞語集(beta版)”,共有12個文件。其中“中文情感分析用詞語集”與“英文情感分析用詞語集”各為6個,一共包含詞語17887個。采用知網情感詞典中的“中文程度級別詞語”,共219詞。根據“中文程度級別詞語”已有的情感強弱標注,將“極其|extreme/最|most”與“超|over”合并為“極量”;“很|very”為“高量”;“較|more”為“中量”;“稍|-ish”與“欠|insufficiently”合并為“低量”,并分別賦予這四個等級相應的權值(2,1.75,1.5,0.5)(見表1)。參考多篇文獻使用的否定詞情況,單獨構建了一個否定詞詞庫(見表2),共包括49個詞匯,并將權重設置為-1,程度級別詞語庫仍采用上面介紹的219個詞匯。
表1程度級別詞語詞庫
表2否定詞詞庫
實際應用中,含有目標詞的微博片段存在兩種情況,即可能包含程度級別詞語,也可能沒有包含程度級別詞語。若某條微博片段中沒有搜索到程度級別詞語,則該微博片段仍記為1。若搜索到某個程度級別詞語,則記為該程度級別詞語的相應權重(如:在某條微博片段中搜索到一個“最”,則該微博片段記為2;搜索到一個“最”,一個“不過”,則該微博片段記為3.75)。最后把所有微博片段的值相加,得到一個數,這個數就是某個目標詞在某個月份上的頻數。
每個用戶的詞頻=程度級別詞語權值*否定詞權重,詞頻為微博用戶在該月發(fā)布的內容出現關鍵詞的累加。
Python程序分為兩個部分,第一部分進行模糊匹配統計出每個月的用戶微博內容中出現的關鍵詞頻數,其核心是采用遍歷的方法處理數據,其中包括遍歷文件夾與文件,遍歷文本,遍歷字符串,以達到匹配、處理數據的目的。第二部分基于第一部分執(zhí)行完之后再進行執(zhí)行,依舊進行遍歷的算法來進行加權,加權后生成三種不同文件名的csv,分別為無權重無權值、有權重無權值、有權重有權值。最后在將三種文件的數據進行不同算法的處理,整合到總的數據處理結果的csv文件中。用戶詞典、程度級別詞語詞庫與否定詞詞庫都存儲在txt文件中,格式為一行一個,便于python程序讀取并保存在列表中。
上述雖然結合附圖對本發(fā)明的具體實施方式進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領域技術人員應該明白,在本發(fā)明的技術方案的基礎上,本領域技術人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內。