胡若云, 孫 鋼, 丁 麒, 沈 然, 谷泓杰
(國網浙江省電力有限公司 電力科學研究院, 杭州 310009)
隨著企業規模的不斷擴大和智能化的逐漸普及[1],各企業開始越發重視搜集更多的信息來分析和理解客戶的業務處理流程,降低成本并提升滿意度[2-4].因此,電力企業通過使用豐富的分析手段來分析和挖掘客服對話內容,并從中抽取客戶意見,優化信息科學技術實現快速、有效地獲取客戶反饋信息具有重要意義[5-6].
目前,眾多學者和研究機構從市場角度和社會學角度分析客服對話數據,其主要集中于提出客服對話數據處理方法與信息抽取方法[7].Li等[8]使用機器學習算法對客服質量進行評級;Tan等[9]使用信息檢索方法提取出額外特征,以此來提升客服問題解決時間的預測精度;Chihani等[10]對中國移動的客服數據進行語音識別后進行信息抽取和情感分析,來獲取客戶的意圖和客服人員的態度.雖然這些方法均取得了一定的效果,但客服對話仍存在著錯誤文本較多、口語化程度高和標注數據少等問題.
電力客服對話文本挖掘通常包括語音和文本預處理、關鍵要素識別和情感分類等過程.本文借助機器自然語言處理和學習方法,提出了一種基于雙向傳播框架的電力客服對話文本挖掘算法.該算法基于句法理論和其他類型的外部語料,來抽取情感詞與評價屬性的關系對.針對電力客服對話錯誤文本較多的問題,設計了基于詞性和窗口的關系規則來抽取情感詞與評價屬性的關系對.使用這些關系對識別出電力客服文本中的情感詞和評價屬性詞,以提升算法的適應性.
雙向傳播算法是Qiu等為解決情感詞和評價對象提取問題在2011年提出的一種算法.該算法使用不同的句法關系規則找出對話文本中的情感詞與情感詞、情感詞與評價對象、評價對象與情感詞以及評價對象與評價對象之間的關系,并迭代得到所有可能的情感詞和評價屬性.但該算法是針對英文語料數據設計的,本文為了解決電力客服對話數據的挖掘問題,提出了改進的雙向傳播算法框架,如圖1所示.該算法在雙向傳播算法的基礎上,使用詞頻閾值和相似度計算方法挖掘出更準確的情感詞和屬性詞集合.算法具體步驟為:1)從預定義的初始情感詞出發,找出客服對話文本中對應的情感詞或評價對象;2)分別從候選情感詞和評價對象出發,找出所有符合情感詞與評價對象、評價對象與情感詞以及評價對象與評價對象之間關系的情感詞或評價對象,并將其加入候選情感詞或評價對象集合中;3)重復步驟2)直至不再出現新的情感詞和評價對象;4)使用詞頻閾值對得到的集合進行過濾,進而得到更準確的情感詞和評價對象集合;5)使用相似度計算算法選出有效的低頻詞,得到最終準確的情感詞和評價對象集合.

圖1 改進的雙向傳播算法框架
電力客服文本對話存在標注數據少和錯誤多的特點,而傳統方法只是用依存句法工具來提取詞語關系,導致提取出的語料數據庫存在較多的噪聲.因此,本文基于雙向傳播框架,首先從外部語料中獲取情感詞和評價屬性并對其進行擴展;然后使用基于詞向量的語料相似度計算方法識別長尾詞;最后挖掘出客服對話文本的情感詞和評價屬性.該算法流程如圖2所示.
本文通過收集電力客服相關的新聞評論和微博評論作為外部語料來抽取評價要素,根據文獻[11]提出的依存關系設計了11種句法規則來抽取關系詞對.其中,情感詞(S)限定為形容詞,評價屬性(A)限定為動詞或名詞.本文設計的3個主要規則為:主謂關系(S→SBV→A);偏正結構(S→ATT→A);動賓結構(S→VOB→SBV→A).通過COO擴展可以得到11種句法規則:S→SBV→A;S→ATT→A;S→VOB→SBV→A;S→COO→SBV→A;S→SBV→COO→A;A→COO→ATT→S;A→ATT→COO→S;S→COO→VOB→SBV→A;S→VOB→SBV→COO→A;A→COO→A;S→COO→S.

