陳 杰,周梓豪,吳軍輝
(同濟大學 電子與信息工程學院,上海 201804)
隨著電子商務的普及,更多的消費者通過在線平臺購買農產品,例如京東生鮮、天貓超市、每日優鮮等,并持續地產生海量的評價信息。觀點挖掘作為NLP領域的分支,是典型的文本數據挖掘技術,能夠發揮大數據的“4V”特征優勢[1]。將該方法運用于農產品評價分析中,有助于消費者了解產品畫像,經銷商和電商平臺掌握消費者的需求,監管部門及時發現產品的問題。
觀點挖掘被定義為判斷作者對特定實體發表意見的情感傾向的任務[2]。按照面向對象的不同可以劃分為粗粒度和細粒度目標[3]。先前的研究主要集中在對評價整體進行粗粒度的分析[4]。細粒度任務是一個新興的方向,目前已被應用在旅游景點、在線論壇等領域[5-6],其主要分為方面觀點目標提取和目標情感識別兩個子任務[7]。在模型的選用上可以分為基于知識的方法和學習的方法[8]。在基于學習的方法中,先前研究通常使用支持向量機、隱馬爾可夫模型等統計學習方法[9]。隨后,基于目標依賴和關聯的長短期記憶神經網絡和注意力機制運用于該任務中[10]。但基于學習的方法需要大量人工標注的領域數據集進行訓練,且對于結構復雜句子的擬合效果不佳。在基于知識的方法中,Qin等[5]根據外部知識庫提煉出游客關心的旅游景點屬性,構建三級評價體系的決策系統進行觀點挖掘。萬巖等[11]在微博評論分析中構建了融合情感詞典和語義規則的模型。上述方法能夠較好地提取并識別顯式觀點,但忽略了評價語法表達的多樣性而導致隱式觀點的遺漏,在短評價觀點挖掘任務中最為常見[12]。目前已有通過有監督、半監督和無監督學習的方法識別隱式觀點的研究。Li等[13]從領域內語料庫中檢索出帶情感標注的數據集進行有監督的對比預訓練,通過將隱含情感特征表示和具有相同標簽的情感表達對齊,來捕捉評價中的隱式觀點特征。Xu等[12]構建融合SVM和主題模型的半監督方法提取隱含觀點。相比之下,無監督方法具有無需人工標注訓練集的優勢,在該方法中往往使用包括層次結構、本體識別、主題建模、共現、依存關系分析、關聯規則挖掘和聚類等各種NLP模型[14]。Hu等[15]根據近鄰關系將評價中的屬性詞與情感詞對應,但忽略了語法元素的依賴而造成抽取觀點的效果較差。在此基礎上,Sun等[16]提出屬性詞和情感詞之間的上下文語境關系對識別隱式觀點具有一定幫助。也有研究將詞對依存規則與詞法分析結合,以更精確地抽取方面觀點[17]。
目前的觀點挖掘技術已取得較多應用成果,但少有在農產品領域開展應用的文獻和開源數據集。為解決上述問題,該文結合爬蟲技術獲取多源電商農產品評價數據,構建了一種基于無監督學習框架的評價觀點抽取和情感識別系統。在算法層面,對傳統單一模型進行改進,組合了LDA主題模型、SO-PMI算法、依存句法規則和詞嵌入相似度計算的NLP技術,以更好地識別隱式的方面觀點并進行情感識別。在應用層面,根據分析結果構建可視化平臺,從品類、品種、品牌和店鋪的不同角度挖掘消費者偏好,通過詞頻統計比較產品的優勢和缺陷,以期服務于消費者、經銷商、電商平臺和監管部門四個主體。
該文構建無監督學習框架的觀點抽取和情感識別方法,如圖1所示,包括了數據采集和預處理、主題識別和詞典構建、方面觀點抽取和情感識別算法以及可視化平臺搭建應用四個模塊。以下將詳細介紹上述流程運用的技術。

圖1 基于無監督學習的分析技術框架
該文采用Python語言的Selenium框架爬蟲技術,分別從京東生鮮和天貓商城網站獲取多源農產品評價數據。根據產品銷量排序分別獲得包括花生、玉米、蘋果、梨、獼猴桃、橘子、芒果、竹筍、茶葉、茶油的10個農產品品類商品的評價數據。在進行數據融合的同時進行數據清洗,首先去除重復評價和空評價,然后運用正則化表達式去除評價中的數字和表情符號,導入停用詞典去除評價中的無效信息,并去除字符數量少于3的過短評價和大于200的過長評價,最終得到1 147 861條評價作為該文的數據集,并附帶有評價對應的商品鏈接、店鋪、品牌和品種信息,采集結果寫入MySQL中。
1.2.1 基于LDA模型的領域主題識別
為確定消費者所關注的電商農產品主題屬性,該文根據獲取的評價數據使用LDA模型進行主題挖掘,通過調用Gensim庫下的LdaModel方法完成上述任務。在構建LDA模型的過程中,采用基于困惑度的方式確定最優主題數K的取值,困惑度取值越小說明生成模型效果越好[18]。其計算方法如公式(1)所示:

