張鶴凝,馬佳琳
(沈陽師范大學科信軟件學院 遼寧 沈陽 110034)
長期以來,智能問答系統的問世使得我們用鼠標、鍵盤和電腦互動,并且語音識別、手勢識別等最新進展,使得人機交互不斷發展。聊天機器人是人工智能代理,也是這種趨勢之一。聊天機器人有兩種構建方式:生成型和檢索型的聊天機器人。檢索型聊天機器人很簡單,在知識庫中有預定義的輸入。生成型聊天機器人從學習的例子中生成自己的句子。檢索型聊天機器人比生成型聊天機器人相對更容易構建,因為它們只需要對當前對話做出響應[1]。對話系統支持人機交互,主要輸入模式是語音和文本。建造一臺能夠使用自然語言與人類交流的機器一直是計算機科學的長期目標。聊天機器人結合心理咨詢服務的研究對于促進人們的心理健康具有深刻意義[2]。
本文選用開源的心理咨詢問答語料庫,該語料庫由斯坦福大學等心理學專業人士參與建設。這是心理咨詢領域首個開放的QA語料庫。一般來說,中文語料數據為長文本組成,比如文章摘要、句子、段落或者整篇文章組成的一個集合。其中文本中句子、段落之間的字、詞語是連續的,有一定含義。而進行文本挖掘分析時,我們希望文本處理的最小單位是詞或者詞語,所以這個時候就需要結巴分詞技術來將文本全部進行分詞[3]。
目前為止計算機還無法理解自然語言,所以文本向量化是首先要考慮的。如何把分詞之后的字和詞語表示成計算機能夠識別的類型,需要把中文分詞的字符串轉換成數字類型,確切的說應該是數學中的向量[4]。所以我們需要將每個詞進行數字化,這里選擇建立索引的方式。以詞表為基礎建立索引庫,根據用戶提問中的關鍵詞迅速找到包含特定關鍵詞的段落。這里數據處理包括索引生成與索引過程。其中,索引生成是把分詞之后的字和語句進行索引,在進行查詢的時候可以根據索引快速定位。通過Word2index技術生成索引文件。而索引過程是用戶在提問時,將依據系統抽取的關鍵詞從索引表中找出滿足條件的所有段落取交集返回。
本系統使用python作為開發語言,在設計上遵循配置靈活、代碼模塊化的思路,分為五大模塊;分別是數據預處理器、數據處理、執行器、深度學習模型以及可視化。數據預處理是將原始語料庫通過python的結巴分詞器對語料庫進行分詞處理,語料分詞后通過word2vec向量表示以便于滿足數據處理模塊的要求;執行器是整個系統引擎分別在運轉的時候調用數據處理器、深度學習模型進行數據處理、模型訓練、運作等工作;深度學習模型是一個基TF的seq2seq模型??梢暬故臼敲嫦蛴脩舻娜藱C交互系統。圖1為整體的框架圖。

圖1 系統框架
(1)首先對選用的開源語料庫進行語料數據預處理;
(2)使用seq2seq模型訓練預處理的數據集最終得到對話模型;
(3)用戶輸入問題,根據對話語句上下文信息提取相關主題詞;
(4)最后將預處理之后的問題通過Api調用訓練的模型獲取對應的回答。
序列到序列的方法或稱為seq2seq的方法是將給定序列從一個域轉換到另一個域的深度學習方法。編碼器作為輸入端用于輸入序列做學習訓練,并將序列傳遞給中間向量,解碼器用于輸出中間向量訓練后的序列。每一次的輸出即是下一次的輸入[5]。本系統利用seq2seq模型的特點,結合word2vec的思路,將訓練語料分為Ask語料集和Replay語料集,并根據一定的比例分為訓練語料集和驗證語料集。在數據處理完成后,執行器根據訓練模型調用seq2seq模型創建神經網絡。在訓練過程中,使用perprelixy來計算模型的loss,通過自動調整learning rate來逐步取得最優值,當learning rate減少為0達到最優值。最終可視化展示模塊啟動進程調用執行器來實時在線提供聊天服務,在語句輸入和輸出利用seq2seq的特點,直接將輸入seq轉換成vec作為已經訓練好的神經網絡,然后神經網絡會生成一個seq向量,通過查詢詞典的方式將生成的向量替換成中文句子。訓練模型部分代碼如下:
return tf.reduce_mean(loss_)
checkpoint =tf.train.Checkpoint(optimizer=optimi zer,encoder=encoder,decoder=decoder)
@#tf.function
def train_step(inp,targ,targ_lang,enc_hidden);
loss=0
互聯網時代人們對電子產品的依賴性越來越強,人與人交流的機會越來越少,很難達到理解與共情,負面情緒隨之而來。人們無法專門騰出時間去心理咨詢室進行咨詢,甚至有的人并沒有覺察到自己的心理狀態變化,所以無法及時得到心理疏導[6]。因此,心理咨詢對話系統的研究對于促進人們的心理健康具有深刻意義。隨著科技的不斷發展,心理咨詢師的輔助心理服務方式也越來越多,例如網上咨詢互動。人工智能的加入讓心理咨詢更加智能化,普及心理咨詢對話系統指日可待。
本文主要基于seq2seq模型對心理咨詢對話系統進行研究,結合心理咨詢語料庫,利用深度學習框架解決序列到序列的問題,提出對話系統為用戶提供心理咨詢服務,使用戶感覺更像是在和人(咨詢師)進行對話。近年來,國家特別重視國民的心理健康,因此,在實現心理咨詢對話功能的基礎之上做出一些判斷,判斷用戶也就是來訪者是否患有抑郁之類的癥狀,并且得出相應結論是日后研究的重點。心理咨詢對話系統暗示了未來交互代理實際上可能會被引入精神病學領域。