國網山東省電力公司電力科學研究院 謝季川 宗振國 劉宏國 張春秋 田 曉
基于詞向量模型的95598工單文本挖掘
國網山東省電力公司電力科學研究院 謝季川 宗振國 劉宏國 張春秋 田 曉
本文結合電力工單特點,提出運用神經網絡語言模型進行文本挖掘,使用word2vec方法對電力工單文本進行訓練,生成電力工單詞向量。在電力工單詞向量的基礎上,作為其他模型的輸入,實現對電力工單進一步的文本挖掘分析,幫助客服人員了解客戶訴求,提供更優質便捷的服務。
95598工單;神經網絡語言模型;詞向量;文本分類
95598客服中心作為電網公司與客戶交流的窗口,每天都要處理大量來自客戶的訴求,形成大量的工單文本數據。目前,針對電力工單數據的文本挖掘已經取得進展,但在方法上仍有可以改進之處。本文通過分析電力工單文本挖掘的現狀,結合前沿技術,提出運用神經網絡語言模型對工單文本進行訓練,形成詞向量。在詞向量的基礎上,作為其他模型的輸入,實現進一步的文本挖掘分析,如電力領域詞典、工單分類等功能,幫助客服人員了解客戶訴求,提供更優質便捷的服務。
當前電力工單文本挖掘(Text Mining)主要有語料分析、文本分類(Text classification)兩方面,如客戶訴求分析、客戶滿意度預測[3],電力標簽特征詞典、工單自動分類[4]。文本挖掘最基礎的環節就是文本表示,電力工單的文本表示多采用LDA主題模型進行特征提取。主題模型可以實現有效的降維,發現文檔的潛在主題,但是主題模型需要大量的樣本進行學習,訓練難度大并且非常耗時,影響了分類的效率[2],而且無法捕捉詞與詞之間的共現關系。因此本文采用神經網絡語言模型進行訓練得到詞向量,在詞向量的基礎上進行相應文本挖掘。
詞向量(word embedding)將每個詞映射成一個固定長度的短向量,既能夠降低維度,又能夠把詞與上下文的聯系體現出來。詞向量可以通過神經網絡訓練語言模型可以得到。神經網絡語言模型(NNLM)由Bengio 等人于2001年正式提出[6],2013年,Mikolov 等人提出了 CBoW( Continuous Bagof-Words)和 Skip-gram 模型。CBoW的優化目標是:給定詞序列w1,w2,w3,…,wt,最大化下式,

其中,P(wt|wt?c,…wt?1,wt+1…wt+c)采用log-linear(Softmax)模型用于正確分類當前詞,通過用t-n+1…t-1,t+1,…t+n-1的word作為輸入,目標是正確分類得到第t個word。
而Skip-gram模型相反,通過輸入為當前word,經過projection的特征提取去預測該word周圍的C個詞,給定詞序列w1,w2,w3,…,wt,最大化下式:

其中,c是上下文的大小,P(wt+j|wt)采用softmax方程,vw和vTw為對應的輸入和輸出詞向量。

本文使用的Word2vec便由Google公司依據這兩種模型實現,在輸出層采用Huffman 編碼計算層次Softmax,具有模型簡單、訓練速度快的特點。
對電力工單進行文本挖掘,屬于特定領域挖掘,沒有現成的詞向量,因此首先是要訓練生成電力工單領域詞向量。本文使用Word2Vec進行訓練,主要流程有文本預處理、模型訓練、輸出詞向量,其中文本預處理包括工單文本收集、文本分詞兩步,而模型訓練的同時,更新電力特征詞庫反饋提升文本分詞的效果。
在進行模型訓練之前,需要對工單文本進行預處理,主要包含工單文本收集、文本分詞、特征詞庫處理。
4.1.1 工單文本收集
目前營銷系統內工單主要被分為故障報修、業務咨詢、服務申請、投訴舉報等12大類,每一大類又分為二級子類、三級子類。
將工單受理內容整理到文本中,每一行代表一個工單。工單受理內容主要形式是“問題總結+描述”,例如“【電能表異常】客戶來電反映,戶號為06157*****的電能表異常顯示。現申請對電表進行現場檢查,請相關工作人員核實處理”,為大類為“服務申請”類型的工單受理內容。因此下一步進行分詞,需要考慮去除停用詞以及電力領域自身特點。
4.1.2 文本分詞
本文分詞屬于特殊領域的分詞,采用jieba分詞對文本工單句子進行分詞,形成電力工單語料庫。在分詞是需要結合電力領域詞典取得更好效果,同時工單受理內容存有大量無用信息,可利用停用詞進行處理。如上面提到的工單文本內容直接用jieba分詞后根據詞性以及停用詞處理后如下“電能表異常客戶 來電反映戶號電能表異常顯示申請電表進行現場檢查相關工作人員核實處理”,如“現場檢查”屬于電力領域的特殊詞匯可以通過加入電力特征詞典進行處理。前期我們通過專家經驗初步形成一個簡單詞典但并不完善,而Word2vec最大的特點恰好就是對于詞性的判斷,在詞向量完成訓練的同時可以根據結果不斷對電力工單特征詞典的進行補充。
4.1.3 模型訓練
將經過分詞處理的工單文本利用Python工具包Gensim中的Word2vec模型進行訓練,Word2vec主要參數為sg-設置訓練算法,size-特征向量的維度,window-上下文窗口最大距離,alpha-學習速率,min_count-字典做截斷,詞頻小于不計算等。模型訓練完成后,得到vectors.bin這個模型文件。vectors.bin這個文件就是文檔中詞語和其對應的向量,向量維度就是之前設置的,本次設置為50維。結果如圖1所示:

圖1 詞向量表示圖
在詞向量的基礎上結合其他方法,進行進一步的文本挖掘,可以應用到電力領域工單詞典構建,也可以作為SVM等分類模型的輸出對工單進行分類。
電力領域工單詞典前期通過專家經驗總結產生,后面可以通過詞向量找尋與已有詞匯相似的詞補充加入到電力工單詞典中,不斷豐富詞典內容。Word2vec本身提供distance的應用,讀取模型文件中每一個詞和其對應的向量,計算所輸入query的詞,與其他所有詞語的cosine相似度,兩個詞相似度超過閾值便被補充到詞典中,不斷豐富點力領域工單詞典內容。
電力文本工單分類,屬于監督學習。根據之前人工分類結果作為依據,構建分類模型。因為文本工單分類需以語句為最小單位作為輸入,所以采用根據詞頻進行賦權對語句中詞向量相加,來表示句子,構造輸入向量,保證向量維度,再結合SVM進行構建多分類文本模型。但是這樣做忽略了單詞之間的排列順序即上下文的影響,在文本短時有不錯效果。為處理可變長度文本的總結性方法,Quoc Le 和 Tomas Mikolov 提出了 Doc2Vec方法。除了增加一個段落向量以外,這個方法幾乎等同于 Word2Vec。因此可以利用電力工單預料庫,利用Doc2vec進行段落向量,直接作為SVM多分類的輸入進行訓練分類,構建分類模型,進行文本工單分類。
本文完整描述了運用神經網絡語言模型對電力工單文本訓練,形成電力詞向量,并在電力詞向量的基礎上進行更多進一步的文本挖掘的過程,豐富電力文本挖掘分析的方法。但運用詞向量在電力領域進行深入文本挖掘的效果方面,如工單分類的準確率,需要進一步研究與提升。
[1]閆琰.基于深度學習的文本表示與分類方法研究[D].北京科技大學, 2016.
[2]馮貴川.基于Word2vec的文本建模及分類研究[D].深圳大學,2016.
[3]何薇,張劍,于雪霞,吳佐平,張小華,陳晨.基于文本挖掘的電網客戶服務滿意度評價模型[J].電子世界,2017,(07):81+83.
[4]王震,代巖巖,陳亮,林曉蘭.基于LDA模型的95598熱點業務工單挖掘分析[J].電子技術與軟件工程,2016,(22):190-192.
[5]丁麒,莊志畫,劉東丹.基于文本數據挖掘技術的95598業務工單主題分析應用[J].電力需求側管理,2016,18(S1):55-57.
[6]Bengio Y,Schwenk H,Senécal J S,et al.A neural probabilistic language model[J].Journal of MachineLearning Research,2003, 3(6):1137-1155.
[7]Mikolov T,Chen K,Corrado G,et al.Efficient Estimation of Word Representations in Vector Space[J].Computer Science,2013.
[8]Mikolov T,Sutskever I,Chen K,et al.Distributed Representations of Words and Phrases and theirCompositionality[J].Advances in Neural Information Processing Systems,2013,26:3111-3119.