杜春
(樂山師范學院電子信息與人工智能學院,四川樂山 614000)
隨著人工智能技術的快速發(fā)展,將人工智能技術運用到現(xiàn)實場景中,從而提高社會的生產(chǎn)生活效率,已經(jīng)成為一個趨勢。智能問答是人工智能技術中自然語言處理方向應用于具體場景的熱門研究方向。通過智能問答系統(tǒng)能實現(xiàn)用戶輸入想要詢問的問題,系統(tǒng)精確返回答案。
伴隨著人民生活水平的提高,越來越多的人熱衷于去外地旅游,而獲取目標景點的信息顯得十分重要。樂山作為擁有樂山大佛、峨眉山等風景名勝的旅游城市,旅游業(yè)是樂山經(jīng)濟的重要產(chǎn)業(yè)之一。為了給來樂山旅游的游客提供準確及時的景點信息,本文開發(fā)了一款旅游智能問答系統(tǒng)。該系統(tǒng)是基于知識圖譜、自然語言處理及深度學習等技術實現(xiàn)的。
隨著自然語言處理技術的快速發(fā)展,智能問答已經(jīng)成為一個人工智能領域的研究熱點。智能問答的實現(xiàn)涉及用戶問句意圖識別,因此需要采用深度學習技術中的短文本分類模型來實現(xiàn)對輸入問句的意圖分類。智能問答按用途分為任務型、問答型、閑聊型,按實現(xiàn)的方式分為基于多輪對話式、基于生成式和基于知識圖譜的方式。本文是旅游領域相關的智能問答系統(tǒng),適合采用基于知識圖譜的方式來實現(xiàn)。目前,基于知識圖譜的智能問答已經(jīng)有了很多研究成果。例如,洪海藍等人以中藥知識圖譜為知識庫,構建了海洋中藥智能問答系統(tǒng)(MMKGQA)[1]。曾攀等人通過構建玉米病蟲害知識圖譜,實現(xiàn)了一個玉米病蟲害智能問答系統(tǒng)[2]。張彩麗等人為促進農(nóng)作物科學施肥管理與土壤肥力研究領域海量數(shù)據(jù)在農(nóng)業(yè)生產(chǎn)中的利用,構建了對應的知識圖譜,實現(xiàn)了一個針對安徽省的農(nóng)作物科學施肥的智能問答系統(tǒng)[3]。華斌等人提出了基于語言理解的政策智能問答方法[4]。劉爽等人構建了基于中華民族文化知識圖譜的智能問答系統(tǒng)[5]。饒竹一等人實現(xiàn)了基于知識圖譜的智能客服系統(tǒng),并應用于深圳供電局掌上營業(yè)廳[6]。
基于知識圖譜的樂山旅游智能問答系統(tǒng)的實現(xiàn)主要包含了數(shù)據(jù)采集、生成旅游知識圖譜、構建用戶意圖識別模型、搭建Web系統(tǒng)等模塊,如圖1所示。

圖1 構建智能問答系統(tǒng)所需要的技術模塊
本系統(tǒng)中知識圖譜的數(shù)據(jù)來源于“去哪兒網(wǎng)”“百度百科”等權威網(wǎng)站,保證了數(shù)據(jù)的準確性及實時性。Python 中為爬取網(wǎng)頁數(shù)據(jù),提供了一些API,通過這些API 能很方便地進行網(wǎng)頁數(shù)據(jù)的收集。Python 中的Requests 模塊是一個用于網(wǎng)絡請求的模塊,主要用來模擬瀏覽器發(fā)出請求。當服務器返回數(shù)據(jù)頁面后,通過BeautifulSoup 來對頁面進行解析,獲取到頁面中的景點信息等數(shù)據(jù)。將采集到的數(shù)據(jù)進行整理后,存儲到CSV文件中,如圖2所示,圖中僅顯示了部分數(shù)據(jù)。

