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

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

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

圖3 景點知識圖譜

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

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

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

圖6 智能問答系統界面圖
Flask主要代碼如下


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