段青玲 張 璐 劉怡然 王沙沙
(1.中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院,北京 100083; 2.北京農(nóng)信通科技有限責(zé)任公司,北京 100081)
隨著農(nóng)業(yè)網(wǎng)站數(shù)量的迅速增長,提取農(nóng)業(yè)網(wǎng)絡(luò)熱點信息對于實時監(jiān)測和分析農(nóng)業(yè)輿情,引導(dǎo)農(nóng)業(yè)產(chǎn)業(yè)結(jié)構(gòu),維護(hù)社會穩(wěn)定具有重要意義。熱詞是反映一個時期內(nèi)熱點問題的一種詞匯現(xiàn)象,農(nóng)業(yè)熱詞則反映了一個時期內(nèi)涉農(nóng)用戶群體所關(guān)注的熱點事件。例如,農(nóng)業(yè)熱詞“蒜你狠”、“糖高宗”等反映了部分農(nóng)產(chǎn)品價格居高不下和消費(fèi)者心理不滿的現(xiàn)象。因此,通過提取農(nóng)業(yè)網(wǎng)站熱詞可以及時掌握農(nóng)業(yè)行業(yè)發(fā)展動向、實時監(jiān)測農(nóng)業(yè)網(wǎng)絡(luò)信息動態(tài),利于相關(guān)部門進(jìn)行正確的輿論引導(dǎo)和分析。
近年來,熱詞提取方法主要有基于規(guī)則過濾的方法[1-3]、基于熱詞數(shù)據(jù)庫構(gòu)建的方法[4-5]和基于熱度權(quán)值排序的方法[6-9]?;谝?guī)則過濾的方法通過選擇多個過濾特征構(gòu)造判定規(guī)則,去除大量無關(guān)信息,再利用詞頻等設(shè)計熱詞抽取算法,獲得熱點信息,該方法中過濾特征的選擇和判定規(guī)則中閾值的確定比較困難?;跓嵩~數(shù)據(jù)庫構(gòu)建的方法通過構(gòu)建待提取熱詞主題數(shù)據(jù)庫,結(jié)合大數(shù)據(jù)分析技術(shù)[10-12]以及維度劃分技術(shù)[13],找出該主題下的熱詞,該方法提取出的熱詞很大程度上依賴于熱詞數(shù)據(jù)庫的構(gòu)建?;跓岫葯?quán)值排序的方法通過命名實體識別技術(shù)[14-15]或新詞識別技術(shù)[16-17]獲得熱詞候選詞,再結(jié)合熱詞特點,進(jìn)行候選詞熱度計算,熱度值排在前列的候選詞即為熱詞,但目前該方法中候選詞提取和熱度計算考慮的因素均具有單一性。
農(nóng)業(yè)領(lǐng)域涵蓋面廣,涉及種植業(yè)、養(yǎng)殖業(yè)等多個產(chǎn)業(yè),具有不同的用戶群體和管理部門,現(xiàn)有的熱詞提取方法應(yīng)用到農(nóng)業(yè)中無法滿足不同產(chǎn)業(yè)用戶群的個性化需求。因此,本文將文本分類技術(shù)與熱詞自動提取技術(shù)相結(jié)合,針對每個農(nóng)業(yè)產(chǎn)業(yè)類別分別提取熱詞,挖掘不同用戶群體和農(nóng)業(yè)管理部門所關(guān)注的信息熱點,確保不同產(chǎn)業(yè)用戶快速獲取本產(chǎn)業(yè)信息動態(tài)。在熱詞自動提取方法中,針對目前該項研究中提取的熱詞詞性單一等問題,提出基于信息熵的熱詞候選詞提取方法和基于時間變化的熱度計算方法。本文所述方法采用農(nóng)業(yè)網(wǎng)站上的數(shù)據(jù)進(jìn)行驗證。
本文研究目標(biāo)是根據(jù)農(nóng)業(yè)用戶的個性化需求,有針對性地為各用戶提供農(nóng)業(yè)網(wǎng)絡(luò)熱點信息。基于該領(lǐng)域現(xiàn)有的研究過程,本文提出基于農(nóng)業(yè)網(wǎng)絡(luò)信息分類的熱詞自動提取方法,流程如圖1所示。
圖1 基于農(nóng)業(yè)網(wǎng)絡(luò)信息分類的熱詞自動提取方法流程Fig.1 Automatic extraction process of hot words based on agricultural network information classification
首先采用信息自動抽取技術(shù)獲取網(wǎng)頁上的農(nóng)業(yè)文本信息;其次根據(jù)用戶需求設(shè)定分類類別,采用多標(biāo)記分類方法進(jìn)行文本語料分類;再采用基于信息熵的方法針對各類別分別提取熱詞候選詞,并進(jìn)行單日詞頻統(tǒng)計;為從候選詞中挑選出熱詞,最后提出基于時間變化的方法計算候選詞熱度,將熱度排在前列的候選詞作為該類別的熱詞。
本文通過信息自動抽取技術(shù)從中國農(nóng)業(yè)信息網(wǎng)、搜豬網(wǎng)、中國農(nóng)資網(wǎng)、中國三農(nóng)網(wǎng)、中國水產(chǎn)養(yǎng)殖網(wǎng)、中國農(nóng)機(jī)網(wǎng)、中國棉花交易網(wǎng)等農(nóng)業(yè)網(wǎng)站獲取2017年6月9—16日的農(nóng)業(yè)文本信息作為實驗語料。
對采集到的農(nóng)業(yè)文本語料采用多標(biāo)記分類算法進(jìn)行分類,再針對每個類別分別提取熱詞。多標(biāo)記分類[18-20]是指一個對象可以同時劃分到多個類別中。例如,一個介紹西紅柿的文本,可以同時劃分到種植業(yè)和農(nóng)產(chǎn)品市場兩個類別中。對農(nóng)業(yè)文本信息進(jìn)行多標(biāo)記分類,符合信息同時具有多個標(biāo)記的實際情況,利于相關(guān)行業(yè)人員查詢更為完整的信息資源。
農(nóng)業(yè)文本多標(biāo)記分類的處理流程主要包括:文本語料預(yù)處理和分類詞庫構(gòu)建階段、模型訓(xùn)練階段以及測試階段,如圖2所示。
圖2 農(nóng)業(yè)文本多標(biāo)記分類流程Fig.2 Multi-label classification process for agricultural texts
1.2.1文本語料預(yù)處理和分類詞庫構(gòu)建
中文文本的預(yù)處理包括分詞、詞性標(biāo)注、去停用詞3個步驟。采用NLPIR漢語分詞系統(tǒng)包(參考http:∥ictclas.nlpir.org/downloads)對實驗語料進(jìn)行分詞[21],同時標(biāo)注出詞性[22]。停用詞[23]主要是指使用十分廣泛但實際意義不大的詞,本文根據(jù)停用詞表去除停用詞。根據(jù)《國民經(jīng)濟(jì)行業(yè)分類與代碼》[24]構(gòu)建農(nóng)業(yè)分類詞庫。
1.2.2特征選擇與權(quán)重計算
文本特征選擇是指從文本中選取代表性的特征項來表示整個文本信息。本文采用基于分類詞庫的方法進(jìn)行文本特征選擇。首先通過計算文檔頻率進(jìn)行特征選擇,然后通過分類詞庫對特征集合進(jìn)行擴(kuò)充。文檔頻率DF(Document frequency)的計算公式[25]為
(1)
式中TF(Fj)——特征詞Fj在語料集上的頻率
A——語料集的總樣本數(shù)
本文根據(jù)構(gòu)建的農(nóng)業(yè)分類詞庫對特征集合進(jìn)行擴(kuò)充。如:特征詞“綠豆”含有關(guān)鍵詞庫中的關(guān)鍵詞“豆”,則將“綠豆”加入到特征集合中。通過基于分類詞庫擴(kuò)充的方法進(jìn)行特征選擇,避免對分類有效的低頻率詞語不能入選特征詞的問題。圖3為文本特征選擇結(jié)果。第一條記錄“首都”為特征詞,“/n”表示該特征詞為名詞,“5.681877639268151”為文檔頻率。
圖3 文本特征選擇結(jié)果Fig.3 Results of text feature selection
權(quán)重計算是指以數(shù)字形式表示特征詞在文本中的重要程度。本文提出基于改進(jìn)TF-IDF(Term frequency-inverse document frequency)方法進(jìn)行特征項權(quán)重計算。該方法不僅考慮特征詞在整個語料集中的重要程度,而且考慮特征詞在各個類別之間以及各個類別內(nèi)的差異性。計算公式為
(2)
其中
(3)
(4)
式中W(Fj,Di)——特征詞Fj在文本Di中的權(quán)重
tf(Fj,Di)——特征詞Fj在文本Di中的頻率
c——特征詞的個數(shù)
P(Fj,Lk)——特征詞Fj的類間區(qū)分程度
C(Fj,Lk)——特征詞Fj在類別k中分布的均勻程度
Tf(Fj,Lk)——特征詞Fj在類別k上的頻率
q——類別數(shù)
H(Fj)——特征詞Fj的信息熵[26]
Ak——類別k的樣本數(shù)
通過式(3)、(4)分別計算特征詞對于各個類別的類間區(qū)分度和類內(nèi)均勻度,計算結(jié)果如圖4所示。圖4中c1表示種植業(yè),c2表示種業(yè),c3表示畜牧業(yè),c4表示獸醫(yī),c5表示漁業(yè),c6表示農(nóng)墾,c7表示農(nóng)機(jī),c8表示農(nóng)產(chǎn)品質(zhì)量安全,c9表示農(nóng)村經(jīng)營管理,c10表示科教,c11表示農(nóng)產(chǎn)品市場。第1條記錄中的“0.24815460223223648”表示對于種植業(yè)類中語料來說,特征詞“流域”的類間區(qū)分程度,“0.01020408163265306”表示特征詞“流域”在種植業(yè)中的均勻度。
圖4 特征詞類別區(qū)分度計算結(jié)果Fig.4 Results of feature word category distinction calculation
1.2.3文本特征向量構(gòu)建
本文特征項權(quán)重計算方法考慮了特征詞的類別區(qū)分度,對處于不同類別中的同一樣本分別計算權(quán)重,對同一樣本進(jìn)行特征項權(quán)重融合,構(gòu)建文本特征向量,即
(5)
式中U(Fj,k)——對于特征詞Fj,樣本Di在類別k中的權(quán)重
Yik=1表示樣本Di劃分到類別k中。
構(gòu)建文本特征向量后,采用RAKEL (Random k-labelsets)多標(biāo)記分類[27]算法訓(xùn)練農(nóng)業(yè)文本多標(biāo)記分類模型。在測試階段,通過構(gòu)建文本特征向量,利用訓(xùn)練好的分類模型實現(xiàn)農(nóng)業(yè)文本自動分類。最后根據(jù)多標(biāo)記分類的結(jié)果,按分類類別構(gòu)建語料庫。
農(nóng)業(yè)熱詞反映了一個時期內(nèi)農(nóng)業(yè)用戶群體所關(guān)注的熱點事件,具有一定的概括性。從文本語料方面來說,只有體現(xiàn)文本重點內(nèi)容的詞語才有可能成為熱詞。因此,本文采用基于信息熵的方法提取文本關(guān)鍵詞,將其作為農(nóng)業(yè)熱詞候選詞,包括名詞、動詞、形容詞等。
基于信息熵的關(guān)鍵詞提取方法在采用常用的TF-IDF特征外,還將詞的信息熵、詞的空間局部性和詞所在句子的位置作為非常重要的因素加入到詞的權(quán)重中[28]。
詞語w的信息熵E(w)表示[26]為
E(w)=-∑p(x)lgp(x)
(6)
式中p(x)——字符x在所有字符中出現(xiàn)的概率
設(shè)L={l1,l2,…,ln}為詞語w的左鄰接集合[28],R={r1,r2,…,rm}為詞語w的右鄰接集合[28],其中l(wèi)i和rj分別為詞語w的左鄰字符串和右鄰字符串。設(shè)li、rj的出現(xiàn)頻次分別為ni和mj,左鄰接集合和右鄰集合中字符串的頻次總和分別為Ni和Mj。詞語w左信息熵El(w)和右信息熵Er(w)的公式[28]為
(7)
(8)
熵反映了信息的不確定性,而左信息熵和右信息熵則反映了詞語w鄰接字符串的不確定性。左信息熵和右信息熵越大,表明鄰接字符串的不確定性越大,則詞語w的使用越靈活,其成為關(guān)鍵詞的概率也越大。
采用上述算法不僅提取出“黑狼犬”這樣的單候選詞,而且包括“蔬菜價格”這樣的組合候選詞。針對“蔬菜價格”,普通分詞時會將其分為“蔬菜”和“價格”兩個詞,從而在對“蔬菜價格”進(jìn)行詞頻統(tǒng)計時,該詞詞頻為零。為了避免這種情況,將候選詞集加入到分詞詞典中,則在分詞時不會出現(xiàn)組合候選詞被分割的情況。在此分詞基礎(chǔ)上按類別分別進(jìn)行單日候選詞詞頻統(tǒng)計。圖5為普通分詞與加入候選詞集分詞的結(jié)果對比。圖5a中將“蔬菜價格”分割為“蔬菜”和“價格”兩個詞;圖5b中“蔬菜價格”為一個詞。
圖5 分詞結(jié)果對比Fig.5 Comparison of segmentation results
熱詞候選詞具有一定的農(nóng)業(yè)網(wǎng)絡(luò)關(guān)注度,但是各候選詞的受關(guān)注程度不一致,只有達(dá)到較高關(guān)注度的候選詞才能稱之為熱詞,因此本文通過計算候選詞熱度,挑選熱度排在前列的候選詞作為熱詞。針對農(nóng)業(yè)熱詞單日詞頻高、歷史波動大的特點,提出基于時間變化的熱度計算方法。該方法考慮候選詞的基礎(chǔ)詞頻和歷史波動2個因素,分別記為基礎(chǔ)權(quán)值和波動權(quán)值。
基礎(chǔ)詞頻是指候選詞的單日詞頻。為了避免單日文本數(shù)不同對基礎(chǔ)權(quán)值的影響,故進(jìn)行平滑處理?;A(chǔ)權(quán)值B的計算公式[6]為
B=lg(1+lg(1+lg(tf+1)))
(9)
式中tf——候選詞的單日詞頻
歷史波動采用基礎(chǔ)權(quán)值的整體波動性、長期變化和短期變化表示。本文提出基礎(chǔ)權(quán)值的整體波動性V、長期變化L和短期變化S的計算方法分別為
(10)
(11)
(12)
式中t——實驗數(shù)據(jù)周期
Bi——候選詞第i天的基礎(chǔ)詞頻
波動權(quán)值反映候選詞在一段時間內(nèi)的頻率波動情況。本文定義波動權(quán)值F的計算公式為
F=0.4V+0.4L+0.2S
(13)
候選詞的基礎(chǔ)權(quán)值和波動權(quán)值分別體現(xiàn)農(nóng)業(yè)熱詞的特點。因此提出熱度權(quán)值H的計算公式為
H=0.5B+0.5F
(14)
式(13)和式(14)中權(quán)重系數(shù)的確定通過多組實驗得出。具體方法為,將權(quán)重系數(shù)以0.1為間距,分別對公式中涉及到的因素賦予權(quán)重,進(jìn)行實驗,最終得出。對于式(13),當(dāng)整體波動性V和長期變化L的權(quán)重系數(shù)分別設(shè)置為0.4,短期變化S的權(quán)重系數(shù)設(shè)置為0.2時,實驗效果最佳;對于式(14),當(dāng)基礎(chǔ)權(quán)值B和波動權(quán)值F的權(quán)重系數(shù)均設(shè)置為0.5時,實驗效果最佳。
對于實驗語料中種植業(yè)類的熱詞候選詞“花球”和“水利”,通過上述熱度計算方法得出“花球”的熱度權(quán)值為0.680 039 128 501 011 3,“水利”的熱度權(quán)值為0.281 568 874 380 245 75,在該類候選詞中,“花球”的熱度排第4位,“水利”的熱度排第3 437位,因此,“花球”屬于熱詞,“水利”不是熱詞。另一方面,從“花球”和“水利”的頻率變化圖也可以得出相同的答案,如圖6所示,“水利”一詞每天的頻率都很高,但是前后期波動不大;而“花球”一詞前期頻率一直為零,后期突然上升,前后期波動很大,所以說“花球”是熱詞,“水利”不是熱詞。
對候選詞進(jìn)行熱度計算后,按照權(quán)值進(jìn)行熱度排序,得到各類別在指定時間段內(nèi)的熱詞。
圖6 候選詞頻率變化曲線Fig.6 Frequency variation curves of candidate words
本文獲取了中國農(nóng)業(yè)信息網(wǎng)、搜豬網(wǎng)、中國農(nóng)資網(wǎng)、中國三農(nóng)網(wǎng)、中國水產(chǎn)養(yǎng)殖網(wǎng)、中國農(nóng)機(jī)網(wǎng)、中國棉花交易網(wǎng)等農(nóng)業(yè)網(wǎng)站2017年6月9—16日的農(nóng)業(yè)信息,共15 354條。采用本文所述方法自動提取6月16日的農(nóng)業(yè)熱詞。表1為單日實驗文本數(shù)統(tǒng)計表。
表1 實驗語料統(tǒng)計Tab.1 Experimental corpus statistics
本文編碼環(huán)境為MyEclipse 2014。文本分詞和農(nóng)業(yè)熱詞候選詞提取通過調(diào)用NLPIR漢語分詞系統(tǒng)包中的分詞函數(shù)和關(guān)鍵詞提取函數(shù)實現(xiàn)。
針對熱詞提取的結(jié)果,采用前N個返回結(jié)果的準(zhǔn)確率和二元偏好值來衡量本文熱詞提取方法的性能[29-30]。
前N個返回結(jié)果的準(zhǔn)確率(P@N)即計算在返回的前N個最優(yōu)結(jié)果的準(zhǔn)確率,計算公式為
(15)
式中T——返回的前N個結(jié)果中正確結(jié)果的個數(shù)
二元偏好值Bpref(Binary preference)用以評價返回結(jié)果中,正確結(jié)果與非正確結(jié)果的相對位置,主要體現(xiàn)方法能否將熱詞在非熱詞之前返回。計算公式為
(16)
式中R——對每個主題,已判定結(jié)果中正確結(jié)果個數(shù)
r——正確結(jié)果項
b——前R個不正確結(jié)果集合的子集
|b|——當(dāng)前正確結(jié)果項之前不正確的結(jié)果個數(shù)
用戶可以根據(jù)需求設(shè)定分類類別,對文本語料分類。本文設(shè)定為11個類別:種植業(yè)、種業(yè)、畜牧業(yè)、獸醫(yī)、漁業(yè)、農(nóng)墾、農(nóng)機(jī)、農(nóng)產(chǎn)品質(zhì)量安全、農(nóng)村經(jīng)營管理、科教和農(nóng)產(chǎn)品市場。這11個類別的內(nèi)容范圍不是完全獨立的,各類別之間有些信息是共同涉及的。為了保證各類別信息的完整性,采用多標(biāo)記分類算法對8 d的語料分別進(jìn)行分類。分類結(jié)果如表2所示。
由文獻(xiàn)[31]中的多標(biāo)記分類評價指標(biāo)對分類結(jié)果進(jìn)行評價,得出準(zhǔn)確率為92.54%,漢明損失為0.056 4,一類錯誤為0.063 6,覆蓋率為1.597 3,排序損失為0.046 5。
實驗將6月9—16日作為一個周期,通過分析此周期內(nèi)熱詞候選詞的頻率變化情況來提取6月16日的農(nóng)業(yè)熱詞。首先從6月16日的11個類別的文本語料分別提取熱詞候選詞;然后將候選詞集加入到分詞詞典中,對8 d的文本語料分別進(jìn)行分詞;最后進(jìn)行候選詞單日詞頻統(tǒng)計。各類別候選詞個數(shù)統(tǒng)計結(jié)果如表3所示,部分候選詞單日詞頻統(tǒng)計結(jié)果如表4所示。熱詞候選詞單日詞頻統(tǒng)計結(jié)果是為計算候選詞熱度做準(zhǔn)備的。
對11個類別中的熱詞候選詞分別計算熱度。表5列出了各類別中部分候選詞的熱度計算結(jié)果。
表2 多標(biāo)記分類結(jié)果Tab.2 Results of multi-label classification
表3 候選詞個數(shù)統(tǒng)計結(jié)果Tab.3 Statistics of number of candidate words
表4 種植業(yè)部分候選詞詞頻統(tǒng)計結(jié)果Tab.4 Statistics of word frequency of part candidate words in crop farming
表5 候選詞熱度計算結(jié)果Tab.5 Heat calculation results of candidate words
根據(jù)熱詞的定義,人工為每個類別標(biāo)注出100個熱詞,采用前N個返回結(jié)果的準(zhǔn)確率和二元偏好值對本文提出的熱詞提取方法的性能進(jìn)行評價。對于P@N,主要考慮P@4、P@20、P@50、P@100這4個指標(biāo)。對于Bpref的計算,選取R=100。表6是本文熱詞提取方法返回結(jié)果的評價。
表6 熱詞返回結(jié)果評價Tab.6 Evaluation of returned results of hot words
注:P@4指前4個返回結(jié)果的準(zhǔn)確率。
本文針對不同農(nóng)業(yè)產(chǎn)業(yè)分別提取熱詞,得出各類別的熱點關(guān)注,便于不同農(nóng)業(yè)產(chǎn)業(yè)的用戶群監(jiān)測本產(chǎn)業(yè)動向。由表6可知,各類別中P@4的值均為1,表明在各類別中熱度排在前4的候選詞均是該類別的熱詞,驗證了本文熱詞提取方法的正確性。P@4的結(jié)果優(yōu)于P@20,P@20的結(jié)果優(yōu)于P@50,P@50的結(jié)果優(yōu)于P@100,表明返回結(jié)果數(shù)越少,準(zhǔn)確率越高。Bpref表明在熱詞返回結(jié)果中,非熱詞在熱詞之前出現(xiàn)的次數(shù)情況。該值越大,表明非熱詞在熱詞之前出現(xiàn)的次數(shù)越少,算法效果越好。由表6可知,各類別中Bpref值穩(wěn)定在0.8左右,實驗效果較好。
從表5中各類別的熱詞可以看出,有些熱詞在多個類別中出現(xiàn)。如熱詞“食品生產(chǎn)許可”在種植業(yè)、農(nóng)村經(jīng)營管理和農(nóng)產(chǎn)品市場3個類別中都出現(xiàn)。這是由于采用多標(biāo)記分類算法對文本語料進(jìn)行分類,保留了文本的多樣性特點,保證了用戶查找行業(yè)信息的完整性。種植業(yè)、農(nóng)村經(jīng)營管理和農(nóng)產(chǎn)品市場3個產(chǎn)業(yè)的用戶在查找本產(chǎn)業(yè)信息時都可以通過熱詞“食品生產(chǎn)許可”獲取到與之相關(guān)的新聞。
(1)將農(nóng)業(yè)文本分類技術(shù)與熱詞提取技術(shù)結(jié)合,提出了一種基于農(nóng)業(yè)網(wǎng)絡(luò)信息分類的熱詞自動提取方法。根據(jù)用戶需求,設(shè)定分類類別,針對每個類別分別提取熱詞,挖掘出不同用戶群體和農(nóng)業(yè)管理部門所關(guān)注的信息熱點,實現(xiàn)不同產(chǎn)業(yè)用戶群快速獲取產(chǎn)業(yè)動態(tài),進(jìn)行分析和決策的功能。采用前N個返回結(jié)果的準(zhǔn)確率對實驗結(jié)果進(jìn)行評價,當(dāng)N取值為20時,其準(zhǔn)確率達(dá)到0.9以上。
(2)針對目前研究中提取的熱詞詞性單一等問題,提出基于信息熵的熱詞候選詞提取方法;結(jié)合熱詞特點,提出基于時間變化的候選詞熱度計算方法,有效衡量了熱詞候選詞的受關(guān)注程度,實現(xiàn)農(nóng)業(yè)熱詞的準(zhǔn)確提取。