(1)

1.2.2 領域屬性詞典和情感詞典構建
篩選出LDA模型輸出結果中每個主題的名詞、動詞關鍵詞作為核心屬性詞,在此基礎上,引入中文工具包Synonyms對每個核心屬性詞進行近義詞擴充,對部分沒有主題意義的噪聲詞進行過濾,最終形成包含275個詞匯的領域屬性詞典,示例如表1所示。

表1 領域屬性詞典構建結果
另一方面,需要構建的情感詞典包括基礎情感詞典、領域情感詞典和情感修飾詞典。首先選用HowNet發布的“情感分析用詞語集”中的中文正負面評價詞典作為基礎情感詞典 ,包含3 730個正面情感詞和3 116個負面情感詞。為了識別評價中未與屬性詞搭配的情感詞,即隱式方面觀點,構建有效的領域情感詞典是必要的。根據領域屬性詞典,運用分句和字符串匹配將農產品評價按照8個主題屬性切分形成子句集,使用TF-IDF算法識別各屬性下的詞頻排序前100的形容詞和名詞,公式如式(2)所示:
(2)
式中,TFw,Di表示詞匯w在文檔Di中出現的頻率,IDFw表示其逆文檔頻率,count(w)統計詞匯w出現的頻次,|Di|為Di中所有詞的頻數,N為文檔總數,I(w,Di)表示Di中是否包含詞匯的0/1變量。剔除在多種屬性下共同出現的高頻詞匯,得到相應屬性的候選情感詞集。然后根據基礎情感詞典判斷詞匯的情感傾向,篩選出對應屬性的種子情感詞。針對部分未被基礎情感詞典收錄的詞匯,結合種子情感詞運用SO-PMI算法確定情感極性[19]。基礎SO-PMI公式如式(3)(4)所示:
(3)
(4)
式(3)中,P(word1)和P(word2)分別表示候選情感詞匯和種子情感詞出現的概率,P(word1&word2)表示它們共現的概率,式(4)中pwords和nwords分別表示正面和負面的種子情感詞集。先前普遍認為SO-PMI算法得到的SO_PMI值大于0標注詞匯為正面情感,小于0標注為負面情感,但實際情況中存在大量情感值接近于0的中性情感詞,因此對SO_PMI值進行Min-Max標準化線性轉換,公式如式(5)所示:
(5)


表2 領域情感詞典構建結果
情感修飾詞包含程度副詞和否定詞,其作用是影響評價情感語義強度[20]。例如程度副詞“非常”能夠加強情感詞的強度,“略微”對情感詞強度起減弱作用,而否定詞“沒有”逆轉了情感詞的語義。該文以HowNet詞匯為基礎,選取了220個程度副詞和58個否定詞構成情感修飾詞典,根據各個情感修飾詞對情感表達的加強、減弱或逆轉的作用,將詞典劃分為7個等級并賦予從-1到2不等的情感權重。例如“非常”“極其”“極度”等69個詞的情感權重設定為2,“很”“太”“特別”等42個詞的情感權重設定為1.5,“稍微”“相當”“有點”等29個詞的情感權重設定為0.6,“不”“沒有”“并非”等58個詞的情感權重設定為-1。
1.3.1 基于依存句法規則的方面觀點抽取
方面觀點是評價中針對領域屬性的情感特征表示,一般由屬性詞、情感詞和情感修飾詞組成。先前研究總結方面觀點表達通常存在于主謂關系、動賓關系、定中關系、并列關系、動補結構、狀中結構的依存句法關系中[21],該文額外地補充了省略屬性詞的隱式觀點表達和同義轉述的潛在觀點表達兩種情況,示例如表3所示。