圖2 電力客服對話評價要素提取框架
基于這些規則可以得到外部語料雙向傳播算法流程為:1)抽取候選關系對,使用11種句法規則抽取外部語料數據集中所有句子的候選關系;2)迭代識別評價要素,使用本文提出的改進的雙向傳播算法迭代識別候選情感詞與屬性詞,并對其進行詞頻過濾.
該算法將滿足各種規則的關系一次性提取出來,存于〈屬性詞,屬性詞〉,〈屬性詞,情感詞〉和〈情感詞,情感詞〉集合.同時,各集合使用HashSet來加快匹配速度.
由于電力客服語料存在高度口語化和文本錯誤多的問題,使得不能較好地分析句法依存關系.本文通過挖掘結構化客戶的意見信息,并使用基于窗口和詞性的關系規則來捕捉情感詞與屬性詞的關系.
本文將情感詞設定為已有情感詞或詞性形容詞adj,將屬性詞限定為動詞v或名詞n,然后使用詞性限制和滑動窗口規則來提取關系對.
文中針對電力客服語料的特點設計的關系規則為:在滑動窗口中若存在名詞或動詞,且存在已有情感詞或形容詞,并滿足表1所示的關系規則,則將名詞或動詞與已有情感詞或形容詞作為關系對.

表1 電力客服語料關系規則
基于這一關系規則,本文定義了面向電力客服文本的雙向傳播算法流程如下:
1) 使用2.1節中定義的依存關系規則,抽取出候選關系對,并使用支持度閾值對其進行過濾,得到出現支持度閾值大于K1的關系對;
2) 使用表1中的關系規則抽取電力客服對話文本中的關系對,并對其進行過濾得到出現支持度閾值大于K2的關系對;
3) 合并步驟1)和步驟2)中的關系對,并取各關系對的最大值得到候選關系對;
4) 使用第1部分介紹的雙向傳播算法對上述候選關系對進行雙向傳播識別,且對其進行詞頻過濾.
本文使用Word2Vec模型將詞語映射到一個多維實向量空間,來解決由于相似的詞語在離散語言模型中可能具有完全相同的表示問題.該模型是2013年由Mikolov等提出的,其包含基于當前詞預測上下文詞語的Skip-gram概率模型和根據上下文詞語預測當前詞的CBOW模型.
本文通過計算兩個詞在多維實向量空間中的余弦距離來得到不同詞語間的相似度,其表達式為
(1)
式中,Φa和Φb分別為詞語a和b的向量.
由前文可知,本文可以得到準確的情感詞和屬性詞集合,但由于客服對話文本中有些語料被頻繁提及,導致存在著長尾現象.因此,本文通過在長尾詞中挖掘出更多的情感詞和屬性詞來提升精度,具體方法如下:
1) 選取情感詞集合的低頻詞Slow和屬性詞集合的低頻詞Alow,準確的低頻詞集合S和準確的屬性詞集合A,設置相似度閾值α;
2) 對Alow中的每一個詞word,若sim(word,A)>α,則將word加入推薦屬性詞集合Aadd;
3) 對Slow中的每一個詞word,若sim(word,S)>α,則將word加入推薦情感詞集合Sadd;
4) 輸出推薦情感詞集合Sadd和推薦屬性詞集合Aadd.
兩個詞的相似度sim(word,W′)為word相對于集合W′中所有詞語的最大相似度,即
sim(word,W′)=maxwi∈W′(VectorSim(word,wi))
(2)
由于單詞在諸多情況下并不能完整地表達一個句子的意思,而本文使用的雙向傳播算法需要迭代識別情感詞和屬性詞.同時,基于規則的方法不能較好地處理屬性短語的抽取問題.因此,本文設計了基于左右信息熵和點間互信息的短語擴展方法.
信息熵是不確定性的一種度量方式,假設隨機變量X的取值個數有限,則其取值為x的概率為P(x),故變量X的熵為

