喬世權 戴繼勇


摘 要:為了幫助電話人工客服座席提供不間斷地、質量穩定的服務,有必要研發智能查號引擎。基于最長公共子序列算法和最長公共子元素序列算法的研究,提出了短文本相似度計算算法,以提高查號的準確性,并以此為基礎,設計出智能查號搜索引擎系統及其實現方法。考慮到實際需求,通過自然語言處理中的分詞、簡稱替換、同義詞替換、構建停用詞表等,對數據進行預處理;通過基于HowNet和同義詞詞林的相似計算,完成進一步的數據處理;對外提供遵循REST規范的API接口。實驗表明,智能查號引擎的設計可行,具有較好的業務處理能力,可滿足用戶需求;同時,也存在一些問題,有待于進一步的改進。智能查號引擎可以提供24 h不間斷服務,相對于人工服務,具有更高的查號效率和更穩定的高質服務,可為智能電話客服的發展提供借鑒。
關鍵詞:計算機信息管理系統;文本相似度;分詞;停用詞;同義詞;查號引擎
中圖分類號:TP391 文獻標志碼:A
文章編號:1008-1542(2018)03-0282-07
當今是一個高度信息化的時代,目前搜索引擎可以為大家提供方便的信息查詢功能,但是在查詢電話號碼方面還有其不足之處,例如:網絡查詢時會得到大量的相關信息,需要人工挑揀需要的電話信息,并且在查詢信息中,還可能存在詐騙電話。因此撥打查詢電話是獲取準確單位電話的最有保障的方式。由于人工電話查詢存在著單任務、速度慢并且不能提供不間斷、穩定質量服務的特點,研發基于自然語言的對話引擎是很有必要的。對話引擎針對用戶提出的問題返回的不是一些相關的信息列表,而是一個精準的答案,從而能夠省去用戶從信息列表當中篩選信息所耗費的時間和精力。
目前針對智能客服方面的研究主要集中在人機對話[1]、智能服務機器人[2]等領域,研究內容大部分是對自然語言的理解和處理上,而針對電話查詢業務的智能客服研究甚少。本文利用文本相似度算法,通過數據預處理、停用詞表和同義詞庫構建完成實現智能查號的搜索引擎設計。
1 數據預處理
當用戶表達一種需求的時候可能存在多種描述形式,每種描述形式呈現在文本中就會存在差異,例如“河北科技大學的地址”和“河北科技大學在哪兒”,雖然表述方式不同,但是表達的都是同一種意思,將同一語義的不同表述方式歸化為同一種表述方式即為語義歸一化,本文采用了簡稱替換和同義詞替換兩種語義歸一化操作,同時借助設定的規則模板,完成對核心查詢詞的抽取工作。
1.1 分詞與簡稱替換
本文采用開源的分詞工具:先進行原子切分,然后在此基礎上進行N-最短路徑粗切分,找出前N個最符合的切分結果,生成二元分詞表,然后生成分詞結果,接著進行詞性標注并完成主要分詞步驟[3]。例如,給定一個問題“幫我查詢一下河北科技大學教務處的電話”,將“科技大學”和“教務處”人工標注為自定義詞典,對其進行分詞的結果為{幫/v}{我/n}{查詢/v}{一/num}{下/quant}{河北/ns}{科技大學/user-defined}{教務處/user-defined}{的/uj}{電話/n}。其中“/*”代表詞性,“/user-defined”為自定義詞性。
簡稱,是指抽出原詞語中的共同部分,或概括原來幾個詞語表示的事物的共性[4]組成的短語。簡稱更多的時候會被用在口語化的表達中。在問答系統中,用戶輸入的簡稱表達不僅會省略想要表達的部分語義,甚至會因為細小的差別而導致語義理解的錯誤。所以在對用戶輸入文本做相似度計算的時候,將簡稱替換為全稱是很有必要的。
表1為通過對日志和原始數據的分析整理得出部分簡稱替換數據,其中簡稱欄為用戶常用的簡稱表達方式,全稱為對應的全稱表達方式。
簡稱替換機制是用在對話引擎的文本輸入部分,用在停用詞處理之前,通過將用戶的輸入與簡稱替換表中的簡稱進行匹配,匹配成功則替換為對應的簡稱。
1.2 基礎詞法分析
基礎詞法是對用戶輸入的中文文本的處理程序,主要是依據已有的基礎詞庫和自定義詞庫對用戶輸入進行處理。該部分對中文的處理都是基于語音識別結果較好的中文詞語進行,例如“大學”“公安局”“酒店”“賓館”等詞語都是用戶能夠表達清楚并且語音識別效果較好的詞匯,依據這些能夠識別準確的詞匯,實現了觸發詞的機制,該機制的思想是:當用戶輸入了能夠代表其語義目的的詞匯時,就會自動觸發該機制,并在給用戶的回復當中優先回復該觸發詞對應的單位信息。
觸發詞機制的數據是以文件的形式存儲在TXT文檔中,有3列數據并以空格隔開,存儲結構如表2所示。
其中觸發詞的定義規則為每一列之間用空格隔開,當有多個觸發詞時使用“|”隔開,當需要多個觸發詞同時生效才觸發時,使用“*”號隔開,其中“*”號匹配任何長度的任何字符串。例如當用戶輸入“幫我查下科大教務處的電話”或者“幫我查下科技大學”時,就會觸發“科*大”這個觸發詞,并在系統回復當中優先回復這條電話號碼。
1.3 短文本相似度計算算法
文本相似度是兩個文本之間相似匹配程度的重要參考指標[5],目前大多數的文本相似度算法[6]主要是基于統計和語義的方法,其相似度對象主要是中文文字或者詞語,而由于本文研究課題的特殊性,提出基于拼音最長公共子序列的文本相似度計算算法。
1.3.1 最長公共子序列算法
由式(1)可計算得出兩個字符串的最長公共子序列長度。
1.3.2 最長公共子元素序列算法
1.3.3 短文本相似度計算
對話引擎的輸入文本是電話語音識別成文本的結果,而電話語音識別成文本的效果往往并不是很好,一方面原因是電話語音采集的質量本身就比大多數電子設備的語音采集質量差,另一方面的原因是不同地區用戶,乃至同一地區不同用戶的口音也會存在差別,口語的語音轉文本會受用戶普通話標準程度的影響。通過測試發現,雖然語音轉寫的大多數漢字都不準確,但是大致的音還是能識別對的,即同音不同字。為了解決這個問題,本文采取的是將漢字文本轉寫為拼音后的文本相似度計算,其中參與相似度計算的文本的基本單位是一個漢字或者數字或者英文字母的拼音表示,以下所有提到參與相似度計算的文本的基本單位都是一個拼音字符串。
在數據庫中,用于信息檢索的字段為3~15個字符的單位名稱,而通過對用戶輸入文本的預處理,最終形成大概5~20個字符的文本,通過計算用戶輸入的內容與數據庫中單位名稱字段文本的相似度,給出相似度的排序列表并最終選出一個最優解。基于這樣的需求和對前兩節內容的研究,本文提出了一種文本相似度計算方法:文本的相似度與兩個文本的長度成反比關系,與兩個文本的最長公共子序列的長度成正比關系。由此可得出公式
1.4 停用詞表及同義詞庫構建
1.4.1 停用詞表構建
正確理解用戶輸入問題的語義是影響對話引擎效果好壞的關鍵,而由于用戶輸入內容的不可控性,除了能正確表達用戶意圖的文本,還會有許多的干擾因素,稱之為噪音詞[16]。文本預處理就是在通過技術手段消除噪音詞、提取核心語義文本的過程。
停用詞(Stop Word)[17-18]是指在進行語義理解或者相似度計算當中,在輸入的文本當中出現頻率很高但是在信息檢索的時候幾乎不起任何作用甚至會起到干擾作用的詞語,如“的”、“啦”、“呀”等詞語。但是在對話引擎或者問答系統當中,停用詞并不是唯一的,停用詞會因為其應用場景或者問題的不同而動態的改變[19]。
本文構建的停用詞表分為絕對停用詞和相對停用詞。
1) 絕對停用詞是不考慮停用詞所在文本中的上下文語義必須過濾的停用詞;
2) 相對停用詞是需要考慮停用詞在上下文語境中的成分、位置的停用詞,只在特定語境下才會觸發該停用詞。
在構建停用詞的時候本文引入了熵計算[20]的概念,熵計算是一個基于詞語出現的平均信息量,對詞的有效性進行計算
在同一個文本當中,P(Wi|W)為貝葉斯公式原理,表示詞語W出現的情況下,Wi出現的概率。通過對多個文本進行分詞統計詞頻的計算,可得出某一停用詞出現的情況下,其他詞語出現的概率,從而可以得出在同一個文本當中兩個詞之間的語義關聯。
其中原始數據進行分詞處理是對原始名稱、地址處理,這兩個字段的內容代表著該單位名稱語義的核心內容,此外,由于原始數據和日志數據的不規范性,最終確定停用詞表的規模在100個詞語以后,對于最終停用詞表的確定需要一定工作量的人工標注以確保準確性。
1.4.2 同義詞庫的構建
同義詞是指詞匯意義相同或者相近的詞語。一般情況下同義詞都會是兩個詞語中間有一個或者幾個字重復或者重音的,例如“地址”和“地點”,“發現”和“發覺”。同義詞所表達的基本意義相同,會因不同的表達習慣和場合而有所不同。
詞語相似度計算在許多領域如信息檢索、信息抽取、問答系統、詞義消歧、多文檔文摘系統等都有著非常廣泛的應用。它可以表示為兩個詞語在同一個文本當中可以相互替換而不改變文本原來含義的程度。由于網絡資源的不規范性,需要對一些差別比較大的同義詞進行過濾。本文采取的是以數據分詞結果作為主詞通過網絡爬蟲的方式構建同義詞庫,并通過計算詞語相似度的方式對同義詞的近義程度進行數據化表示。
同義詞替換[21]機制是用在停用詞替換之后,同義詞替換過程流程圖如圖2所示。將用戶輸入進行分詞和詞性標注之后,通過這兩個屬性分別與同義詞庫當中的同義詞節點進行比對,首先與主詞進行比對,匹配成功則不進行任何操作循環進行下一個詞語的匹配;與主詞匹配不成功則與副詞進行匹配,匹配成功則替換成對應的主詞,匹配不成功則進行下一個詞語的匹配,直到同義詞替換完成返回替換后的結果。
2 智能查號引擎設計
2.1 單位信息查詢
單位信息查詢是基于文本相似度的計算和排序機制實現的,其中相似度的計算包括漢字和拼音相似度計算。文本相似度的計算會將用戶的問句通過文本研究的相似度計算算法與語義分析得出的場景知識庫中的數據一一進行計算,其中計算的兩個文本相似度的因素主要有3個,如表3所示。
在漢字的語義相似度計算當中,如果經過分詞之后觸發了觸發詞機制,則會把觸發詞對應的單位名稱的
名稱相似度、地址相似度和部門相似度全部設為最
高值,在系統回復的過程中優先回復本條信息。
對于單位名稱的相似度計算是使用基于主文本長度的相似度計算算法,對于地址和部門信息的相似度計算是使用基于關鍵字匹配的相似度計算算法。
計算完相似度之后,會根據每條數據的單位名稱相似度、地址信息相似度和部門信息相似度對已有的場景知識庫數據進行排序,并得出最優解。對最優解答案的排序規則如下:
1)通過對名稱相似度的計算,按照單位名稱的相似度評分進行排序,取前若干條中單位名稱相同但部門和地址不同的數據得到一個通過單位名稱評分排序的列表;
2)在經過第1次排序之后加入地址評分的考慮因素進行二次排序,即相同單位名稱的情況中,地址評分較高者,將排序的位置調整到所在單位中最靠前的位置;
3)再加入部門評分的考慮因素進行第3次排序,在第2次排序結果的基礎上,單位名稱和地址信息都相同的情況下,部門評分較高者排序到最靠前的位置。
如果部門評分都相同,即沒有匹配到部門信息的情況下,則按照設定好的優先部門排序規則進行排序。例如如果設定部門優先排序規則為“辦公室、財務科、人事科”,則會優先排序該單位中部門為“辦公室”的數據,如果數據當中沒有部門為“辦公室”的,則優先排序部門為“財務科”的,以此類推。
語義相似度排序流程圖如圖3所示。
2.2 智能查號引擎的實現與性能分析
在查號引擎測試中,測試并分析了1 000條數據分別請求對話。查號引擎的響應時間分布圖如圖4所示,最快響應時間為1 ms,最慢響應時間為3 815 ms,平均響應時間為282.353 ms,這個平均響應時間完全可以滿足用戶的需求。
3 結 語
本文首先通過分詞、簡稱替換和單位名稱基礎分詞分析完成數據的預處理。構建了停用詞表和同義詞庫,實現了對原始數據名稱、地址語義和部門語義的抽取。通過最長公共子序列、最長公共子元素序列、短文本相似度計算等算法實現了單位信息的查詢處理。利用文本相似度計算結合前期對數據的預處理,通過提供遵循REST規范的API接口來實現智能查號,最終完成了智能查號引擎的設計。最后,對查號引擎響應時間進行了測試,分析了其業務處理能力。結果表明,智能查號引擎能夠滿足用戶的基本需求,
可以提供24 h不間斷服務,相對于人工服務,具有更高的查號效率和更穩定的高質服務,可為智能電話客服的發展提供借鑒。盡管如此,本研究在文本預處理階段需要做大量人工標注工作,今后的研究方向是進一步減少人工干預,實現數據處理的自動化。
參考文獻/References:
[1] 馬龍. 人機對話理解中聯合學習技術的研究與應用[D].北京:北京郵電大學,2017.
MA Long. Research and Application on Joint Learning Technology in Spoken Language Understanding[D]. Beijing: Beijing University of Posts and Telecommunications,2017.
[2] 谷鑫.微信公眾平臺客服機器人設計與實現[J].信息技術,2017(5):166-169.
GU Xin. Design and implementation of customer service robot on WeChat public platform[J].Information Technology,2017(5):166-169.
[3] 王飛. 基于蟻群優化的模糊文本聚類算法研究[D].鄭州:河南工業大學,2010.
WANG Fei. The Research on Fuzzy C-Means Documents Clustering Based on Ant Colony Optimization[D]. Zhengzhou: Henan University of Technology, 2010.
[4] 劉麗彬.語言學視角下中西新聞報道的文體特征差異[J].新聞知識,2013(5):28-29.
LIU Libin. Differences in stylistic features between chinese and western news reports from the perspective of linguistics[J]. News Research, 2013(5):28-29.
[5] 趙謙. 基于HowNet的短文本語義相似度計算方法研究[D].太原:太原理工大學,2017.
ZHAO Qian. Research on the Method of Semantic Similarity Calculation of Short Texts Based on HowNet[D]. Taiyuan: Taiyuan University of Technology, 2017.
[6] ZHU Ganggao, CARLOS A I. Exploiting semantic similarity for named entity disambiguation in knowledge graphs[J]. Expert Systems with Applications,2018,101: 8-24.
[7] 于海英. 程序代碼相似度識別的研究[D].呼和浩特:內蒙古師范大學,2006.
YU Haiying. Research of Identifying Progam Code Similarity[D]. Hohhot: Inner Mongolia Normal University, 2006.
[8] 孫燾,朱曉明.基于格代數的最長公共子序列近似求解[J].計算機科學,2017,44(2):270-274.
SUN Tao, ZHU Xiaoming. Computing longest common subsequences approximately based on lattice[J]. Computer Science,2017,44(2):270-274.
[9] 林翠萍,吳揚揚.采用改進最長公共子序列的人名消歧[J].華僑大學學報(自然科學版),2016,37(2):201-206.
LIN Cuiping, WU Yangyang. Person name disambiguation based on revised longest common subsequence[J]. Journal of Huaqiao University(Natural Science),2016,37(2):201-206.
[10]李城,沙俊淞,武文.基于最長公共子序列的微博謠言溯源研究[J].計算機與現代化,2018(1):107-112.
LI Cheng, SHA Junsong, WU Wen. Research on origin of micro-blog rumors based on longest common subsequence[J]. Computer and Modernization, 2018(1):107-112.
[11]TSENG Kuotsung, CHAN Desheng, YANG Changbiau,et al. Efficient merged longest common subsequence algorithms for similar sequences[J]. Theoretical Computer Science,2018,708:75-90.
[12]劉鼎甲. 基于關系模型的語料庫查詢處理問題研究[D].秦皇島:燕山大學,2015.
LIU Dingjia. Issues on the Query Processing of Corpora Based on Relational Model[D]. Qinhuangdao:Yanshan University, 2015.
[13]王鑒全. 基于概念圖挖掘的中文文本傾向性研究[D].大連:大連理工大學,2012.
WANG Jianquan. Chinese Sentiment Analysis Based on Comception Map Mining[D]. Dalian: Dalian University of Technology, 2012.
[14]王先勝. XSemantic:基于語義擴展的XML關鍵字檢索技術研究[D].上海:復旦大學,2010.
WANG Xiansheng. XSemantic: The Research of Keuword Search on XML Documents based on Keyword Expansion[D]. Shanghai: Fudan University, 2010.
[15]王鑒全, 季紹波. 基于關聯規則的自動構詞算法研究[J]. 計算機科學, 2014, 41(11):256-259.
WANG Jianquan, JI Shaobo. Research and application on auto-word buiding[J].Computer Science, 2014, 41(11):256-259.
[16]陳俊鵬. 詞義消歧中若干關鍵技術研究[D].武漢:武漢大學,2012.
CHEN Junpeng. The Reaearch of Several Key Technologies of Word Semse Disambiquation[D]. Wuhan: Wuhan University, 2012.
[17]化柏林.知識抽取中的停用詞處理技術[J].現代圖書情報技術,2007(8):48-51.
HUA Bolin. Stop-word processing technique in knowledge extraction[J]. New Technology of Library and Information Service, 2007(8):48-51.
[18]馬治濤. 文本分類停用詞處理和特征選擇技術研究[D].西安:西安電子科技大學,2014.
MA Zhitao. Research on Stop Words and Feature Selection for Text Classification[D].Xian: Xidian University,2014.
[19]熊文新,宋柔.信息檢索用戶查詢語句的停用詞過濾[J].計算機工程,2007,33(6):195 -197.
XIONG Wenxin, SONG Rou. Removal of stop word in users request for information retrieval[J]. Computer Engineering, 2007,33(6):195-197.
[20]靳銳,張宏莉,張玥,等.中文公眾事件信息熵計算方法[J].軟件學報,2016,27(11):2855-2869.
JIN Rui, ZHANG Hongli, ZHANG Yue,et al. Calculation method of chinese public event information entropy[J].Journal of Software,2016,27(11):2855-2869.
[21]胡毅君. 基于低失真替換的文本隱寫算法研究[D].長沙:長沙理工大學,2015.
HU Yijun.Research on Text Steganography based on Low Distortion Substitution[D].Changsha: Changsha University of Science & Technology,2015.