段青玲 張 璐 劉怡然 王沙沙
(1.中國農業大學信息與電氣工程學院,北京 100083; 2.北京農信通科技有限責任公司,北京 100081)
隨著農業網站數量的迅速增長,提取農業網絡熱點信息對于實時監測和分析農業輿情,引導農業產業結構,維護社會穩定具有重要意義。熱詞是反映一個時期內熱點問題的一種詞匯現象,農業熱詞則反映了一個時期內涉農用戶群體所關注的熱點事件。例如,農業熱詞“蒜你狠”、“糖高宗”等反映了部分農產品價格居高不下和消費者心理不滿的現象。因此,通過提取農業網站熱詞可以及時掌握農業行業發展動向、實時監測農業網絡信息動態,利于相關部門進行正確的輿論引導和分析。
近年來,熱詞提取方法主要有基于規則過濾的方法[1-3]、基于熱詞數據庫構建的方法[4-5]和基于熱度權值排序的方法[6-9]。基于規則過濾的方法通過選擇多個過濾特征構造判定規則,去除大量無關信息,再利用詞頻等設計熱詞抽取算法,獲得熱點信息,該方法中過濾特征的選擇和判定規則中閾值的確定比較困難。基于熱詞數據庫構建的方法通過構建待提取熱詞主題數據庫,結合大數據分析技術[10-12]以及維度劃分技術[13],找出該主題下的熱詞,該方法提取出的熱詞很大程度上依賴于熱詞數據庫的構建。基于熱度權值排序的方法通過命名實體識別技術[14-15]或新詞識別技術[16-17]獲得熱詞候選詞,再結合熱詞特點,進行候選詞熱度計算,熱度值排在前列的候選詞即為熱詞,但目前該方法中候選詞提取和熱度計算考慮的因素均具有單一性。
農業領域涵蓋面廣,涉及種植業、養殖業等多個產業,具有不同的用戶群體和管理部門,現有的熱詞提取方法應用到農業中無法滿足不同產業用戶群的個性化需求。因此,本文將文本分類技術與熱詞自動提取技術相結合,針對每個農業產業類別分別提取熱詞,挖掘不同用戶群體和農業管理部門所關注的信息熱點,確保不同產業用戶快速獲取本產業信息動態。在熱詞自動提取方法中,針對目前該項研究中提取的熱詞詞性單一等問題,提出基于信息熵的熱詞候選詞提取方法和基于時間變化的熱度計算方法。本文所述方法采用農業網站上的數據進行驗證。
本文研究目標是根據農業用戶的個性化需求,有針對性地為各用戶提供農業網絡熱點信息。基于該領域現有的研究過程,本文提出基于農業網絡信息分類的熱詞自動提取方法,流程如圖1所示。

圖1 基于農業網絡信息分類的熱詞自動提取方法流程Fig.1 Automatic extraction process of hot words based on agricultural network information classification
首先采用信息自動抽取技術獲取網頁上的農業文本信息;其次根據用戶需求設定分類類別,采用多標記分類方法進行文本語料分類;再采用基于信息熵的方法針對各類別分別提取熱詞候選詞,并進行單日詞頻統計;為從候選詞中挑選出熱詞,最后提出基于時間變化的方法計算候選詞熱度,將熱度排在前列的候選詞作為該類別的熱詞。
本文通過信息自動抽取技術從中國農業信息網、搜豬網、中國農資網、中國三農網、中國水產養殖網、中國農機網、中國棉花交易網等農業網站獲取2017年6月9—16日的農業文本信息作為實驗語料。
對采集到的農業文本語料采用多標記分類算法進行分類,再針對每個類別分別提取熱詞。多標記分類[18-20]是指一個對象可以同時劃分到多個類別中。例如,一個介紹西紅柿的文本,可以同時劃分到種植業和農產品市場兩個類別中。對農業文本信息進行多標記分類,符合信息同時具有多個標記的實際情況,利于相關行業人員查詢更為完整的信息資源。
農業文本多標記分類的處理流程主要包括:文本語料預處理和分類詞庫構建階段、模型訓練階段以及測試階段,如圖2所示。