表3 方面觀點表達形式舉例
該文使用哈工大語言技術平臺(LTP)提供的功能,首先將評價按照標點符號劃分為子句后進行分詞和詞性標注,通過識別句子的核心詞成分和句法結構來分析詞匯之間的語法依賴關系。然后融合領域屬性詞典和情感詞典制定了7條依存句法規則,分別對顯式方面觀點、隱式方面觀點、潛在方面觀點和情感修飾詞進行抽取,盡可能地挖掘評價中的情感信息。
規則1:當評價同時存在屬性詞和情感詞時,若滿足SBV、ATT或CMP,提取<屬性詞,情感詞>作為顯式方面觀點。若有多個滿足條件則按照最近鄰關系搭配。
規則2:當評價中僅存在領域情感詞典中的詞匯,而沒有關聯的屬性詞時,將所有的領域情感詞分別抽取出來,形成
規則3:識別未被屬性詞典概括的未登錄詞。當核心詞詞性在[‘n’,‘v’,‘nz’]中,提取作為屬性詞。然后抽取滿足VOB或CMP的形容詞作為情感詞,形成<屬性詞,情感詞>表達潛在方面觀點,若匹配失敗則舍棄屬性詞。
規則4:識別未被情感詞典概括的未登錄詞。當核心詞詞性在[‘a’,‘u’,‘d’]中,提取作為情感詞。然后抽取滿足SBV或ATT且詞性在[‘v’,‘n’, ‘j’,‘nz’]的詞匯作為屬性詞。若匹配失敗也將情感詞保留,形成<屬性詞,情感詞>或
規則5:識別核心詞周圍的潛在情感表達。首先提取和核心詞滿足VOB且詞性在[‘v’,‘n’, ‘j’,‘nz’]的詞匯作為屬性詞,匹配和該詞關聯的形容詞作為情感詞,若匹配失敗則舍棄。然后提取和核心詞滿足VOB或CMP的形容詞作為情感詞,匹配和該詞關聯的詞性在[‘v’,‘n’,‘j’,‘nz’]的詞匯作為屬性詞,若匹配失敗也將其保留,形成<屬性詞,情感詞>或
規則6:在規則1到規則5的基礎上,尋找與方面觀點滿足COO的元素。抽取出的元素與屬性詞共享情感詞和情感修飾詞,或與情感詞共享屬性詞,形成新的方面觀點。
規則7:在規則1到規則6的基礎上,提取和情感詞滿足CMP或ADV的副詞作為情感修飾詞,最終的方面觀點列表以彈性三元組格式存儲。在該格式中,屬性詞可能不存在而情感詞必須存在,情感修飾詞可能不存在或存在多個。其表達方式有<屬性詞,情感修飾詞,情感詞><屬性詞,null,情感詞>
1.3.2 基于詞嵌入和情感值計算的情感識別
(1)詞嵌入模型。
抽取評價的方面觀點列表后,需要識別每個方面觀點表達的主題屬性和情感傾向。對于顯式和隱式的方面觀點,可以通過詞典匹配得出識別結果。對于潛在方面觀點,需要判斷屬性詞、情感詞與領域詞匯是否為同義詞,區分其是有效的情感表達還是噪聲。首先需要把文本數據轉化為詞向量表示,word2vec是一種經典的詞嵌入方法,與one-hot編碼相比解決了維度災難問題[22],該文使用Gensim庫建立word2vec模型。將農產品評價數據集與開源的wiki百科語料庫合并對模型進行預訓練,設置參數size=250,min_count=5。然后導入模型將詞匯轉化成詞向量的形式,計算潛在方面觀點中屬性詞、情感詞與領域詞典詞匯的余弦相似度,計算方法如公式(6)所示。
(6)
式中,w1和w2表示兩個詞匯的詞向量,size表示維數,cos(w1,w2)表示兩詞的余弦相似度。經過反復實驗,設定相似度閾值為0.85,匹配相似度最大且大于0.85的領域屬性詞匯對應的屬性作為潛在方面觀點屬性,若匹配失敗,進一步選取相似度最大且大于0.85的領域情感詞匯對應的屬性作為其屬性,若匹配失敗則將該潛在方面觀點判定為噪聲數據。
(2)情感強度計算。
實際情況中,方面觀點可能存在多個情感修飾詞同時搭配一個情感詞的情況,且“否定詞+程度副詞+情感詞(ne+dg+se)”與“程度副詞+否定詞+情感詞(dg+ne+se)”的情況表達不同的情感態度。例如評價句“口感不是很好”與“口感很不好”相比,后者的負面情感強度更大。針對單個方面觀點中5種不同搭配情況,情感強度的計算方法如公式(7)所示。
qi=
(7)

