python知识点智能问答_基于知识图谱的智能问答机器人
研究背景及意義
智能問答是計算機與人類以自然語言的形式進行交流的一種方式,是人工智能研究的一個分支。
知識圖譜本質上是一種語義網絡,其結點代表實體(entity)或者概念(concept),邊代表實體/概念之間的各種語義關系。知識圖譜的出現是信息技術發展、時代發展的必然結果。語義的本質是關聯。只有基于語義的數據互聯才能發揮數據集成的非線性效應,才能獲取大數據的特有語義。
近年來,基于知識圖譜的問答系統則成為學術界和工業界的研究和應用熱點方向。相較于純文本,知識圖譜在問答系統中具有以下優勢。這些優勢都促使本文使用知識圖譜來作為問答系統的知識來源。
-數據關聯度:語義理解智能化程度問題語義理解程度是問答系統的核心指標。在知識圖譜中,所有知識點被具有語義信息的邊所關聯。從問句到知識圖譜的知識點的匹配關聯過程中,可以用到大量其關聯結點的關聯信息。這種關聯信息無疑更為智能化的語義理解提供了條件。
-數據精度:回答準確率知識圖譜的知識來自專業人士標注,或者專業數據庫的格式化抓取,這保證了數據的高準確率。
-數據結構化:檢索效率知識圖譜的結構化組織形式,為計算機的快速知識檢索提供了格式支持。
本系統實現目標和內容
本文針對實驗室這一關系領域構建知識圖譜,基于Neo4j(非關系型數據庫)建立學生、老師、項目三個實體的關系網絡,使用Python AIML搭建智能問答機器人開發環境,將二者集成,通過接入微信可視化。
最終實現的主要功能是:通過微信向個人(或公眾號)賬號發送人物、關系查詢信息,機器人能夠自動查詢后回答。
系統設計框圖
知識圖譜設計
Neo4j 是一個無框架數據庫,它將數據作為頂點和邊存儲,適合知識圖譜的存儲結構。它存儲和使用的數據自始至終都是使用原生的圖結構數據進行處理的,不像有些圖數據庫,只是在計算處理時使用了圖結構數據,而在存儲時還將數據保存在關系型數據庫中。并且它性能高;存儲讀寫速度快;穩定性好;作為較早的一批圖形數據庫之一,文檔和各種技術博客較多。
Neo4j 的查詢語言 Cypher 是一種對圖形聲明查詢的語言,使用圖形模式匹配作為主要的機制來處理圖形數據選擇。Neo4j 提供Python的基本操作API 接口,方便融合到整個系統當中。
抽取的實體:學生、老師、項目
學生與老師之間存在“師生”關系;學生與項目存在“負責人”、“成員”等關系;老師與項目存在“負責人”、“成員”等關系。
知識存儲結構
智能問答機器人
利用Python AIML 人工智能標記語言建立機器人問答語料庫。
語料庫建立
微信接入可視化
微信團隊給開發者提供了一套標準的接口,為開發者的開發工作提供了很大的便利,我們只需要學習如何通過開放接口獲取用戶查詢的消息,以及如何發送給用戶消息這兩個部分。本系統正是利用微信公眾平臺開發的這些優勢,只專注于智能問答系統的實現過程,大大減少了網絡通信和交互界面設計的工作量,因此選擇它作為問答這一互動過程的交流渠道。
微信開發機制
實現效果圖
后記
由于數據可達性,選擇的是實驗室的知識圖譜,還可以擴展到任一領域,第一次寫作,做得不好希望大家提出意見,源碼見個人github
博客地址:https://veronica1997.github.io/
總結
以上是生活随笔為你收集整理的python知识点智能问答_基于知识图谱的智能问答机器人的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python开发的系统有哪些_Pytho
- 下一篇: Linux集成显卡驱动(linux集成)