本發(fā)明涉及智能應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)新聞獲取及文本情感預(yù)測系統(tǒng)。
背景技術(shù):
在互聯(lián)網(wǎng)迅速發(fā)展的今天,網(wǎng)絡(luò)已成為人們獲取信息的重要來源,促使人們更加便捷地了解社會動態(tài)。但在現(xiàn)實生活中,人們在閱讀完一則新聞后,會自主的產(chǎn)生相應(yīng)的情感,例如:大部分人看見“不合時宜”新聞會變得憤怒;看見“某某見義勇為”新聞會被感動,事實上,新聞?wù)谋旧砜赡懿缓魏吻楦性~(如“郁悶”、“難過”、“高興”等),但閱讀這類新聞卻會讓人產(chǎn)生某種情感傾向,這種情感傾向具有一定的分布規(guī)律,且大部分人對某一新聞的情感反應(yīng)基本一致。
隨著數(shù)據(jù)量的增大,政府及網(wǎng)站維護(hù)者無法提前預(yù)知網(wǎng)絡(luò)新聞可能對民眾產(chǎn)生的情緒及其社會影響,鑒于此,迫切需要一個文本情感預(yù)測系統(tǒng),能夠預(yù)知民眾閱讀新聞后會可能產(chǎn)生的情感,提前預(yù)防與干預(yù),從而達(dá)到對文本情感傾向性預(yù)測與輿情分析的目的。
目前出現(xiàn)的很多文本情感預(yù)測系統(tǒng),主要針對主觀文本(如評論、觀點(diǎn)、好惡等)進(jìn)行分析挖掘,即根據(jù)主觀文本中的情感關(guān)鍵詞,找出這些主觀文本所反映的用戶情感傾向,通常含有正、負(fù)兩類情感,不能通過系統(tǒng)分析新聞?wù)?,以此來挖掘出新聞中隱藏的影響人們情感的因素。
技術(shù)實現(xiàn)要素:
本發(fā)明所解決的技術(shù)問題在于提供一種網(wǎng)絡(luò)新聞獲取及文本情感預(yù)測系統(tǒng),以解決上述背景技術(shù)中的缺點(diǎn)。
本發(fā)明所解決的技術(shù)問題采用以下技術(shù)方案來實現(xiàn):
一種網(wǎng)絡(luò)新聞獲取及文本情感預(yù)測系統(tǒng),以網(wǎng)絡(luò)爬取的新聞文本作為訓(xùn)練集,利用文本分類算法,建立訓(xùn)練模型,根據(jù)訓(xùn)練模型對待預(yù)測新聞文本進(jìn)行分類,自動情感標(biāo)注,預(yù)測待發(fā)表的網(wǎng)絡(luò)新聞文本對公眾情緒可能造成的影響,具體步驟:
一)以網(wǎng)絡(luò)爬取的新聞文本作為訓(xùn)練集
通過爬蟲海量爬取網(wǎng)頁信息,并在爬取過程中解析新聞?wù)暮屯镀睌?shù),同時根據(jù)設(shè)定的關(guān)鍵詞對新聞?wù)倪M(jìn)行預(yù)處理匹配構(gòu)建語料庫,在根據(jù)投票數(shù)對新聞?wù)倪M(jìn)行自動情感標(biāo)注,以獲取滿足需求的語料并存儲到本地;
①社會新聞獲取
主要抓取含有情感投票數(shù)的社會新聞網(wǎng)站,利用爬蟲爬取網(wǎng)頁,首先分析網(wǎng)站的結(jié)構(gòu),將與即將爬取的新聞相關(guān)內(nèi)容新聞鏈接url從網(wǎng)頁源碼中抽出,獲取新聞對應(yīng)的url后,使用httpclient發(fā)送請求,接收響應(yīng),并利用htmlparser解析響應(yīng),以獲取與該新聞對應(yīng)的內(nèi)容,如標(biāo)題、正文和投票數(shù);采用邊抓取邊過濾的原則,若解析網(wǎng)頁得到的新聞?wù)幕驑?biāo)題中沒有出現(xiàn)關(guān)鍵詞或與之近似的詞(由用戶給定),則認(rèn)為該新聞與關(guān)鍵詞無關(guān),舍棄;
②語料庫構(gòu)建與數(shù)據(jù)存儲
語料庫選用mysql,建立表格,將爬取與設(shè)定的關(guān)鍵詞相關(guān)的文本存入語料庫;
i)創(chuàng)建新聞表,表的字段有新聞鏈接news_url、新聞標(biāo)題news_title、新聞?wù)膎ews_content及新聞投票數(shù)news_vote,以新聞鏈接為主鍵,將爬蟲爬取的內(nèi)容存入新聞表;
ii)創(chuàng)建關(guān)鍵詞表,表的字段有關(guān)鍵詞序號keyword_id、關(guān)鍵詞keyword;讀取用戶設(shè)定的關(guān)鍵詞,以關(guān)鍵詞為主鍵,存儲至關(guān)鍵詞表;
iii)創(chuàng)建索引表,表的字段有序號id、關(guān)鍵詞keyword、新聞標(biāo)題news_title、新聞?wù)膎ews_content及新聞投票數(shù)news_vote,選擇新聞表中包含關(guān)鍵詞的新聞,以關(guān)鍵詞為索引,存儲至索引表;
③自動標(biāo)注情感類別
根據(jù)解析新聞url對應(yīng)的響應(yīng),得到每條新聞的投票數(shù),以投票數(shù)為基礎(chǔ),設(shè)置自動標(biāo)注實施方式:
a)自定義投票總數(shù)閾值n,若某個新聞的投票總數(shù)小于n,該新聞將被跳過;
b)自定義差值閾值m,若某個新聞中最多的投票數(shù)與次多的投票數(shù)之差小于m時,則不參與構(gòu)建語料庫;
c)若新聞投票數(shù)超過閾值n和m,則標(biāo)注該新聞為投票數(shù)最多的一類,實現(xiàn)自動標(biāo)注,最終將自動標(biāo)注后的新聞文本按類別存入訓(xùn)練集對應(yīng)的表中;
二)文本預(yù)處理
對訓(xùn)練集中的新聞文本進(jìn)行預(yù)處理,包括分詞和去停用詞,基于中科院ictclas2015和lucence分詞系統(tǒng)接口,以完成分詞;允許用戶自定義停用詞表,也可使用默認(rèn)停用詞表,以濾除類別區(qū)分能力不強(qiáng)、語義信息不多的詞;
三)特征選擇及特征權(quán)重設(shè)置
對預(yù)處理完畢的訓(xùn)練集新聞文本進(jìn)行特征選擇與權(quán)重設(shè)置,特征選擇是除去特征集中不能較好表示有效信息的特征,以提高分類準(zhǔn)確度和減少計算復(fù)雜度;權(quán)重設(shè)置是利用新聞文本的統(tǒng)計信息,給特征項賦予一定的權(quán)值;
1)構(gòu)建文本向量空間模型
首先,將訓(xùn)練集的新聞文本轉(zhuǎn)化為計算機(jī)可讀格式,即將無結(jié)構(gòu)文本轉(zhuǎn)換為結(jié)構(gòu)化文本,將一篇新聞文本document轉(zhuǎn)換為向量,向量每一維值代表特征權(quán)重,通過特征選擇構(gòu)建特征詞典,特征詞典的詞匯量為n,構(gòu)建n維向量表示新聞文本,采用權(quán)重計算方法計算每一維的權(quán)重值,以構(gòu)建文本向量空間模型;
2)特征選擇
采用一元詞、二元詞和主題三種粒度下提取特征,特征選擇提取完畢后將特征存儲在hashmap中;在提取文本特征,以卡方統(tǒng)計量算法計算度量詞與文檔類別之間的相關(guān)程度,詞對應(yīng)某一類的卡方統(tǒng)計值越高,說明可能代表某一類文檔,即具有的類別區(qū)分信息越多,對于多類別問題,先計算出詞對于每一個類別的卡方值,然后選取其中最大的值作為詞在整個語料上的卡方值;
3)特征權(quán)重設(shè)置
特征權(quán)重用于衡量某個特征項在文本表示中的重要程度或區(qū)分能力強(qiáng)弱,采用tfidf計算權(quán)重,其中tf為詞頻,用于計算該詞描述文檔內(nèi)容的能力;idf為逆文檔頻率,用于計算該詞區(qū)分文檔的能力;
四)建立訓(xùn)練模型
通過svm訓(xùn)練方法,對設(shè)置有特征權(quán)重的卡方值核函數(shù)進(jìn)行非線性變換,將輸入的非線性特征向量映射至高維特征空間,而后在高維特征空間中尋找最優(yōu)線形分類面,以將文本類分開,建立訓(xùn)練模型;
i)訓(xùn)練集向量模型
自定義特征維數(shù),根據(jù)特征選擇方法提取特征,設(shè)置粒度下的權(quán)重,但特征維數(shù)過大易導(dǎo)致訓(xùn)練速度緩慢,過擬合及引入過多噪聲、特征維數(shù)過小則不能攜帶足量的文本信息,都將對分類性能產(chǎn)生影響,故設(shè)置在不同特征維數(shù)下的訓(xùn)練模型,利用交叉驗證或者預(yù)測在測試集上的分類準(zhǔn)確率,確定最優(yōu)輸入維數(shù),建立訓(xùn)練集向量模型;
ii)輸入歸一化
因訓(xùn)練集向量模型原始數(shù)據(jù)可能范圍過大或過小,先將訓(xùn)練集向量模型原始數(shù)據(jù)重新縮放到適當(dāng)范圍進(jìn)行輸入歸一化,使訓(xùn)練與預(yù)測速度更快;
iii)交叉驗證參數(shù)尋優(yōu)
采用網(wǎng)格搜索,允許自定義損失函數(shù)和核函數(shù)中g(shù)amma函數(shù)的初始值、步長,使用5折交叉驗證法評價在不同損失函數(shù)與gamma函數(shù)下訓(xùn)練模型的優(yōu)劣,這樣可以避免隨機(jī)因素干擾,得到最優(yōu)損失函數(shù)與核函數(shù),以建立svm模型;其中,5折交叉驗證是指將初始采樣分割成5個子樣本,一個單獨(dú)子樣本被保留作為驗證模型的數(shù)據(jù),其他4個樣本用來訓(xùn)練,交叉驗證重復(fù)5次,每個子樣本驗證一次,平均5次的結(jié)果,最終得到單一估測;
五)預(yù)測輸出
將爬蟲海量爬取的網(wǎng)頁信息進(jìn)行輸入歸一化后載入訓(xùn)練向量模型,使用svm模型對待分類文本進(jìn)行預(yù)測,輸出預(yù)測類標(biāo)簽。
有益效果:本發(fā)明以網(wǎng)絡(luò)爬取的新聞文本作為訓(xùn)練集,利用文本分類算法,建立訓(xùn)練模型,根據(jù)訓(xùn)練模型對待預(yù)測新聞文本進(jìn)行分類,自動情感標(biāo)注,預(yù)測待發(fā)表的新聞文本對公眾情緒可能造成的影響,構(gòu)建社會新聞對公眾情感影響的文本情感預(yù)測系統(tǒng),預(yù)測一個新聞可能造成的輿情,為網(wǎng)絡(luò)安全提供便利。
附圖說明
圖1是本發(fā)明的較佳實施例的流程圖。
具體實施方式
為了使本發(fā)明實現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。
參見圖1所示一種網(wǎng)絡(luò)新聞獲取及文本情感預(yù)測系統(tǒng),具體步驟:
一)建立以網(wǎng)絡(luò)爬取的新聞文本作為訓(xùn)練集
通過爬蟲海量爬取網(wǎng)頁信息,并在爬取過程中解析新聞?wù)暮屯镀睌?shù),同時根據(jù)設(shè)定的關(guān)鍵詞對新聞?wù)倪M(jìn)行預(yù)處理匹配構(gòu)建語料庫,在根據(jù)投票數(shù)對新聞?wù)倪M(jìn)行自動情感標(biāo)注,以獲取滿足需求的語料并存儲到本地;
①社會新聞獲取
主要抓取含有情感投票數(shù)的社會新聞網(wǎng)站,利用爬蟲爬取網(wǎng)頁,首先分析網(wǎng)站的結(jié)構(gòu),將與即將爬取的新聞相關(guān)內(nèi)容(如新聞鏈接url)從網(wǎng)頁源碼中抽取出來,濾除一些無用鏈接如廣告等;獲取新聞對應(yīng)的url后,使用httpclient發(fā)送請求,接收響應(yīng),并利用htmlparser解析響應(yīng),以獲取與該新聞對應(yīng)的內(nèi)容,如標(biāo)題、正文和投票數(shù);采用邊抓取邊過濾的原則,若解析網(wǎng)頁得到的新聞?wù)幕驑?biāo)題中沒有出現(xiàn)關(guān)鍵詞或與之近似的詞(由用戶給定),則認(rèn)為該新聞與關(guān)鍵詞無關(guān),舍棄;
②語料庫構(gòu)建與數(shù)據(jù)存儲
語料庫選用mysql,建立表格,將爬取與設(shè)定的關(guān)鍵詞相關(guān)的文本存入語料庫;
i)創(chuàng)建新聞表,表的字段有新聞鏈接news_url、新聞標(biāo)題news_title、新聞?wù)膎ews_content及新聞投票數(shù)news_vote,以新聞鏈接為主鍵,可防止插入重復(fù)的新聞,將爬蟲爬取的內(nèi)容存入新聞表;
ii)創(chuàng)建關(guān)鍵詞表,表的字段有關(guān)鍵詞序號keyword_id、關(guān)鍵詞keyword;讀取用戶設(shè)定的關(guān)鍵詞,以關(guān)鍵詞為主鍵,存儲至關(guān)鍵詞表;
iii)創(chuàng)建索引表,表的字段有序號id、關(guān)鍵詞keyword、新聞標(biāo)題news_title、新聞?wù)膎ews_content及新聞投票數(shù)news_vote,選擇新聞表中包含關(guān)鍵詞的新聞,以關(guān)鍵詞為索引,存儲至索引表;
③自動標(biāo)注情感類別
根據(jù)解析新聞url對應(yīng)的響應(yīng),得到每條新聞的投票數(shù),以投票數(shù)為基礎(chǔ),設(shè)置自動標(biāo)注實施方式:
a)自定義投票總數(shù)閾值n,若某個新聞的投票總數(shù)小于n,該新聞將被跳過;
b)自定義差值閾值m,若某個新聞中最多的投票數(shù)與次多的投票數(shù)之差小于m時,則不參與構(gòu)建語料庫;
c)若新聞投票數(shù)超過閾值n和m,則標(biāo)注該新聞為投票數(shù)最多的一類,實現(xiàn)自動標(biāo)注,最終將自動標(biāo)注后的新聞文本按類別存入訓(xùn)練集對應(yīng)的表中;
二)文本預(yù)處理
對訓(xùn)練集中的新聞文本進(jìn)行預(yù)處理,包括分詞和去停用詞,基于中科院ictclas2015和lucence分詞系統(tǒng)接口,以完成分詞;允許用戶自定義停用詞表,也可使用默認(rèn)停用詞表,以濾除類別區(qū)分能力不強(qiáng)、語義信息不多的詞(如了,啊等);
三)特征選擇及特征權(quán)重設(shè)置
對預(yù)處理完畢的訓(xùn)練集新聞文本進(jìn)行特征選擇與權(quán)重設(shè)置,特征選擇是除去特征集中不能較好表示有效信息的特征,以提高分類準(zhǔn)確度和減少計算復(fù)雜度;權(quán)重設(shè)置是利用新聞文本的統(tǒng)計信息,給特征項賦予一定的權(quán)值;
1)構(gòu)建文本向量空間模型
首先,將訓(xùn)練集的新聞文本轉(zhuǎn)化為計算機(jī)可讀格式,即將無結(jié)構(gòu)文本轉(zhuǎn)換為結(jié)構(gòu)化文本,以便于計算機(jī)處理;本實施例使用向量空間模型,即將一篇新聞文本document轉(zhuǎn)換為向量,向量每一維值代表特征權(quán)重;
具體步驟:設(shè)一篇新聞文本document={t1,w1;......tm,wm},其中,tn為第n維特征項,wn為第n維權(quán)重值,以本文為例,通過特征選擇構(gòu)建特征詞典,特征詞典的詞匯量為n,構(gòu)建n維向量表示新聞文本,采用權(quán)重計算方法計算每一維的權(quán)重值,以構(gòu)建文本向量空間模型;
2)特征選擇
采用一元詞、二元詞和主題三種粒度下提取特征,以二元詞粒度下提取特征為例:使用skip-bigrams二元詞特征詞典,將訓(xùn)練集新聞文本內(nèi)容按照詞進(jìn)行中間最大間隔為2的滑動窗口操作,形成長度為2的詞片段序列,而后存儲在hashmap中,即可產(chǎn)生具有明顯感情傾向的二元特征詞,如在“我|愛|中國”這句話中,使用skip-bigram二元詞特征詞典可以產(chǎn)生“我/愛”、“愛/中國”、“我/中國”這樣的二元詞組,其中出現(xiàn)了“愛/中國”這樣一個語義豐富的特征詞,在大規(guī)模語料上,可以獲取更多這種共現(xiàn)關(guān)系,分完詞后存儲在hashmap中;
特征選擇構(gòu)建完畢后,提取文本特征,本實施例以卡方統(tǒng)計量算法為例:通過對理論值和實際值的比對,確定理論是否正確,主要是度量詞與文檔類別之間的相關(guān)程度,假設(shè)詞t與文檔類別c服從一階自由度的卡方分布,那么詞對應(yīng)某一類的卡方統(tǒng)計值越高,就說明它可能代表某一類文檔,即具有的類別區(qū)分信息越多,卡方的公式如下所示:
其中,a表示c類中包含詞t的文檔數(shù),b表示除c類中包含詞t文檔數(shù),c表示c類中不包含詞t的文檔數(shù),d表示除c類中不包含詞t的文檔數(shù),sum為所有文檔數(shù);
對于多類別問題,可以先計算出詞t對于每一個類別的卡方值,然后選取其中最大的值作為詞t在整個語料上的卡方值;
3)特征權(quán)重設(shè)置
特征權(quán)重用于衡量某個特征項在文本表示中的重要程度或區(qū)分能力強(qiáng)弱,本實施例采用tfidf計算權(quán)重,其中tf為詞頻,用于計算該詞描述文檔內(nèi)容的能力;idf為逆文檔頻率,用于計算該詞區(qū)分文檔的能力;
四)建立訓(xùn)練模型
本實施例以svm訓(xùn)練方法為例,其基本方式是通過核函數(shù)進(jìn)行非線性變換,將輸入的非線性特征向量映射至高維特征空間,而后在高維特征空間中尋找最優(yōu)線形分類面,以將文本類分開,建立訓(xùn)練模型;
i)訓(xùn)練集向量模型
自定義特征維數(shù),根據(jù)特征選擇方法提取特征,設(shè)置二元詞粒度下的權(quán)重,構(gòu)建文本向量空間模型,但特征維數(shù)過大易導(dǎo)致訓(xùn)練速度緩慢,過擬合及引入過多噪聲、特征維數(shù)過小則不能攜帶足量的文本信息,都將對分類性能產(chǎn)生影響,故設(shè)置在不同特征維數(shù)下的訓(xùn)練模型,利用交叉驗證或者預(yù)測在測試集上的分類準(zhǔn)確率,確定最優(yōu)輸入維數(shù),建立訓(xùn)練集向量模型;
ii)輸入歸一化
因訓(xùn)練集原始數(shù)據(jù)可能范圍過大或過小,可以先將訓(xùn)練集原始數(shù)據(jù)重新縮放到適當(dāng)范圍進(jìn)行輸入歸一化,使訓(xùn)練與預(yù)測速度更快;
iii)交叉驗證參數(shù)尋優(yōu)
svm中需要設(shè)置一些比較重要的參數(shù),如損失函數(shù)(c)和核函數(shù)中g(shù)amma函數(shù)(g),才能保證整體泛化性能良好,本實施例采用網(wǎng)格搜索,允許自定義c、g的初始值和步長,使用5折交叉驗證法評價在不同損失函數(shù)與gamma函數(shù)下訓(xùn)練模型的優(yōu)劣,這樣可以避免隨機(jī)因素干擾,得到最優(yōu)的c、g,以建立svm模型。其中,5折交叉驗證是指將初始采樣分割成5個子樣本,一個單獨(dú)子樣本被保留作為驗證模型的數(shù)據(jù),其他4個樣本用來訓(xùn)練,交叉驗證重復(fù)5次,每個子樣本驗證一次,平均5次的結(jié)果,最終得到單一估測;
五)預(yù)測輸出
將爬蟲海量爬取的網(wǎng)頁信息進(jìn)行輸入歸一化后載入訓(xùn)練向量模型,使用svm模型對待分類文本進(jìn)行預(yù)測,輸出預(yù)測類標(biāo)簽。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。