圖2 農業文本多標記分類流程Fig.2 Multi-label classification process for agricultural texts
1.2.1文本語料預處理和分類詞庫構建
中文文本的預處理包括分詞、詞性標注、去停用詞3個步驟。采用NLPIR漢語分詞系統包(參考http:∥ictclas.nlpir.org/downloads)對實驗語料進行分詞[21],同時標注出詞性[22]。停用詞[23]主要是指使用十分廣泛但實際意義不大的詞,本文根據停用詞表去除停用詞。根據《國民經濟行業分類與代碼》[24]構建農業分類詞庫。
1.2.2特征選擇與權重計算
文本特征選擇是指從文本中選取代表性的特征項來表示整個文本信息。本文采用基于分類詞庫的方法進行文本特征選擇。首先通過計算文檔頻率進行特征選擇,然后通過分類詞庫對特征集合進行擴充。文檔頻率DF(Document frequency)的計算公式[25]為
(1)
式中TF(Fj)——特征詞Fj在語料集上的頻率
A——語料集的總樣本數
本文根據構建的農業分類詞庫對特征集合進行擴充。如:特征詞“綠豆”含有關鍵詞庫中的關鍵詞“豆”,則將“綠豆”加入到特征集合中。通過基于分類詞庫擴充的方法進行特征選擇,避免對分類有效的低頻率詞語不能入選特征詞的問題。圖3為文本特征選擇結果。第一條記錄“首都”為特征詞,“/n”表示該特征詞為名詞,“5.681877639268151”為文檔頻率。

圖3 文本特征選擇結果Fig.3 Results of text feature selection
權重計算是指以數字形式表示特征詞在文本中的重要程度。本文提出基于改進TF-IDF(Term frequency-inverse document frequency)方法進行特征項權重計算。該方法不僅考慮特征詞在整個語料集中的重要程度,而且考慮特征詞在各個類別之間以及各個類別內的差異性。計算公式為

(2)
其中

(3)
(4)
式中W(Fj,Di)——特征詞Fj在文本Di中的權重
tf(Fj,Di)——特征詞Fj在文本Di中的頻率
c——特征詞的個數
P(Fj,Lk)——特征詞Fj的類間區分程度
C(Fj,Lk)——特征詞Fj在類別k中分布的均勻程度
Tf(Fj,Lk)——特征詞Fj在類別k上的頻率
q——類別數
H(Fj)——特征詞Fj的信息熵[26]
Ak——類別k的樣本數
通過式(3)、(4)分別計算特征詞對于各個類別的類間區分度和類內均勻度,計算結果如圖4所示。圖4中c1表示種植業,c2表示種業,c3表示畜牧業,c4表示獸醫,c5表示漁業,c6表示農墾,c7表示農機,c8表示農產品質量安全,c9表示農村經營管理,c10表示科教,c11表示農產品市場。第1條記錄中的“0.24815460223223648”表示對于種植業類中語料來說,特征詞“流域”的類間區分程度,“0.01020408163265306”表示特征詞“流域”在種植業中的均勻度。

圖4 特征詞類別區分度計算結果Fig.4 Results of feature word category distinction calculation
1.2.3文本特征向量構建
本文特征項權重計算方法考慮了特征詞的類別區分度,對處于不同類別中的同一樣本分別計算權重,對同一樣本進行特征項權重融合,構建文本特征向量,即
(5)
式中U(Fj,k)——對于特征詞Fj,樣本Di在類別k中的權重
Yik=1表示樣本Di劃分到類別k中。
構建文本特征向量后,采用RAKEL (Random k-labelsets)多標記分類[27]算法訓練農業文本多標記分類模型。在測試階段,通過構建文本特征向量,利用訓練好的分類模型實現農業文本自動分類。最后根據多標記分類的結果,按分類類別構建語料庫。
農業熱詞反映了一個時期內農業用戶群體所關注的熱點事件,具有一定的概括性。從文本語料方面來說,只有體現文本重點內容的詞語才有可能成為熱詞。因此,本文采用基于信息熵的方法提取文本關鍵詞,將其作為農業熱詞候選詞,包括名詞、動詞、形容詞等。
基于信息熵的關鍵詞提取方法在采用常用的TF-IDF特征外,還將詞的信息熵、詞的空間局部性和詞所在句子的位置作為非常重要的因素加入到詞的權重中[28]。
詞語w的信息熵E(w)表示[26]為
E(w)=-∑p(x)lgp(x)
(6)
式中p(x)——字符x在所有字符中出現的概率
設L={l1,l2,…,ln}為詞語w的左鄰接集合[28],R={r1,r2,…,rm}為詞語w的右鄰接集合[28],其中li和rj分別為詞語w的左鄰字符串和右鄰字符串。設li、rj的出現頻次分別為ni和mj,左鄰接集合和右鄰集合中字符串的頻次總和分別為Ni和Mj。詞語w左信息熵El(w)和右信息熵Er(w)的公式[28]為
(7)
(8)
熵反映了信息的不確定性,而左信息熵和右信息熵則反映了詞語w鄰接字符串的不確定性。左信息熵和右信息熵越大,表明鄰接字符串的不確定性越大,則詞語w的使用越靈活,其成為關鍵詞的概率也越大。
采用上述算法不僅提取出“黑狼犬”這樣的單候選詞,而且包括“蔬菜價格”這樣的組合候選詞。針對“蔬菜價格”,普通分詞時會將其分為“蔬菜”和“價格”兩個詞,從而在對“蔬菜價格”進行詞頻統計時,該詞詞頻為零。為了避免這種情況,將候選詞集加入到分詞詞典中,則在分詞時不會出現組合候選詞被分割的情況。在此分詞基礎上按類別分別進行單日候選詞詞頻統計。圖5為普通分詞與加入候選詞集分詞的結果對比。圖5a中將“蔬菜價格”分割為“蔬菜”和“價格”兩個詞;圖5b中“蔬菜價格”為一個詞。

