張穎 沈辰楠 杜秀蘭 閻曉強(qiáng)
(中國(guó)市政工程華北設(shè)計(jì)研究總院有限公司 天津市 300074)
近年來(lái),隨著企業(yè)管理水平不斷提升,員工對(duì)企業(yè)各規(guī)章制度和辦事流程不了解會(huì)使工作寸步難行。通過(guò)研究基于知識(shí)庫(kù)的智能問(wèn)答相關(guān)技術(shù),將企業(yè)的各個(gè)環(huán)節(jié)集成起來(lái),共享信息和資源,同時(shí)利用現(xiàn)代的技術(shù)手段不斷提高生產(chǎn)效能和質(zhì)量,增強(qiáng)企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力。
智能問(wèn)答系統(tǒng)[1]的概念最早提出于20 世紀(jì)60年代,并在此后不斷發(fā)展。國(guó)外在智能問(wèn)答系統(tǒng)領(lǐng)域取得了一系列研究成果,而國(guó)內(nèi)問(wèn)答系統(tǒng)的研究起步較晚,1970年后才開(kāi)始基于漢語(yǔ)的中文問(wèn)答系統(tǒng)的研究。近年來(lái),智能問(wèn)答系統(tǒng)取得了很大的發(fā)展和進(jìn)步,已經(jīng)有很多智能問(wèn)答系統(tǒng)產(chǎn)品問(wèn)世,然而這些領(lǐng)域都各自相對(duì)獨(dú)立并且采用了不同的方法,且這些方法都有著各自的瓶頸,所以如何根據(jù)企業(yè)自身情況尋找合適的理論和算法構(gòu)建出符合企業(yè)實(shí)際需求的智能問(wèn)答系統(tǒng)就變得尤為重要。企業(yè)智能問(wèn)答系統(tǒng)的目標(biāo)是提供一個(gè)及時(shí)解決員工各種需求問(wèn)題的平臺(tái),員工在日常工作中一旦不了解辦事流程或需要查詢?nèi)魏钨Y料,可以通過(guò)使用該問(wèn)答系統(tǒng)及時(shí)得到解答。同時(shí)系統(tǒng)還需提供一個(gè)管理平臺(tái)供運(yùn)營(yíng)和管理人員使用,負(fù)責(zé)系統(tǒng)的日常維護(hù)和問(wèn)題管理。本系統(tǒng)應(yīng)具有較高的問(wèn)題解決率和回答準(zhǔn)確率,在智能問(wèn)答部分,員工以自然語(yǔ)言的方式輸入問(wèn)題時(shí),系統(tǒng)應(yīng)通過(guò)相關(guān)自然語(yǔ)言技術(shù)最大程度匹配到最佳答案,并為用戶推薦相關(guān)問(wèn)題。
企業(yè)智能問(wèn)答系統(tǒng)的目標(biāo)是提供一個(gè)及時(shí)解決員工各種需求問(wèn)題的平臺(tái),員工在日常工作中一旦不了解辦事流程或需要查詢?nèi)魏钨Y料,可以通過(guò)使用該問(wèn)答系統(tǒng)及時(shí)得到解答。同時(shí)系統(tǒng)還需提供一個(gè)管理平臺(tái)供運(yùn)營(yíng)和管理人員使用,負(fù)責(zé)系統(tǒng)的日常維護(hù)和問(wèn)題管理。本系統(tǒng)應(yīng)具有較高的問(wèn)題解決率和回答準(zhǔn)確率,在智能問(wèn)答部分,員工以自然語(yǔ)言的方式輸入問(wèn)題時(shí),系統(tǒng)應(yīng)通過(guò)相關(guān)自然語(yǔ)言技術(shù)最大程度匹配到最佳答案,并為用戶推薦相關(guān)問(wèn)題。根據(jù)以上需求,智能問(wèn)答系統(tǒng)整體設(shè)計(jì)架構(gòu)如圖1 所示,該架構(gòu)需解決的關(guān)鍵問(wèn)題有如下三個(gè),企業(yè)知識(shí)庫(kù)的構(gòu)建、自然語(yǔ)言處理以及語(yǔ)義相似度匹配算法選取。
本平臺(tái)中知識(shí)庫(kù)中的知識(shí)來(lái)源分為兩類:一類是通過(guò)各種途徑收集的日常工作中經(jīng)常遇到的問(wèn)題以及解決方案,這些問(wèn)題和解決方案都是經(jīng)過(guò)專業(yè)人員審核后歸入知識(shí)庫(kù);另一類是日常工作中相關(guān)人員實(shí)時(shí)發(fā)布的消息、制度、新聞、附件、通知等,實(shí)時(shí)發(fā)布后即刻歸入知識(shí)庫(kù)。根據(jù)工作要求,這兩類知識(shí)分別存儲(chǔ)于不同的服務(wù)器,通過(guò)數(shù)據(jù)庫(kù)連通形成了跨服務(wù)器的方式將不同類型的知識(shí)以及不同出處的知識(shí)匯集在一起,形成多領(lǐng)域、多平臺(tái)的知識(shí)庫(kù)。
為了解決知識(shí)庫(kù)內(nèi)容有限,不能包含工作中所有的問(wèn)題,本平臺(tái)設(shè)計(jì)了一個(gè)開(kāi)放性的人機(jī)對(duì)話窗口,使用者或者管理員可以隨時(shí)將遇到的問(wèn)題輸入到平臺(tái)中,其他管理員(或?qū)<遥┛梢詫?duì)提出的新問(wèn)題進(jìn)行解答和補(bǔ)充。由此可以增強(qiáng)本平臺(tái)的適應(yīng)能力和學(xué)習(xí)能力,隨著時(shí)間的推移,知識(shí)庫(kù)中的知識(shí)會(huì)越來(lái)越豐富,不僅可以提高平臺(tái)解答問(wèn)題的能力,對(duì)于以后數(shù)據(jù)的使用提供更多的可能性。
中文分詞[2]是中文文本處理的一個(gè)基礎(chǔ)步驟,也是人-機(jī)自然語(yǔ)言交互的基礎(chǔ)模塊,在進(jìn)行自然語(yǔ)言處理時(shí),通常需要先進(jìn)行分詞,Jieba 分詞是現(xiàn)在非常流行且開(kāi)源的分詞器。Jieba 分詞算法首先將停用詞去掉,在通過(guò)基于前綴詞典實(shí)現(xiàn)高效的詞圖掃描,生成句子中漢字所有可能生成詞情況所構(gòu)成的有向無(wú)環(huán)圖(DAG), 再采用了動(dòng)態(tài)規(guī)劃查找最大概率路徑,找出基于詞頻的最大切分組合。本平臺(tái)所采用的Jieba 分詞原理如下:
2.3.1 去掉通用詞
Jieba 分詞自帶的h_stop_words.txt 中包含常用且無(wú)意義的詞,例如的、地、在。要、我以及一些特殊符號(hào)、數(shù)字等,用戶可以可根據(jù)自己的需求將一些常用寫無(wú)意義的詞放置到h_stop_words.txt中,即可在程序運(yùn)行時(shí)將其去掉。
2.3.2 前綴詞典的構(gòu)造
Jieba 分詞自帶dict.txt 詞典,這個(gè)詞典中包括詞條、詞條出現(xiàn)的次數(shù)和詞性。當(dāng)程序運(yùn)行的時(shí)候,它會(huì)加載統(tǒng)計(jì)詞典生成前綴詞典,它是在統(tǒng)計(jì)詞典中出現(xiàn)的每一個(gè)詞的每一個(gè)前綴提取出來(lái),統(tǒng)計(jì)詞頻,如果某個(gè)前綴詞在統(tǒng)計(jì)詞典中沒(méi)有出現(xiàn),詞頻統(tǒng)計(jì)為0,如果這個(gè)前綴詞已經(jīng)統(tǒng)計(jì)過(guò),則不再重復(fù)。
2.3.3 有向無(wú)環(huán)圖(DAG)
以每個(gè)字所在的位置為鍵值key,相應(yīng)劃分的末尾位置構(gòu)成的列表為value,基于以上構(gòu)建的鍵值對(duì),可以構(gòu)成這個(gè)文本對(duì)應(yīng)的有向無(wú)環(huán)圖,并在有向無(wú)環(huán)圖中找出概率最大的路徑,即每一個(gè)詞出現(xiàn)的概率等于該詞在前綴里的詞頻除以所有詞的詞頻之和。如果詞頻為0 或是不存在,當(dāng)做詞頻為1 來(lái)處理,概率最大的詞為最終的分詞結(jié)果。
圖1:智能問(wèn)答系統(tǒng)整體架構(gòu)
本平臺(tái)采用的匹配算法是向量空間余弦相似度[3](Cosine Similarity)算法。向量空間余弦相似度計(jì)算是指將兩個(gè)不同的文本或語(yǔ)句映射到向量空間中,形成文本中文字和向量數(shù)據(jù)的映射關(guān)系,通過(guò)計(jì)算不同向量之間的差異大小來(lái)計(jì)算文本的相似度。具體方法如下:
(1)分詞
例如:
句子A:我今天要去電影院看電影;
句子B:我今天要去看電影;
通過(guò)上一節(jié)講解的Jieba 分詞方法,對(duì)句子A 和B 進(jìn)行停用詞刪選及分詞,結(jié)果如下:
句子A:今天 去 電影院 看 電影
句子B:今天 去 看 電影
(2)列出所有詞
今天 去 電影院 看 電影
(3)計(jì)算詞頻
句子A:今天1 去1 電影院1 看1 電影1
句子B:今天1 去1 電影院0 看1 電影1
(4)寫出詞頻向量
句子A:[1 1 1 1 1]
句子B:[1 1 0 1 1]
(5)計(jì)算相似度
計(jì)算兩個(gè)向量的相似度是通過(guò)計(jì)算兩個(gè)向量的余弦值進(jìn)行判斷。假設(shè)向量a(x1,y1)和向量b(x2,y2),則向量a 和向量b 的夾角余弦值計(jì)算公式為:
在根據(jù)相似度的值進(jìn)行排序,并設(shè)定閾值,將大于閾值的10條信息顯示在界面上。
通過(guò)軟件工程標(biāo)準(zhǔn)開(kāi)發(fā)方案,采用基于MVC 設(shè)計(jì)模式的Struts2 Web 應(yīng)用框架,以WebWork 為核心,采用攔截器的機(jī)制來(lái)處理用戶的請(qǐng)求。運(yùn)用Tomcat 8.5 運(yùn)行環(huán)境、基于MyEclipse 8.5 開(kāi)發(fā)環(huán)境進(jìn)行的系統(tǒng)開(kāi)發(fā),前端采用HTML5、JSP、JavaScript、jQuery 等開(kāi)發(fā)語(yǔ)言,后端采用JAVA 語(yǔ)言進(jìn)行開(kāi)發(fā),并將所有的數(shù)據(jù)存儲(chǔ)于SQL Server2008 數(shù)據(jù)庫(kù)中。
圖2:系統(tǒng)首頁(yè)圖
企業(yè)智能問(wèn)答系統(tǒng)主要包括主界面、搜索查詢界面、信息分類界面以及其他附屬界面。
系統(tǒng)首頁(yè)為用戶進(jìn)入系統(tǒng)后所看到的頁(yè)面,主要包括搜索查詢以及聊天窗口、知識(shí)分類相關(guān)鏈接、熱搜問(wèn)題鏈接、常用網(wǎng)上服務(wù)鏈接等,系統(tǒng)首頁(yè)如圖2 所示。
用戶通過(guò)左側(cè)搜索查詢界面將想要提問(wèn)的問(wèn)題進(jìn)行輸入,并將搜索出的相關(guān)信息顯示在此頁(yè)面,達(dá)到及時(shí)搜索及時(shí)顯示的目的,同時(shí)模擬了人-機(jī)的聊天模式。搜索查詢頁(yè)面主要包括提問(wèn)窗口以及聊天界面兩部分。
右側(cè)信息分類部分包括了各個(gè)部門的門戶網(wǎng)站以及各個(gè)部門發(fā)布的相關(guān)信息,用戶可在此部分快速瀏覽到各個(gè)部門發(fā)布的相關(guān)信息,幫助用戶更加快速的了解各部門發(fā)布的制度、規(guī)范等。知識(shí)信息分類包括各部門門戶網(wǎng)站平臺(tái)入口鏈接以及知識(shí)信息匯總界面兩部分
為方便用戶進(jìn)行權(quán)限申請(qǐng)等其他操作,本平臺(tái)將一些工作中常用的表單連接放在此處。用戶可通過(guò)右側(cè)常用鏈接進(jìn)行新問(wèn)題的提問(wèn)以及公司內(nèi)部網(wǎng)上權(quán)限的申請(qǐng)。
(1)自然語(yǔ)言處理與應(yīng)用領(lǐng)域相結(jié)合。該項(xiàng)目應(yīng)用于市政設(shè)計(jì)企業(yè),知識(shí)庫(kù)內(nèi)容不僅涵蓋了企業(yè)日常管理中關(guān)于財(cái)務(wù)、人事、物資、質(zhì)量、經(jīng)營(yíng)、檔案等相關(guān)內(nèi)容,還包含了生產(chǎn)設(shè)計(jì)中關(guān)于給水排水、熱力、暖通、海綿城市等市政行業(yè)專業(yè)領(lǐng)域內(nèi)容,具有鮮明行業(yè)特色,將行業(yè)特色詞匯加入自然語(yǔ)言處理過(guò)程中,大大提高系統(tǒng)的實(shí)用性。
(2)平臺(tái)知識(shí)庫(kù)構(gòu)建與云概念相結(jié)合。該系統(tǒng)并非獨(dú)立平臺(tái),是依托于企業(yè)已有的管理平臺(tái)而使用,智能管控范圍不僅限于平臺(tái)本地知識(shí)庫(kù),可跨服務(wù)器跨平臺(tái)獲取企業(yè)所積累的相關(guān)知識(shí)信息,豐富全面,避免重復(fù)錄入,同時(shí)可在平臺(tái)間跳轉(zhuǎn)獲取答案,靈活直觀。
隨著企業(yè)管理水平的不斷提升,員工對(duì)企業(yè)各規(guī)章制度和辦事流程不了解會(huì)使工作寸步難行,本文通過(guò)Javaweb 技術(shù)、Jieba 分詞方法和余弦相似度方法搭建智能問(wèn)答系統(tǒng),將企業(yè)的各種規(guī)章制度、辦事流程、新聞、相關(guān)專業(yè)知識(shí)等信息集成在一個(gè)系統(tǒng)中,并通過(guò)數(shù)據(jù)庫(kù)連通的方法將不同服務(wù)器中的數(shù)據(jù)進(jìn)行整合,形成多領(lǐng)域、多平臺(tái)的知識(shí)庫(kù)。并打造智能人-機(jī)界面,用戶在前端界面輸入自然語(yǔ)言,智能問(wèn)答系統(tǒng)可通過(guò)界面中的智能助手同樣以自然語(yǔ)言的形式將匹配度高的答案顯示在界面中,并提供多種常用鏈接入口,提高用戶的辦公效率,加強(qiáng)企業(yè)的信息化發(fā)展,降低管理者的工作負(fù)擔(dān)。