(8)
式中,Nb表示評價中提及屬性b的方面觀點個數,qi_c表示第i個方面觀點的情感強度,Vb表示評價在屬性b的方面情感強度,若Vb大于0表示評價在屬性b的正面表達,小于0表示負面表達,等于0表示無情感表達。根據計算結果對每條評價進行方面情感傾向標注。
1.4.1 關注度分析
統計評價的觀點抽取和情感識別結果,可以反映消費者的偏好。一方面,現有研究指出消費者對不同主題屬性有不同的重視程度[23],該文引入關注度的概念衡量這方面的差異,計算方法如公式(9)所示。

(9)

1.4.2 滿意度分析
另一方面,現有研究集中在從評價中提取消費者偏好信息衡量對產品的滿意度[24]。該文計算在每個領域主題屬性下的正面情感評價數量與評價總數的比率,量化消費者對農產品屬性滿意度差異,計算方法如公式(10)所示。

(10)

1.4.3 產品優勢與缺陷分析
將方面觀點三元組的抽取結果按照主題屬性和情感值是否大于0進行劃分,分別對屬性詞、情感詞與整體方面觀點表達進行詞頻統計,選取正面方面觀點的高頻表達作為農產品的主題屬性優勢,選取負面方面觀點的高頻表達作為農產品的主題屬性缺陷。
2.1.1 驗證集來源
由于目前還沒有開源的農產品評價標注數據,該文從農產品評價數據集中隨機抽取1 000條數據,提取其中包含的方面觀點后,人工標注每條評價的情感標簽作為驗證集,1表示正面情感,-1表示負面情感,-2表示無情感,驗證集的示例如表4所示。

表4 驗證集的示例
2.1.2 實驗方案
中國改革開放40年來取得的巨大減貧成就,既內含著特定的時空因素和中國獨特的政治制度與治理體系的影響,也形成了一些可與其他國家分享的經驗。中國減貧經驗中可復制、可分享和可持續的部分,應該成為中國未來減貧和世界減貧事業的重要知識財富。本文主要從扶貧者(政府)視角,基于官方公開數據,總結改革開放40年來中國農村扶貧開發所取得的成就,討論和分析中國農村減貧的基本經驗及其對世界減貧事業的意義。
一方面,將文中模型與傳統的無監督識別方面級情感的方法進行對比,對比模型選用Zhang等[25]提出的基于PMI統計方法模型(Baseline_pmi),Sun等[16]提出的基于共現矩陣相似度模型(Baseline_co_sim),以及張林[26]提出的基于Hanlp工具的依存句法規則和情感值計算的模型(Hanlp_model)。另一方面,通過消融試驗驗證文中模型中各個方法所起的作用。在依存句法規則的基礎上使用領域情感詞典和詞嵌入是關鍵的,前者側重于識別隱式觀點,后者側重于識別潛在觀點。因此設定其它三種模型分別為:僅運用依存句法規則的模型(Ltp_dp)、加入詞嵌入相似度判別的模型(Ltp_dp_vec)、加入SO-PMI構建領域情感詞典的模型(Ltp_dp_sopmi),并與文中模型進行對比。
2.1.3 驗證指標選取
選取機器學習驗證指標(查準率、召回率和F1值)對模型進行性能度量[27]。查準率指正確識別情感標簽占所有識別出情感標簽數量的比例,召回率指正確識別情感標簽占所有情感標簽的比例。F1值是準確率與召回率的平均值,并根據每類情感標簽分類結果計算宏平均值反映模型整體性能。上述驗證指標的計算方法如公式(11)~(13)所示。
(11)
(12)
(13)
式中,P表示查準率,R表示召回率,Macro_F1表示所有情感標簽類別的宏平均F1值。
模型性能比較結果如表5所示。傳統Baseline_pmi和Baseline_co_sim模型查準率和召回率較低,原因是基于統計或共現的方法忽略了詞匯句法關系造成大量噪聲,且無法較好地關注到低頻詞。單獨使用依存句法的模型Ltp_dp召回率較低,這是因為忽略了評價中的隱式和潛在情感信息。加入詞嵌入相似度的模型Ltp_dp_vec與加入SO-PMI構建領域情感詞典的模型Ltp_dp_sopmi,召回率和F1值均有所提高,前者召回了部分潛在情感信息,后者抽取了更多隱式情感信息。文中模型的查準率、召回率和F1值分別為85.08%,78.50%和81.66%,尤其是召回率和F1值提升顯著,達到了最優的模型性能。相比之下,基于Hanlp工具的模型在分詞和依存句法標注上的精確性不如LTP,且忽略SO-PMI和詞嵌入相似度最優閾值的設定也將降低模型性能。

