張家城 朱艷輝
摘要:隨著網購平臺快速崛起,如何快速準確地在海量的消費者評價文本當中提取消費者對商品評論的主觀傾向成為近年來的研究熱點。本文以商品評論文本傾向識別為研究對象,使用SVM算法,實現了基于SVM的商品評分系統,并實現了客戶端和訓練端的分離,方便訓練端實現分布式架構。
關鍵詞: 文本分類;傾向識別;支持向量機;SVM算法;商品評分;
中圖分類號:TP311.1 文獻標識碼:A 文章編號:1009-3044(2018)30-0223-03
Abstract: With the rapid rise of online shopping platform, how to quickly and accurately extract the subjective tendency of consumers to product reviews in the mass of consumer evaluation text has become a research hotspot in recent years. In this thesis, the tendency of commodity comment text recognition is considered as the research object. Using SVM algorithm, the SVM-based commodity scoring system is implemented, and the client and training end are separated, which facilitates the training end to realize the distributed architecture.
Key words: Text Categorization; Emotion recognition; Support Vector Machine; SVM; Product rating
1 引言
20世紀90年代,計算機技術的迅猛發展,催生了屬于21世紀的新一代商品交易形式——電子商務,為我們打開了商品交易的一扇新的大門,網絡使得人們可以足不出戶,便可盡覽天下商品,即使身處異地,也可以互通有無。隨著網絡和計算機硬件的不斷升級,各種形式的電子商務平臺正在取代傳統的市集,成為我們商品交易的新選擇。這種扎根于互聯網的新興經濟活動,一經出現便迅速發展壯大。自2003年淘寶網成立以來,中國的網絡購物行業迅猛發展,時至今日,中國互聯網內已催生出以淘寶、京東、蘇寧等巨頭為首的近百家中大型互聯網購物平臺。但由于網絡交流天然的地域隔離性,消費者往往面臨著信息不對稱的尷尬境地,難以有效地了解商品的質量、服務等有效信息,急需一套商品評價系統來幫助用戶做出正確的消費決策。
2 基于SVM的商品評分預測
2.1 特征詞選取
原始文本存在大量的詞,使得計算的維度非常高,我們需要在文本中選取能夠代表文本屬性的特征詞作為權重計算的詞,從而降低計算的復雜度。
如果詞語有很好的區分能力,很少的詞語就能起到區分文本的作用[1]。這些具有高區分度的詞語就叫作特征詞。目前計算特征詞的算法主要有以下幾種:文檔頻率(DF,Document Frequency)、信息增益(IG,Information Gain)、卡方校驗(CHI,Chi-square Test)。
卡方校驗是通過觀察實際值與理論值的偏差來確定理論是否正確。本文將采用計算效率高、算法實現簡單的卡方校驗法作為征值選取算法。
2.2 特征詞權重
在文本情感傾向識別算法中,我們常用的特征向量值是詞頻-逆文本頻率,即TF-IDF(Term Frequency-Inverse Document Frequency)算法。TF-IDF是一種用于文本處理的權重計算算法,如果一個詞在一篇文章中出現的頻率高,并且在其他文章中出現的頻率小,則認為這個詞對文本具有很好的區分能力。為了方便特征詞TD-IDF值參與SVM的計算,我們使用自然數對特征詞進行標號,然后使用已經標號的特征詞對語料文本中的每一條文本計算其中包含的特征詞的TD-IDF值,這樣就能得到適用于SVM算法計算的特征詞向量集。
2.3 SVM算法
支持向量機(Support Vector Machine, SVM)以其出色的性能和精準性,在文本挖掘、手寫識別等多個領域得到了成功的應用。SVM的特點可以簡單概括為以下兩點:
1) SVM算法是在樣本線性可分的情況下進行計算的,對于線性不可分的樣本,SVM算法采用核函數方法,把樣本點映射到高維空間中,使其在高維空間中線性可分,這種轉化使得SVM算法可以對絕大多數線性不可分的樣本進行分類計算。
2) SVM算法基于結構風險最小化理論在特征空間中構建最優的超平面,使得算法的計算獲得全局最優化[2]。
2.4 實驗結果與分析
2.4.1 實驗工具與語料數據集
本次實驗使用的語料集采用的是來自自然語言處理與信息檢索共享平臺的譚松波先生分享出來的中文情感挖掘語料[3]。包括攜程酒店評論、當當書籍評論和京東電腦評論三個領域,每個領域正負面評價各2000條,從每個評論的正負面評論中隨機抽取200條,共1200條評論語料作為測試集。
實驗使用Java編程語言,實驗過程中使用到的主要算法實現工具為Libsvm和HanLp分詞工具包。將訓練模型對測試集預測的準確率高低作為本次實驗的評判標準。
2.4.2 實驗結果
本小節針對SVM算法中的各個參數選擇進行實驗。svm的核函數包括線性核函數、RBF核函數、多項式核函數和Sigmoid核函數,由于線性核函數無參數選擇,實驗將分別對后三個核函數進行實驗,其中多項式核函數存在多個參數,實驗過程中非因變量的參數將使用Libsvm默認的參數值。RBF核函數、多項式核函數和Sigmoid核函數實驗結果分別如圖1至圖3所示。
2.4.3 結果分析
通過2.4.2小節的實驗結果可以看出,在進行參數優化后,RBF核函數在大部分的參數選擇情況下,準確率都維持在較高的水平,說明在文本傾向識別這個部分,RBF核函數具有更好的適應性,本文評分系統的實現也將采用RBF核函數作為評分系統中使用的SVM算法的核函數。
3 系統整體設計
評分系統采用客戶端與訓練端分離的設計方式,由于訓練端占用計算機資源較大,讓訓練端單獨運行在獨立的服務器上。系統整體設計如圖5所示。
4 系統詳細設計與實現
4.1 客戶端
4.1.1 客戶端算法設計
客戶端是評分系統提供給用戶使用的Web操作界面,用戶可以在Web界面完成SVM項目的訓練、評論文本上傳、查看API調用情況等功能。客戶端算法流程圖如圖6所示。
4.1.2 API接口設計
面向用戶的交互API接口是評分系統提供給用戶與評分系統進行交互的核心方式,解耦了評分系統的服務和用戶自己的電商平臺,根據API接口返回的結果,用戶可以輕易地對結果進行二次處理。客戶端API交互接口如下:
1) 訓練文件上傳
該API接口綁定的路由為“/svm/upload”,該接口僅接受POST的調用方式,用戶可以通過此接口上傳指定的訓練文件。
2) 單條評論文本預測
該API接口綁定的路由為“/svm/predict”,該接口接受GET和POST的方式調用,用于在商品評論產生的時候即時預測并更新商品評分。
3) 批量評論文本預測
該API接口綁定的路由為“/svm/predictFiles”,該接口僅接受POST的調用方式,用于在指定的時間點統一處理商品評論并更新評分。
4) 商品評分查詢
該API接口綁定的路由為“/svm/query”,該接口接受GET和POST的方式調用,用戶可以通過此接口即時查詢指定商品的評分信息。
4.2 訓練端
4.2.1 訓練端算法設計
訓練端獨立負責SVM項目的訓練和預測,僅通過訓練端向客戶端提供的API接口進行交互。訓練端算法流程圖如圖7所示:
4.2.2 SVM 評分模塊設計
訓練端的核心模塊為SVM模型訓練和SVM預測兩大模塊,代碼實現的過程中注重內部功能模塊之間的解耦,盡可能達到一處代碼,多處復用的目標。
1) SVM模型訓練
首先對帶標注的訓練源文本進行預處理,使其滿足Libsvm的訓練文本格式,然后調用Libsvm對預處理結果進行SVM訓練,最后得到訓練模型。訓練端對訓練源文本的預處理流程如圖8所示。
考慮到系統功能的后期升級,對于文本預處理階段的分詞及去停用詞、情感詞過濾、特征詞篩選和特征詞權值計算均采用Java接口進行設計,盡可能解耦各個處理過程,讓系統保持較高的可拓展性。
2) SVM模型預測
SVM模型預測與訓練的流程大致相同,需要對文本進行預處理,然后把處理結果交給Libsvm進行預測,所以預測的文本預處理部分可全部復用訓練階段所使用的接口實現,SVM模型預測流程圖如圖9所示:
4.2.3 線程池設計
考慮到SVM模型的預處理、訓練和預測均為非常耗時的操作,所以在訓練端服務器對以上三種操作使用多線程的方式進行處理,以便訓練端可以接受多個SVM項目同時進行,增加訓練端的并發性。訓練端線程池的流程如圖10所示。
4.2.4 API接口設計
訓練端API是客戶端與訓練端交互的核心API,訓練端提供API供客戶端發送SVM項目訓練請求和SVM項目訓練文件,發送SVM項目預測請求和獲取預測得分。訓練端交互接口如下:
1) 接收訓練文件
該API接口綁定的路由為“/api/ /upload”,該接口僅接受POST的調用方式,用于客戶端向訓練端發送訓練文件,訓練端接收到文件后創建訓練項目并立即開始訓練。
2) 接收預測文本
該API接口綁定的路由為“/api/ /predict”,該接口僅接受POST的調用方式,用于客戶端向訓練端發起預測請求,返回的結果是一個JSON字符串,包含預測得到的評分結果以及相關信息。
5 結論
本文實現的基于SVM算法的商品評分系統具有以下優點:
1) 客戶端與訓練端分離
將占用計算機資源較大的SVM訓練、預測獨立出來,可以進行獨立部署或分布式多訓練端部署,從而不影響客戶端穩定運行,提高SVM訓練、預測性能。
2) 基于線程池的SVM訓練、預測方案
把SVM訓練任務和預測任務分離到不同的線程池中運行,適應了實際生產環境中預測任務的數量遠遠大于訓練任務的情況,提高訓練端訓練、預測的效率和響應速度。
3) 使用Restful API提供主要功能
由于系統面向的客戶群體是電商網購平臺的運營者,基于API的設計可以使客戶的平臺簡單快速地接入評分系統的服務,降低了適配的難度,提高了易用性。
參考文獻:
[1] 吳衛華, 袁寧, 周勁,等. 基于文本集密度的特征詞選擇與權重計算方法[J]. 計算機與數字工程, 2005, 33(3):11-13.
[2] 黃志勇. 基于SVM和深度學習的情感分類算法研究[D]. 重慶郵電大學, 2016.
[3] 譚松波.譚松波語料集[EB]. https://github.com/hankcs/HanLP/wiki/文本分類與情感分析.
【通聯編輯:梁書】