圖5 分詞結果對比Fig.5 Comparison of segmentation results
熱詞候選詞具有一定的農業網絡關注度,但是各候選詞的受關注程度不一致,只有達到較高關注度的候選詞才能稱之為熱詞,因此本文通過計算候選詞熱度,挑選熱度排在前列的候選詞作為熱詞。針對農業熱詞單日詞頻高、歷史波動大的特點,提出基于時間變化的熱度計算方法。該方法考慮候選詞的基礎詞頻和歷史波動2個因素,分別記為基礎權值和波動權值。
基礎詞頻是指候選詞的單日詞頻。為了避免單日文本數不同對基礎權值的影響,故進行平滑處理。基礎權值B的計算公式[6]為
B=lg(1+lg(1+lg(tf+1)))
(9)
式中tf——候選詞的單日詞頻
歷史波動采用基礎權值的整體波動性、長期變化和短期變化表示。本文提出基礎權值的整體波動性V、長期變化L和短期變化S的計算方法分別為
(10)
(11)
(12)
式中t——實驗數據周期
Bi——候選詞第i天的基礎詞頻
波動權值反映候選詞在一段時間內的頻率波動情況。本文定義波動權值F的計算公式為
F=0.4V+0.4L+0.2S
(13)
候選詞的基礎權值和波動權值分別體現農業熱詞的特點。因此提出熱度權值H的計算公式為
H=0.5B+0.5F
(14)
式(13)和式(14)中權重系數的確定通過多組實驗得出。具體方法為,將權重系數以0.1為間距,分別對公式中涉及到的因素賦予權重,進行實驗,最終得出。對于式(13),當整體波動性V和長期變化L的權重系數分別設置為0.4,短期變化S的權重系數設置為0.2時,實驗效果最佳;對于式(14),當基礎權值B和波動權值F的權重系數均設置為0.5時,實驗效果最佳。
對于實驗語料中種植業類的熱詞候選詞“花球”和“水利”,通過上述熱度計算方法得出“花球”的熱度權值為0.680 039 128 501 011 3,“水利”的熱度權值為0.281 568 874 380 245 75,在該類候選詞中,“花球”的熱度排第4位,“水利”的熱度排第3 437位,因此,“花球”屬于熱詞,“水利”不是熱詞。另一方面,從“花球”和“水利”的頻率變化圖也可以得出相同的答案,如圖6所示,“水利”一詞每天的頻率都很高,但是前后期波動不大;而“花球”一詞前期頻率一直為零,后期突然上升,前后期波動很大,所以說“花球”是熱詞,“水利”不是熱詞。
對候選詞進行熱度計算后,按照權值進行熱度排序,得到各類別在指定時間段內的熱詞。

圖6 候選詞頻率變化曲線Fig.6 Frequency variation curves of candidate words
本文獲取了中國農業信息網、搜豬網、中國農資網、中國三農網、中國水產養殖網、中國農機網、中國棉花交易網等農業網站2017年6月9—16日的農業信息,共15 354條。采用本文所述方法自動提取6月16日的農業熱詞。表1為單日實驗文本數統計表。

