曹彬 王峰 李詩語
摘要:通過互聯(lián)網(wǎng)搜集整理系統(tǒng)搭建智能聊天機器人所需要的中醫(yī)問診對話數(shù)據(jù),設計中醫(yī)智能問答系統(tǒng)的知識庫,設計基于卷積神經(jīng)網(wǎng)絡的結(jié)構(gòu)設計問題分類模型來優(yōu)化系統(tǒng)檢索時間,研究使用基于詞向量的問句相似度來匹配相似語句,從而到相應的知識庫中檢索匹配度高的問句并提取相應的答案回答,最終系統(tǒng)將最優(yōu)最穩(wěn)定的答復語句反饋給用戶。
關鍵詞: 中醫(yī)智能分;聊天機器人;智能問答
中圖分類號:TN962 文獻標識碼:A
文章編號:1009-3044(2019)12-0174-02
1 引言
在全球的科技迅猛發(fā)展的當下社會,不得不說互聯(lián)網(wǎng)已經(jīng)成了人們生活中的不可缺少的最重要的工具之一,人們已經(jīng)離不開互聯(lián)網(wǎng)帶來的便利,通過互聯(lián)網(wǎng)絡人們可以獲取到日常生活乃至學習所需要的各種知識,并且人們還會通過互聯(lián)網(wǎng)來互相聯(lián)系交流信息,甚至還會通過互聯(lián)網(wǎng)舉辦線上的商務活動等等?;ヂ?lián)網(wǎng)上聚集了大量的數(shù)據(jù),隨著大數(shù)據(jù)時代的來臨,相關技術(shù)也逐漸可以處理并應用這些技術(shù),自然語言處理技術(shù)也自然應用起來,面對這種技術(shù)蓬勃發(fā)展的盛況,我國的中醫(yī)文化寶藏可有了更進一步發(fā)展的趨勢[1]。
本系統(tǒng)所介紹的面向中醫(yī)領域的聊天機器人,就是在利用當下互聯(lián)網(wǎng)上豐富的中醫(yī)問答數(shù)據(jù)來組建相應的知識庫所做的聊天機器人。該設計旨在完成一個能和用戶進行良好交互的中醫(yī)問答對話系統(tǒng);根據(jù)用戶所說的問句來進行問題分類,然后到相應的知識庫中檢索出對應的或類似的答案,以此回答對方,本應用的設計對中醫(yī)的應用發(fā)展具有很大的意義。
2 相關技術(shù)
2.1 自然語言處理
2.1.1 中文分詞
中文分詞是將一個漢語句子序列基于漢語語言規(guī)則分割成單獨的詞,有時也稱為標注。不同于英文等單詞間存在自然分界符的語言,中文只有單字、句子、段落能夠通過明顯的標識來劃分,單詞間沒有諸如空格等分界標識將詞分隔開來。雖然英文分詞也會有存在特殊標識符以及未登錄詞數(shù)量龐大等問題,但是這種問題處理起來的復雜度遠遠低于中文分詞需要處理的問題的復雜度。中文分詞中,詞匯不僅存在一次多義的情況,而且同一個詞在不同的語境下所表達的意義也不盡相同,中文分詞是理解漢語自然語言語義的第一步,是所有漢語自然語言處理技術(shù)的基礎。
2.1.2 詞向量
對于計算機來說,理解自然語言是極其困難的,所以首先必須對文本進行向量化,即將文本映射到文本向量空間中,目前主要有兩種方式來表示,一種是最簡單的獨熱編碼,它是將單詞用固定長度的向量表示,向量的長度為文本進行分詞處理后詞組的個數(shù),該向量的每一位都對應文本中的某個單詞,如果某個單詞存在,則向量對應位置的數(shù)值為1,反之如果不存在則為0,采用這種表達方式的向量維度會很高,需要占用大量內(nèi)存,并且這種表述忽略了文本的語序含義。第二種文本向量表示方式是詞向量,我們可以將詞向量看成是單詞的一種分散式表示,通過這種方法將單詞映射到詞向量空間,一般訓練出來的詞向量的維度設置在50~300維之間,詞向量能有效地解決獨熱編碼表示文本信息所帶來的高維災難問題,這種分布式表示通過歐氏距離或求余弦等方式能有效地判斷單詞之間的語義相似程度[2]。
2.2 神經(jīng)網(wǎng)絡模型
2.2.1 神經(jīng)網(wǎng)絡概述
設計神經(jīng)網(wǎng)絡的靈感就是來源于人腦的神經(jīng)信息處理系統(tǒng),神經(jīng)網(wǎng)絡就是由很多的神經(jīng)元組合而成的。而人的大腦中包含很多類似的神經(jīng)元,人就是通過這些神經(jīng)元互相連接相互影響來處理大量日常的數(shù)據(jù),這些神經(jīng)元的組合連接使人類有了學習記憶的能力。最早科學家首先提出單層感知器模型,但這種模型在當時被證明僅限用于解決線性劃分問題,使得在當時對人工神經(jīng)網(wǎng)絡研究停滯不前,處于低潮時期。直到多層感知器的提出才使得神經(jīng)網(wǎng)絡的發(fā)展有了嶄新的開始。神經(jīng)網(wǎng)絡是一種數(shù)學模型,具有并行處理、自動學習、很強的信息綜合能力強等優(yōu)點,這些優(yōu)點使得神經(jīng)網(wǎng)絡的應用也十分的廣泛,自動控制、圖像處理、模式識別、地理、醫(yī)療、衛(wèi)生保健、農(nóng)業(yè)等各個領域都有應用到神經(jīng)網(wǎng)絡。
2.2.2 卷積神經(jīng)網(wǎng)絡
卷積神經(jīng)網(wǎng)絡本質(zhì)上是一個前饋神經(jīng)網(wǎng)絡,它最重要的創(chuàng)新是采用卷積核來計算,使用卷積核將二維離散卷積運算和人工神經(jīng)網(wǎng)絡相結(jié)合形成一種新的神經(jīng)網(wǎng)絡結(jié)構(gòu),神經(jīng)網(wǎng)絡中的上下層的神經(jīng)元不再是全連接的連接方式,這種局部連接方法不僅僅能夠降低模型的復雜度,同時還可以緩解深度神經(jīng)網(wǎng)絡層數(shù)過多導致的過擬合問題。它還具有很強的特性學習能力,利用逐層的迭代、逐層抽象的特點挖掘數(shù)據(jù)局部特征,同時具有提取全局特征和上下文信息的能力,在圖像分類的各個領域取得了很好的成果。與傳統(tǒng)的基于手工特征提取方法相比,CNN能利用大規(guī)模訓練數(shù)據(jù)自動學習特征。
3 系統(tǒng)整體設計
本文設計的面向中醫(yī)的聊天機器人系統(tǒng),通過搜集網(wǎng)上的中醫(yī)問診對話數(shù)據(jù)作為系統(tǒng)模型的訓練,并建立相應的知識庫,用戶分類后的問題將進入相應的問題知識庫中檢索匹配語義最相近的問句,并提取出答案回復。
系統(tǒng)整體設計中的三個知識庫分別對應嘔吐,感冒和針眼三種病例,故而此處的分類任務是四分類任務,接下來將對系統(tǒng)設計的流程分別介紹,系統(tǒng)的建立首先是知識庫的創(chuàng)建,即數(shù)據(jù)集的收集整理并建立知識庫。
3.1 知識庫建立
本設計主要爬取的是家庭醫(yī)生在線上的中醫(yī)問答數(shù)據(jù),由于官網(wǎng)的數(shù)據(jù)量有限,并且數(shù)據(jù)需要進行清洗刪減,所以最終嘔吐對話整理出2萬對問答數(shù)據(jù),而感冒和針眼則只是分別整理出5000對問答數(shù)據(jù),如圖3 為整理后的嘔吐數(shù)據(jù)集的部分截圖。
整理后的數(shù)據(jù)集將會存儲在數(shù)據(jù)庫中保存,用于后續(xù)的模型訓練和對話回復的語句答案提取。由于知識庫的而建立,病例數(shù)據(jù)集可以很方便地通過不斷向相應知識庫添加病例問答數(shù)據(jù)來擴大病例的不同詢問,這樣能給用戶提供更好的問診回復體驗。
3.2 系統(tǒng)結(jié)構(gòu)
聊天機器人隨著數(shù)據(jù)庫數(shù)據(jù)集的增加,進行文本匹配檢索的時間將會越來越長,故上文對病例分別建立知識庫,為達到能將問題更加準確的分類的目的,設計訓練一種分類模型用于問題分類,機器學習中傳統(tǒng)的多分類模型有樸素貝葉斯和支持向量機模型在處理類似的問題時有較好的效果,但是這類模型的特征一般是采用獨熱編碼的形式來表示文本信息,而文本數(shù)據(jù)經(jīng)過處理分詞之后,句子被切成不同的詞和詞組,這種表示只是統(tǒng)計了詞的詞頻特征,沒有很好的獲取文本語義特征。所以此處使用中文維基百科語料訓練的詞向量來訓練的一個基于卷積神經(jīng)網(wǎng)絡的模型用于問題分類[3]。搭建的分類模型計算流程如下圖4所示。
圖4 分類模型計算流圖
分類模型的主要結(jié)構(gòu)是通過輸入層到卷積層,然后將卷積層的輸出結(jié)果輸出,通過全連接進行分類輸出結(jié)果,輸出層的激活函數(shù)使用Softmax函數(shù)進行多分類。
輸入層的大小是經(jīng)過數(shù)據(jù)集中問句字段的分詞統(tǒng)計后得出為M*N的矩陣,M為分詞后的字段個數(shù),N為詞向量的維度,其中M代表字段分詞后的詞組數(shù)量。因為文本的詞組數(shù)量是不定的,在這里我們對輸入文本做預處理,將其加工成定長,主要方法是通過統(tǒng)計文本長度分布取一個能覆蓋大部分文本的長度。經(jīng)過統(tǒng)計后,此處的M值設置為35,N的值為200,所以此處的輸入是35*200維度的靜態(tài)矩陣,輸入層通過F*N的卷積核的卷積層,F(xiàn)表示卷積長度,也就是每次處理文本中單詞的數(shù)量,我們可以選取使用不同的F值分別進行卷積來提取更多的特征。當F的值為2時,可以理解為bigram特征。所以經(jīng)過卷積層后就提取到了原文本的n-gram相關特征??梢钥闯雒看尉矸e的時候都是整行的進行。經(jīng)過卷積層后就得到了表示文本的特征向量,然后再經(jīng)過一個全連接層,并使用Softmax激活函數(shù)就得到了代表屬于不同類別的概率向量,也就完成了分類的工作[8]。
3.3 問句匹配
在問題分類后,系統(tǒng)選擇合適的病例知識庫,通過計算輸入問句詞向量與每個病例問句部分的詞向量的向量空間距離來計算問句之間的相似度。本文采用的詞向量使用Word2Vec訓練,在計算問句相似度前,需要對分別每條語句進行分詞處理,分出的詞組都有對應的詞向量,系統(tǒng)將語句的所有詞向量進行相加取平均值作為這個語句的向量表示,此處稱其為句向量[8]。然后對知識庫中的詢問部分的字段做同樣的處理,從而得到相應的句向量表示,使用余弦相似度計算兩者之間的度量值,選擇最相似的問句,在知識庫中提取出該語句回答部分的字段回復到設計的客戶端界面顯示給用戶。
4 結(jié)論
全文首先結(jié)合現(xiàn)狀寫了智能聊天機器人的研究意義和發(fā)展狀況;然后介紹了設計智能聊天機器人運用的相關技術(shù),包括自然語言處理原理、神經(jīng)網(wǎng)絡技術(shù);然后介紹了面向中醫(yī)領域的聊天機器人的具體實現(xiàn)過程。通過實驗數(shù)據(jù)結(jié)果顯示,本文設計的問題分類模型提高了分類準確度,通過詞向量計算的問句匹配更能檢索到語義更相近的語句,應用這些設計來完成的智能聊天機器人可以有效地回復用戶的問句。
參考文獻:
[1] 鄭曉霞,呂游,鄧紅,等. 基于眾包的聊天機器人的研究[J]. 信息技術(shù),2017(04):102-103+109.
[2] 劉超,馬東宇. 智能問答的聊天機器人系統(tǒng)的設計與實現(xiàn)[J]. 信息技術(shù),2017(05):176-177+180.
[3] 薛煒明,侯霞,李寧. 一種基于word2vec的文本分類方法[J]. 北京信息科技大學學報(自然科學版),2018,33(01):71-75.
[4] 汪靜,羅浪,王德強. 基于Word2Vec的中文短文本分類問題研究[J]. 計算機系統(tǒng)應用,2018,27(05):209-215.
[5] 張志偉. 基于深度學習算法的文本情感分析[D].中國民航大學,2018.
[6] 邢世樣. 基于深度學習的智能問答系統(tǒng)研究[D].北京郵電大學,2017.
[7] 楊付全. 基于概念擴展的中文問答系統(tǒng)模型研究[D].華中科技大學,2009.
[8] Yijun Gu, Rong Wang, Jianhua Wang. Word-Text Matrix Feature Selection in Chinese Text Classfication Based on LSI[P],2009.
[9] ZHANG Yangsen,ZHENG Jia,JIANG Yuru,HUANG Gaijuan,CHEN Ruoyu. A Text Sentiment Classification Modeling Method Based on Coordinated CNN-LSTM-Attention Model[J]. Chinese Journal of Electronics,2019,28(01):120-126.
【通聯(lián)編輯:代影】