(3)
單詞W的左右熵定義為
(4)
(5)
式中,Wa、Wb分別為單詞W左邊詞語的集合和右邊詞語的集合.
點間互信息為兩變量相互依賴程度的度量,其定義為
(6)
式中,P(w1)、P(w2)、P(w1&w2)分別為詞語w1出現的頻率,詞語w2出現的頻率和詞語w1與詞語w2同時出現的頻率.點間互信息越高表明兩詞語的相關性越高,即當兩個詞語具有更高的點間互信息時,兩詞語的相關性越高;反之當兩個詞語具有較低的點間互信息時,兩詞語的相關性也較低.
使用信息熵和點間互信息可以將雙向傳播算法提取出的屬性詞合并成一些屬性短語,如可將“實時”和“模式”兩個詞合并成“實時模式”這一短語.
本文挖掘和標注了一個電力客服領域的客服對話數據集進行測試實驗.該數據集將電力客服文本中出現的情感詞、屬性詞及其評價搭配作為語料數據庫.本文共標注了6 000個客服對話文本,得到的數據如表2所示,這些數據主要是與電力客服相關的評論語料,由于這些對話文本的意圖不盡是表達意見或問題,因此,包含評價屬性、評價詞以及評價搭配的句子分布較為稀疏.

表2 電力客服文本語料數據分布
本文從網站平臺和各類移動平臺上抓取了共約5 500條評論作為外部語料數據集,這些數據包含電力運行、電力銷售和電力維修相關的客服語料.本文在仿真測試前先對這些數據集進行預處理并得到詞向量,具體處理步驟如下:
1) 預處理.刪除標點符號,合并空格,過濾URL鏈接,過濾長短句并分句.
2) 分詞.使用Jieba分詞工具對預處理后的對話文本進行詞語劃分.
3) 詞向量訓練.本文將劃分后的詞語表示成詞向量的形式,并使用Gensim工具訓練詞向量.此外,將得到的詞向量格式化為一行一句并使用空格隔開各詞語.本文設置詞語窗口為5,詞頻大小為5,并設置詞向量的維度為50.
本文使用precision、recall和F1指標來評估算法的有效性,各指標定義為:
precision=正確的要素詞數/測試數據的總詞數
recall=正確的要素詞數/抽取的總詞數
F1=2×precision×recall/(precision+recall)
本文進行了兩組實驗,首先比較本文算法在不同組合時得到的實驗效果,結果如表3所示.從表3中可以看出,對比基準方法,使用反向傳播算法可以引入針對電力客服對話的關系規則能較大地提升召回率.但一定程度上損失了評價屬性提取的準確度,從而引入噪聲導致得到的客服語料規則較粗糙.對比傳統的反向傳播方法和其他加入詞向量的方法,可以得知使用詞向量后能從低頻詞中提取出更有用的詞語來提升召回率.對比僅使用外部語料數據集的反向傳播算法,本文引入電力客服語料數據集的方法可以提高算法的召回率和準確率.最后比較引入低頻詞提取與短語擴展的結果,能得到最高的情感詞識別精度及召回率.

表3 不同方法模塊組合實驗結果
本文的第二組實驗比較在設置不同的支持度閾值(大于K1)和相似度閾值α時,本文算法的識別精度結果如表4所示.表4中支持度閾值K2固定為10,從表4中可以看出,設置的詞頻較低時,能得到更高的評價屬性提取召回率,原因是設置較低的詞頻能提取出更多的評價要素;而具有較高的詞頻時,能得到更高的評價要素識別準確率.原因是具有更高詞頻的詞語,相對于低詞頻的詞語更可信.同時本文也對比了不同詞向量閾值時的實驗效果,可以看出情感詞識別的精度并不能隨著詞向量閾值的升高而升高.因為設置較高的閾值導致部分詞語被忽略了,所以閾值為0.4時能得到比閾值為0.5時更高的準確率.

表4 不同閾值設置實驗結果
本文提出了一種基于雙向傳播框架的電力客服對話文本挖掘算法.該算法使用了基于詞性和窗口的關系規則來抽取情感詞與評價屬性的關系對,并使用這些關系對識別出客服文本中的情感詞和評價屬性詞.實驗結果表明,所提出的方法相比于傳統的反向傳播方法具有更高的識別準確率和情感詞提取精度.同時,使用低頻詞提取與短語擴展方法也能提升識別精度.