圖2 采集到的景點數(shù)據(jù)
根據(jù)上一步用爬蟲技術采集到的數(shù)據(jù),將這些數(shù)據(jù)導入Neo4j 圖數(shù)據(jù)庫中進行存儲,生成的知識圖譜如圖3所示。Neo4j是一個高性能的,NOSQL圖形數(shù)據(jù)庫,它將結構化數(shù)據(jù)存儲在網(wǎng)絡上而不是表中。它是一個嵌入式的、基于磁盤的、具備完全的事務特性的Java 持久化引擎。知識圖譜是由多個節(jié)點與節(jié)點之間關系以及節(jié)點具有的屬性構成。從生成的景點知識圖譜中可以看到每一個城市用一個節(jié)點來表示,同時每一個城市又包含了該城市擁有的景點,這些景點也是用節(jié)點來表示,同時景點節(jié)點還具有“地址、景點簡介、景點英文名、景點名、官網(wǎng)、開放時間、聯(lián)系電話、最適合瀏覽的季節(jié)、景點星級、建議瀏覽時長、交通出行”等屬性,如圖4所示。

圖3 景點知識圖譜

圖4 峨眉山景點節(jié)點的屬性
當用戶在前端界面輸入問題后,需要對該問題進行分類,以明確用戶到底想問的是什么方面的問題。為了識別用戶問句的意圖,首先根據(jù)旅游景點相關的問題,制作了20 個問題模板,分別對應不同種類的問題。接著,編寫程序構建FastText用戶問句意圖分類模型。FastText是Facebook于2016年開源的一個詞向量計算和文本分類工具,它的優(yōu)點也非常明顯,在文本分類任務中,F(xiàn)astText(淺層網(wǎng)絡)往往能取得和深度網(wǎng)絡相媲美的精度,卻在訓練時間上比深度網(wǎng)絡快許多數(shù)量級。因此使用FastText模型在不損失分類精度的同時還具有模型訓練時間快,響應時間快等特點,非常適用于工程應用中。FastText模型的訓練要求數(shù)據(jù)集格式必須為“詞1 詞2...__label__1”的形式,如圖5所示,僅展示了部分數(shù)據(jù)集。

圖5 訓練的數(shù)據(jù)集
以下是使用fastText 模型進行問句意圖分類的核心代碼:

Flask 是Python 提供的輕量級Web 框架,使用它能很方便地實現(xiàn)Web 系統(tǒng)。本智能問答系統(tǒng)的前端界面采用了Bootstrap 前端框架來實現(xiàn)。Bootstrap 是一款開源的前端開發(fā)框架,能極大地簡化前端界面開發(fā)流程,提高開發(fā)人員的開發(fā)效率。界面主要分為聊天內(nèi)容顯示區(qū)域及問題輸入框構成。用戶輸入要詢問的旅游相關問題后,點擊“發(fā)送”按鈕,將問句傳遞到后臺,對問句進行中文分詞、去停用詞等預處理,接著對預處理后的問句進行命名實體識別,識別出城市縣區(qū)、景點等關鍵詞,再將預處理后的問句輸入Fast-Text 問句意圖分類模型中,得到用戶的意圖,經(jīng)過以上處理后,查詢Neo4j圖數(shù)據(jù)庫得到精確答案,并返回到聊天界面中,如圖6所示。

圖6 智能問答系統(tǒng)界面圖
Flask主要代碼如下


本文通過采集數(shù)據(jù)、數(shù)據(jù)預處理、構建知識圖譜、用戶問句意圖分類、搭建Flask Web系統(tǒng),實現(xiàn)了一個樂山旅游景點的智能問答系統(tǒng)。該系統(tǒng)經(jīng)測試,運行正常,符合工程應用中對系統(tǒng)的響應時間要求。本系統(tǒng)中采用了FastText模型構建了一個用于用戶問句意圖分類的模型,精確度較高,但本系統(tǒng)中的問句模板的質量仍然決定了用戶問句意圖識別的準確率,因此后續(xù)還可進一步完善問句模板以及擴充景點知識圖譜,保證數(shù)據(jù)的完整性和準確性。
本文受到了互聯(lián)網(wǎng)自然語言智能處理四川省高等學校重點實驗室開放基金項目(項目編號:INLP202205)資助,特此感謝。