本發(fā)明涉及網(wǎng)絡(luò)搜索,特別涉及一種基于自然語(yǔ)言處理的輿情信息分析預(yù)警方法。
背景技術(shù):
互聯(lián)網(wǎng)已經(jīng)成為人們獲取信息的途徑,用戶通過(guò)互聯(lián)網(wǎng)這個(gè)信息平臺(tái),能夠表達(dá)自己對(duì)某些事件、現(xiàn)象以及政策的觀點(diǎn)。另一方面,也涌入了反動(dòng)、黃色以及網(wǎng)絡(luò)犯罪方面的內(nèi)容?,F(xiàn)有技術(shù)對(duì)于互聯(lián)網(wǎng)信息監(jiān)控方面已經(jīng)將網(wǎng)絡(luò)搜索、數(shù)據(jù)挖掘、智能分析以及話題監(jiān)控等方面的技術(shù)進(jìn)行了一定程度的提升,設(shè)計(jì)、實(shí)現(xiàn)了許多網(wǎng)絡(luò)話題系統(tǒng)。但整體解決方案與系統(tǒng)化的科學(xué)解釋、詳細(xì)描述、準(zhǔn)確預(yù)測(cè)以及實(shí)時(shí)控制還需要較大地改進(jìn)。
技術(shù)實(shí)現(xiàn)要素:
為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種基于自然語(yǔ)言處理的輿情信息分析預(yù)警方法,包括:
采用中文分詞算法對(duì)用戶話題數(shù)據(jù)進(jìn)行語(yǔ)義分詞處理,
挖掘詞語(yǔ)對(duì)象間的關(guān)聯(lián)并進(jìn)行信息特征提取,得到熱點(diǎn)話題;
根據(jù)所得到的熱點(diǎn)話題進(jìn)行輿情預(yù)警。
優(yōu)選地,所述采用中文分詞算法對(duì)用戶搜索數(shù)據(jù)進(jìn)行語(yǔ)義分詞處理,進(jìn)一步包括:
在建立分詞詞典的基礎(chǔ)上,綜合詞法、語(yǔ)法以及語(yǔ)義進(jìn)行的最短路徑式切分方法,即對(duì)話題信息進(jìn)行基于詞語(yǔ)內(nèi)容抽取,隨后進(jìn)行語(yǔ)義分析;根據(jù)句法結(jié)構(gòu)、每個(gè)實(shí)詞的語(yǔ)境以及具體隱含的詞義,推導(dǎo)出反映出信息句義的表現(xiàn)形式;將最后的出結(jié)果進(jìn)行淺層計(jì)算。
優(yōu)選地,所述熱點(diǎn)話題通過(guò)以下分類過(guò)程得到:
步驟一,按照文檔相似度數(shù)值對(duì)話題數(shù)據(jù)文檔進(jìn)行分類;
步驟二,隨機(jī)提取預(yù)定義數(shù)量的k個(gè)文檔作為初始分類點(diǎn),計(jì)算該類平均值,參照得出的平均值逐一將數(shù)據(jù)文檔歸屬最相近的類,完成后重新算出平均值;
步驟三,重復(fù)步驟二的操作,直至分類固定;將網(wǎng)頁(yè)內(nèi)容根據(jù)話題的相似性進(jìn)行分類后,對(duì)分類進(jìn)行修正,最終以樹(shù)形的結(jié)構(gòu)加以展示。
優(yōu)選地,文檔相似度通過(guò)兩個(gè)參數(shù)加以識(shí)別,分別是單位時(shí)間出現(xiàn)頻率sf以及單位時(shí)間報(bào)道天數(shù)rd,并計(jì)算
優(yōu)選地,本發(fā)明的輿情預(yù)警包括監(jiān)測(cè)策略與控制策略;
所述監(jiān)測(cè)策略是通過(guò)網(wǎng)絡(luò)爬取引擎采集網(wǎng)頁(yè)信息,根據(jù)話題設(shè)定的嚴(yán)重等級(jí)動(dòng)態(tài)調(diào)整網(wǎng)絡(luò)爬取引擎的頻率與范圍,監(jiān)測(cè)網(wǎng)絡(luò)話題的發(fā)展趨勢(shì);
對(duì)于用戶參與度高于閾值的網(wǎng)頁(yè),采用動(dòng)態(tài)爬取引擎采集;對(duì)于緊急的嚴(yán)重話題,則采用緊急爬取引擎采集,并采用單獨(dú)一臺(tái)服務(wù)器采集該話題的相關(guān)信息;
所述控制策略包括設(shè)定核心話題、核心用戶以及核心網(wǎng)站,根據(jù)話題參與熱度與傳播速度,針對(duì)相應(yīng)的話題、用戶和網(wǎng)站分別進(jìn)行監(jiān)聽(tīng)和控制。
本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
本發(fā)明提出了一種基于自然語(yǔ)言處理的輿情信息分析預(yù)警方法,基于改進(jìn)的數(shù)據(jù)爬取和分析過(guò)程,對(duì)輿情信息實(shí)現(xiàn)了準(zhǔn)確預(yù)測(cè)以及實(shí)時(shí)控制。
附圖說(shuō)明
圖1是根據(jù)本發(fā)明實(shí)施例的基于自然語(yǔ)言處理的輿情信息分析預(yù)警方法的流程圖。
具體實(shí)施方式
下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書(shū)限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書(shū)實(shí)現(xiàn)本發(fā)明。
本發(fā)明的一方面提供了一種基于自然語(yǔ)言處理的輿情信息分析預(yù)警方法。圖1是根據(jù)本發(fā)明實(shí)施例的基于自然語(yǔ)言處理的輿情信息分析預(yù)警方法流程圖。
本發(fā)明首先對(duì)互聯(lián)網(wǎng)話題進(jìn)行綜合采集。按照用戶的設(shè)置遍歷預(yù)設(shè)范圍內(nèi)的網(wǎng)頁(yè),針對(duì)特定話題進(jìn)行抓取、分類和保存;根據(jù)高效的搜索策略,從信息隊(duì)列中抓取網(wǎng)頁(yè)url地址,并將抓取到的url地址進(jìn)行系統(tǒng)存儲(chǔ)、分析、去重過(guò)濾、建立索引;最后采用中文分詞、數(shù)據(jù)挖掘,在大量信息樣本中挖掘出對(duì)象間的關(guān)聯(lián)和信息特征提取,從而提供有效的信息特征參數(shù)值。
根據(jù)系統(tǒng)容量及性能要求,采集網(wǎng)絡(luò)話題的服務(wù)器個(gè)數(shù)根據(jù)監(jiān)控網(wǎng)站數(shù)量、網(wǎng)絡(luò)話題的監(jiān)測(cè)范圍以及更新頻率而進(jìn)行調(diào)整。在抓取網(wǎng)絡(luò)話題階段,對(duì)相關(guān)網(wǎng)頁(yè)進(jìn)行訪問(wèn),提取出有用的話題并將提取的數(shù)據(jù)結(jié)構(gòu)化;使用爬取引擎縮小鏈接的范圍,只需要爬取相關(guān)話題頁(yè)面的信息并可以從網(wǎng)頁(yè)的源文件中定位標(biāo)簽屬性信息,進(jìn)行同類話題網(wǎng)頁(yè)的聚類。
采用深度搜索爬取策略,在爬取的過(guò)程中獲取主題相關(guān)的信息與鏈接并放入爬取隊(duì)列,并爬取鏈接所關(guān)聯(lián)的網(wǎng)頁(yè)信息。在爬取到網(wǎng)頁(yè)中的主題鏈接頁(yè)面后,獲取標(biāo)題、用戶、發(fā)起時(shí)間、最后回復(fù)時(shí)間以及相關(guān)鏈接的url,并記錄下主題的回復(fù)數(shù),然后再通過(guò)主題的源碼獲取主題的內(nèi)容信息。在進(jìn)一步抓取的過(guò)程中,若發(fā)現(xiàn)回復(fù)數(shù)與上一步獲取的數(shù)值不匹配,則迭代查找是否存在未爬取的頁(yè)面;若回復(fù)數(shù)匹配,則爬取至下一主題進(jìn)行重復(fù)的信息獲取過(guò)程。對(duì)于每一個(gè)話題形成的獨(dú)立信息塊,獲取每個(gè)信息塊形成的文檔樹(shù),所有對(duì)于該主題的話題信息都位于這一文檔樹(shù)的同一父節(jié)點(diǎn)之下??梢圆捎帽砀駚?lái)容納標(biāo)簽數(shù)據(jù)。
在對(duì)標(biāo)簽進(jìn)行采集之后,對(duì)采集到的話題進(jìn)行解析,基于web的程序遍歷所采集的網(wǎng)頁(yè)的所有內(nèi)部url的鏈接,判別重復(fù)信息的同時(shí)進(jìn)行去重,具體包括:
去采集到的話題信息進(jìn)行過(guò)濾處理,丟棄源碼中的干擾信息;
將過(guò)濾后話題信息的每個(gè)字符進(jìn)行映射處理,生成各自對(duì)應(yīng)的一個(gè)數(shù)值,從而將原始的話題信息轉(zhuǎn)化為一個(gè)離散序列組,表示為:y(i),i=1,2,...,n。
對(duì)生成的離散序列組進(jìn)行fft變換,得出fft系數(shù),用參數(shù)表示為ai,bi。
將ai,bi的前k個(gè)項(xiàng)提取出來(lái)并作為fft進(jìn)行系統(tǒng)向量的展開(kāi)與比較處理,通過(guò)比較兩個(gè)信息間是否有近似數(shù)值序列來(lái)判斷兩者的相似性,k為預(yù)定義常數(shù)。
在建立分詞詞典的基礎(chǔ)上,綜合詞法、語(yǔ)法以及語(yǔ)義進(jìn)行的最短路徑式切分方法,具體描述如下:對(duì)話題信息進(jìn)行基于詞語(yǔ)內(nèi)容抽取。隨后進(jìn)行語(yǔ)義分析。根據(jù)句法結(jié)構(gòu)、信息中每個(gè)實(shí)詞的語(yǔ)境以及具體隱含的詞義,推導(dǎo)出反映出信息句義的表現(xiàn)形式;將最后的出結(jié)果進(jìn)行淺層計(jì)算。
首先采用分詞詞典來(lái)進(jìn)行劃分,對(duì)長(zhǎng)詞再次切分。掃描詞圖生成句子中漢字所有可能成詞情況所構(gòu)成的有向無(wú)環(huán)圖。然后采用動(dòng)態(tài)規(guī)劃查找最大概率路徑,找出基于詞頻的最大切分組合;提取文檔的特征值即關(guān)鍵詞,將其放入統(tǒng)一的集合對(duì)象中,將兩篇文檔的特征向量提取后放入散列圖的數(shù)據(jù)結(jié)構(gòu),然后遍歷這個(gè)散列圖將所有遍歷到的元素再重新合并到一個(gè)新的散列圖中,這樣就獲取了兩個(gè)文檔的特征向量并集;遍歷整篇文檔,然后統(tǒng)計(jì)關(guān)鍵詞的詞頻。將鍵值對(duì)形式的統(tǒng)計(jì)結(jié)果放入散列圖中,生成了兩篇文檔的特征向量。
采取多索引協(xié)同工作,網(wǎng)頁(yè)庫(kù)和詞典庫(kù)都采用倒排索引加索引雙重定位。詞典倒排索引文件以json格式存儲(chǔ)在磁盤(pán)中。系統(tǒng)啟動(dòng)后就存儲(chǔ)在內(nèi)存中。當(dāng)詞典的倒排索引建立后,建立單詞和文檔權(quán)重的倒排索引,找到包含用戶查詢關(guān)鍵詞的文檔集合后,遍歷候選文檔集合,將用戶的輸入當(dāng)作一篇文檔,依次將候選文檔集合中的文檔和用戶的輸入的文檔依次計(jì)算文本相似度,然后將計(jì)算的結(jié)果存入優(yōu)先級(jí)隊(duì)列,將候選文檔按照優(yōu)先級(jí)高低返回給用戶。
本發(fā)明使用三個(gè)緩存,用戶搜索詞糾錯(cuò)結(jié)果緩存,標(biāo)題摘要緩存和標(biāo)題和網(wǎng)頁(yè)內(nèi)容緩存。單獨(dú)開(kāi)辟兩條緩存線程來(lái)管理和同步上述三個(gè)緩存。其中,當(dāng)用戶的輸入無(wú)誤時(shí),返回輸入正確的結(jié)果,同時(shí)進(jìn)入頁(yè)面查詢。如果客戶端輸入錯(cuò)誤,則執(zhí)行文本糾錯(cuò)算法,把最接近用戶輸入的結(jié)果候選項(xiàng)按優(yōu)先級(jí)隊(duì)列從高到低返回給用戶;此時(shí)緩存同步線程將糾錯(cuò)結(jié)果寫(xiě)入map,然后再以預(yù)定義間隔由同步線程寫(xiě)入磁盤(pán)。所述標(biāo)題摘要緩存用于用戶查詢都返回標(biāo)題和摘要的鍵值對(duì)并且用戶重復(fù)查詢一個(gè)關(guān)鍵詞時(shí),工作線程直接從線程同步的緩存中取出結(jié)果,直接返回給用戶;內(nèi)容緩存用戶緩存已被命中的網(wǎng)頁(yè)數(shù)據(jù)。
本發(fā)明采用主線程監(jiān)聽(tīng)客戶端連接,然后把業(yè)務(wù)部分,就是用戶查詢操作交給線程來(lái)進(jìn)行處理,主線程負(fù)責(zé)所有的i/o操作,收齊一個(gè)請(qǐng)求所有數(shù)據(jù)之后交給工作線程進(jìn)行處理。處理完成之后,把需要寫(xiě)回的數(shù)據(jù)還給主線程去進(jìn)行寫(xiě)回?cái)?shù)據(jù)直到阻塞,然后返回主線程繼續(xù)。當(dāng)搜索數(shù)據(jù)越來(lái)越大時(shí),索引文件也會(huì)成比例地變大。本發(fā)明通過(guò)把內(nèi)存索引作為—個(gè)緩沖器實(shí)現(xiàn)索引批處理,首先指定索引對(duì)應(yīng)的網(wǎng)頁(yè)庫(kù)的路徑和建立索引的路徑,將待索引文件加載到內(nèi)存中創(chuàng)建索引,即先將待索引文件寫(xiě)入內(nèi)存中,定義兩個(gè)散列圖分別存儲(chǔ)磁盤(pán)索引和內(nèi)存索引,設(shè)定在內(nèi)存中索引的文件的最大數(shù)即閾值,當(dāng)待索引文件數(shù)達(dá)到最大閾值時(shí),刷新內(nèi)存,將內(nèi)存中己創(chuàng)建好的索引文件批量寫(xiě)入磁盤(pán)目錄中。
其中發(fā)現(xiàn)熱點(diǎn)話題的方法描述如下:步驟一,首先按照文檔相似度數(shù)值對(duì)話題數(shù)據(jù)文檔進(jìn)行分類;步驟二,隨機(jī)提取預(yù)定義數(shù)量的k個(gè)文檔作為初始分類點(diǎn),計(jì)算該類平均值,參照得出的平均值逐一將數(shù)據(jù)文檔歸屬最相近的類,完成后重新算出平均值;步驟三,重復(fù)步驟二的操作,直至分類固定。將網(wǎng)頁(yè)內(nèi)容根據(jù)話題的相似性進(jìn)行分類后,對(duì)分類進(jìn)行修正,最終以樹(shù)形的結(jié)構(gòu)加以展示。
文檔相似度通過(guò)兩個(gè)參數(shù)加以識(shí)別,分別是:?jiǎn)挝粫r(shí)間出現(xiàn)頻率sf以及單位時(shí)間報(bào)道天數(shù)rd,并計(jì)算
在確定熱點(diǎn)話題后,對(duì)話題進(jìn)行追蹤,首先對(duì)數(shù)據(jù)文檔分類,將每個(gè)信息放到相應(yīng)類別中,確定距離機(jī)制,對(duì)測(cè)試集中話題信息的每個(gè)數(shù)據(jù)點(diǎn)i,可以找到數(shù)據(jù)點(diǎn)i的y個(gè)最鄰近的點(diǎn),y為k近鄰算法的預(yù)設(shè)參數(shù);提取出y個(gè)最近鄰居的分類屬性,并根據(jù)提取出的分類屬性決定被預(yù)測(cè)點(diǎn)的分類屬性;計(jì)算得出語(yǔ)義關(guān)系分類誤差。
接下來(lái),如果要從大量的話題中挖掘出哪些內(nèi)容是表示用戶對(duì)某個(gè)新聞或者事件發(fā)表的評(píng)論觀點(diǎn)。則需要關(guān)鍵話題的一系列詞語(yǔ)向量,通過(guò)對(duì)主題句或者主題詞進(jìn)行挖掘分析實(shí)現(xiàn)話題挖掘監(jiān)測(cè)。本發(fā)明采用基于權(quán)重和分類的方法得到主題詞集合。第一步,為每個(gè)可能成為主題詞的詞語(yǔ)建立一個(gè)維度為n的向量模型,n值根據(jù)所挖掘的信息文檔數(shù)量與該詞語(yǔ)在文檔中出現(xiàn)的頻率而決定。第二步,對(duì)每?jī)蓚€(gè)關(guān)鍵詞進(jìn)行余弦相似性比較,一旦超過(guò)設(shè)定閾值,則將關(guān)鍵詞做分類處理,找出共同出現(xiàn)頻率高的詞語(yǔ),并分析關(guān)鍵詞與相關(guān)動(dòng)詞間的結(jié)合性,從而生成主題詞列表。第三步,過(guò)濾掉無(wú)意義的主題詞組合,將剩下的詞語(yǔ)可待分析的主題詞。第四步,并生成主題詞列表,計(jì)算出網(wǎng)頁(yè)中包含主題詞的句子,生成主題句集;第五步,在拆分主題句的過(guò)程中,在每個(gè)句尾追加該主題句所屬的id號(hào);使用k均值聚類對(duì)生成的主題句進(jìn)行挖掘分析,對(duì)每類主題句數(shù)目分別進(jìn)行排序,從中提取出分類結(jié)果最高的前m個(gè)分類。其中在聚類的過(guò)程中,先得出目標(biāo)的特征向量,再根據(jù)任意主題句之間的相似度進(jìn)行迭代分類,當(dāng)分類過(guò)程中出現(xiàn)多個(gè)主題相同的信息時(shí),通過(guò)設(shè)定閾值進(jìn)行限定,使得每個(gè)類別中都作為相同主體的主題句。篩選主題詞情感特征,提取出話題觀點(diǎn)。
本發(fā)明的輿情預(yù)警策略包括兩個(gè)部分,分別是監(jiān)測(cè)策略與控制策略。監(jiān)測(cè)策略是通過(guò)網(wǎng)絡(luò)爬取引擎采集網(wǎng)頁(yè)信息,根據(jù)話題設(shè)定的嚴(yán)重等級(jí)動(dòng)態(tài)地調(diào)整網(wǎng)絡(luò)爬取引擎的頻率與范圍,從而及時(shí)、有效地監(jiān)測(cè)網(wǎng)絡(luò)話題的發(fā)展趨勢(shì)。根據(jù)話題嚴(yán)重等級(jí),調(diào)整網(wǎng)絡(luò)爬取引擎的采集方式,在具體監(jiān)測(cè)的過(guò)程中,對(duì)于用戶參與度高于閾值的網(wǎng)頁(yè),采用動(dòng)態(tài)爬取引擎采集;對(duì)于緊急的嚴(yán)重話題,則采用緊急爬取引擎采集,并采用單獨(dú)一臺(tái)服務(wù)器采集該話題的相關(guān)信息。控制策略包括根據(jù)網(wǎng)絡(luò)上的話題設(shè)定核心話題、核心用戶以及核心網(wǎng)站,根據(jù)話題參與熱度與傳播速度,針對(duì)相應(yīng)的話題、用戶和網(wǎng)站分別進(jìn)行監(jiān)聽(tīng)和控制。具體地,本發(fā)明采用在特定時(shí)間段內(nèi)主題的參與數(shù)平均值表示該話題的關(guān)注度:
其中,話題節(jié)點(diǎn)i入度為di,話題數(shù)為ni,回復(fù)集合為rj,話題節(jié)點(diǎn)j的用戶發(fā)布數(shù)為mj,延時(shí)為t,當(dāng)前話題節(jié)點(diǎn)的回復(fù)數(shù)量為n。
綜上所述,本發(fā)明提出了一種基于自然語(yǔ)言處理的輿情信息分析預(yù)警方法,基于改進(jìn)的數(shù)據(jù)爬取和分析過(guò)程,對(duì)輿情信息實(shí)現(xiàn)了準(zhǔn)確預(yù)測(cè)以及實(shí)時(shí)控制。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算系統(tǒng)來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算系統(tǒng)上,或者分布在多個(gè)計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)系統(tǒng)中由計(jì)算系統(tǒng)來(lái)執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說(shuō)明或解釋本發(fā)明的原理,而不構(gòu)成對(duì)本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。