表1 實驗語料統計Tab.1 Experimental corpus statistics
本文編碼環境為MyEclipse 2014。文本分詞和農業熱詞候選詞提取通過調用NLPIR漢語分詞系統包中的分詞函數和關鍵詞提取函數實現。
針對熱詞提取的結果,采用前N個返回結果的準確率和二元偏好值來衡量本文熱詞提取方法的性能[29-30]。
前N個返回結果的準確率(P@N)即計算在返回的前N個最優結果的準確率,計算公式為
(15)
式中T——返回的前N個結果中正確結果的個數
二元偏好值Bpref(Binary preference)用以評價返回結果中,正確結果與非正確結果的相對位置,主要體現方法能否將熱詞在非熱詞之前返回。計算公式為
(16)
式中R——對每個主題,已判定結果中正確結果個數
r——正確結果項
b——前R個不正確結果集合的子集
|b|——當前正確結果項之前不正確的結果個數
用戶可以根據需求設定分類類別,對文本語料分類。本文設定為11個類別:種植業、種業、畜牧業、獸醫、漁業、農墾、農機、農產品質量安全、農村經營管理、科教和農產品市場。這11個類別的內容范圍不是完全獨立的,各類別之間有些信息是共同涉及的。為了保證各類別信息的完整性,采用多標記分類算法對8 d的語料分別進行分類。分類結果如表2所示。
由文獻[31]中的多標記分類評價指標對分類結果進行評價,得出準確率為92.54%,漢明損失為0.056 4,一類錯誤為0.063 6,覆蓋率為1.597 3,排序損失為0.046 5。
實驗將6月9—16日作為一個周期,通過分析此周期內熱詞候選詞的頻率變化情況來提取6月16日的農業熱詞。首先從6月16日的11個類別的文本語料分別提取熱詞候選詞;然后將候選詞集加入到分詞詞典中,對8 d的文本語料分別進行分詞;最后進行候選詞單日詞頻統計。各類別候選詞個數統計結果如表3所示,部分候選詞單日詞頻統計結果如表4所示。熱詞候選詞單日詞頻統計結果是為計算候選詞熱度做準備的。
對11個類別中的熱詞候選詞分別計算熱度。表5列出了各類別中部分候選詞的熱度計算結果。

表2 多標記分類結果Tab.2 Results of multi-label classification

表3 候選詞個數統計結果Tab.3 Statistics of number of candidate words

表4 種植業部分候選詞詞頻統計結果Tab.4 Statistics of word frequency of part candidate words in crop farming

表5 候選詞熱度計算結果Tab.5 Heat calculation results of candidate words
根據熱詞的定義,人工為每個類別標注出100個熱詞,采用前N個返回結果的準確率和二元偏好值對本文提出的熱詞提取方法的性能進行評價。對于P@N,主要考慮P@4、P@20、P@50、P@100這4個指標。對于Bpref的計算,選取R=100。表6是本文熱詞提取方法返回結果的評價。

表6 熱詞返回結果評價Tab.6 Evaluation of returned results of hot words
注:P@4指前4個返回結果的準確率。
本文針對不同農業產業分別提取熱詞,得出各類別的熱點關注,便于不同農業產業的用戶群監測本產業動向。由表6可知,各類別中P@4的值均為1,表明在各類別中熱度排在前4的候選詞均是該類別的熱詞,驗證了本文熱詞提取方法的正確性。P@4的結果優于P@20,P@20的結果優于P@50,P@50的結果優于P@100,表明返回結果數越少,準確率越高。Bpref表明在熱詞返回結果中,非熱詞在熱詞之前出現的次數情況。該值越大,表明非熱詞在熱詞之前出現的次數越少,算法效果越好。由表6可知,各類別中Bpref值穩定在0.8左右,實驗效果較好。
從表5中各類別的熱詞可以看出,有些熱詞在多個類別中出現。如熱詞“食品生產許可”在種植業、農村經營管理和農產品市場3個類別中都出現。這是由于采用多標記分類算法對文本語料進行分類,保留了文本的多樣性特點,保證了用戶查找行業信息的完整性。種植業、農村經營管理和農產品市場3個產業的用戶在查找本產業信息時都可以通過熱詞“食品生產許可”獲取到與之相關的新聞。
(1)將農業文本分類技術與熱詞提取技術結合,提出了一種基于農業網絡信息分類的熱詞自動提取方法。根據用戶需求,設定分類類別,針對每個類別分別提取熱詞,挖掘出不同用戶群體和農業管理部門所關注的信息熱點,實現不同產業用戶群快速獲取產業動態,進行分析和決策的功能。采用前N個返回結果的準確率對實驗結果進行評價,當N取值為20時,其準確率達到0.9以上。
(2)針對目前研究中提取的熱詞詞性單一等問題,提出基于信息熵的熱詞候選詞提取方法;結合熱詞特點,提出基于時間變化的候選詞熱度計算方法,有效衡量了熱詞候選詞的受關注程度,實現農業熱詞的準確提取。