表5 不同模型試驗結果對比 %
基于該文設計的算法,使用Django后端+Booststrap前端框架作為主體框架進行觀點抽取和情感識別系統的搭建,使用Layui和Echarts組件進行分析結果可視化展現。在系統的前端部分,分別設計了文本輸入模塊與根據農產品品類、品種、品牌、店鋪名稱進行條件篩選模塊,用戶提交表單后實時返回查詢的結果。在系統的后端部分,設計了數據接收、數據處理和數據提交功能,前后端之間通過ajax進行JSON數據的傳輸。根據系統功能的不同,可分為觀點抽取和情感識別功能、消費者偏好挖掘功能兩類。
2.3.1 觀點抽取和情感識別功能
該功能可以分為在線分析與離線分析,在線分析功能的界面展示如圖2所示。系統用戶輸入需要判別的農產品評價數據、選擇品類并點擊提交后,前端向服務器發送請求,Django后端實時調用該文的算法接口,返回面向農產品主題屬性的有效方面觀點三元組抽取結果和對應的情感強度得分結果。

圖2 在線分析功能界面展示
另一方面,系統啟動時后端通過調用評價爬蟲模塊、觀點抽取和情感識別模塊對MySQL中的評價數據進行持續的增量更新。離線分析功能的界面展示如圖3所示,系統用戶可在前端通過下拉框篩選需要查詢的農產品品類、來源、店鋪、品種、商品鏈接所對應的評價數據,每條評價都展現所抽取的方面觀點三元組和生成的方面情感傾向信息。

圖3 離線分析結果查詢界面展示
2.3.2 消費者偏好挖掘功能
對農產品評價語料進行觀點抽取和情感識別后,可根據公式(9)和(10)分別計算不同農產品品類、品種、品牌和店鋪下消費者對領域主題屬性的關注度和滿意度差異。圖4以農產品品類為例分析了上述區別。在關注度方面,與其它屬性相比,消費者更側重于關注口感和價格屬性, 平均值分別達到0.29和0.26。但不同品類之間存在關注度的差異。例如,消費者對于竹筍和花生的口感屬性關注度分別為0.40和0.26,顯著高于其它農產品;對于獼猴桃的價格屬性關注度達到了0.30,與之相比消費者對茶葉的價格屬性關注度較低,僅為0.19。在滿意度方面,在線農產品的包裝和物流屬性被多數消費者認可,滿意度均值分別達到了0.84和0.86。在具體的口感屬性方面,花生品類得到了最多消費者的喜愛,滿意度達到了0.90,但獼猴桃的口感滿意度僅為0.61;在色澤屬性方面,茶葉品類的滿意度最高達到了0.89,但芒果和獼猴桃的滿意度較低,分別僅為0.54和0.57。

圖4 消費者關注度和滿意度分析界面展示
另一方面,對海量評價數據抽取的有效方面觀點三元組進行詞頻統計和排序,為平臺用戶提供產品的屬性級優勢與缺陷分析,以售賣獼猴桃品類的店鋪“綠美生鮮專營店”的口感屬性缺陷的高頻情感詞為例進行分析,圖5展示了分析結果,可以看出該店鋪在口感方面的缺陷主要體現在“硬”“酸”“不甜”“難吃”等。

圖5 具體店鋪的口感屬性缺陷分析界面展示
該系統面向的用戶主要分為消費者、經銷商、平臺和監管部分四個主體。消費者可以通過歷史消費者的評價觀點挖掘結果進行購買選擇,農產品經銷商和平臺可以根據消費者偏好挖掘結果更有針對性地對產品進行具體屬性的改進,監管部門通過查詢具體店鋪的農產品屬性級缺陷,及時發現問題并進行管控。該平臺上線后取得了良好的應用效果。
針對如何在缺少標注數據集的情況下對農產品評價進行觀點抽取和情感識別的問題,提出了一種組合NLP方法的無監督學習框架。采集多源評價數據后,首先采用LDA模型對領域主題進行識別,運用改進的SO-PMI算法構建領域詞典,然后結合依存句法規則和詞嵌入相似度對評價中的隱式和潛在方面觀點進行更好地召回,并定義了情感強度的計算方法標注方面級情感傾向。相較于傳統模型,該文的分析識別框架在性能上得到明顯的提升,在農產品評價語料中查準率、召回率和F1值分別達到85.08%、78.50%、81.66%。基于該算法框架搭建的可視化系統具有在線、離線識別功能和基于不同角度的消費者偏好分析功能,分析結果致力于為不同的主體提供信息價值。