Java實現的人機問答系統:QuestionAnsweringSystem

jopen 10年前發布 | 39K 次閱讀 QuestionAnsweringSystem

QuestionAnsweringSystem是一個Java實現的人機問答系統,能夠自動分析問題并給出候選答案。

QuestionAnsweringSystem 是一個Java實現的人機問答系統,能夠自動分析問題并給出候選答案。IBM人工智能計算機系統"沃森"(Watson)在2011年2月美國熱門的電視智力問答節目"危險邊緣"(Jeopardy!)中戰勝了兩位人類冠軍選手,QuestionAnsweringSystem就是IBM Watson的Java開源實現。

工作原理:

1、判斷問題類型(答案類型),當前使用模式匹配的方法,將來支持更多的方法,如樸素貝葉斯分類器。
2、提取問題關鍵詞。
3、利用問題關鍵詞搜索多種數據源,當前的數據源主要是人工標注的語料庫、谷歌、百度。
4、從搜索結果中根據問題類型(答案類型)提取候選答案。
5、結合問題以及搜索結果對候選答案進行打分。
6、返回得分最高的TopN項候選答案。

目前支持5種問題類型(答案類型):

1、人名 
    如:
    APDPlat的作者是誰?
    APDPlat的發起人是誰?
    誰死后布了七十二疑冢?
    習近平最愛的女人是誰?
2、地名
    如:
    “海的女兒”是哪個城市的城徽?
    世界上流經國家最多的河流是哪一條?
    世界上最長的河流是什么?
    漢城是哪個國家的首都?
3、機構團體名
    如:
    BMW是哪個汽車公司制造的?
    長城信用卡是哪家銀行發行的?
    美國歷史上第一所高等學府是哪個學校?
    前身是紅色中華通訊社的是什么?
4、數字
    如:
    全球表面積有多少平方公里?
    撒哈拉有多少平方公里?
    北京大學占地多少平方米?
    撒哈拉有多少平方公里?
5、時間
    如:
    哪一年第一次提出“大躍進”的口號?
    大慶油田是哪一年發現的?
    澳門是在哪一年回歸祖國懷抱的?
    鄧小平在什么時候進行南巡講話?

API接口:

調用地址:
    http://localhost:8080/QuestionAnsweringSystem/api/ask?n=1&q=APDPlat的作者是誰?
參數:
    n表示需要返回的答案的個數
    q表示問題
編碼:
    服務端和客戶端均使用UTF-8編碼
    服務端需要修改tomcat配置文件conf/server.xml,在相應的Connector中加入配置URIEncoding="UTF-8"
返回json:
    [
        {
            "answer": "楊尚川",
            "score": 1
        }
    ]

使用說明:

1、初始化MySQL數據庫:

在MySQL命令行中執行QuestionAnsweringSystem\src\main\resources\mysql\questionanswer.sql文件中的腳本   
主機:127.0.0.1
端口:3306
數據庫:questionanswer
用戶名:root
密碼:root

2、構建war文件并部署到tomcat:

cd QuestionAnsweringSystem   
mvn install   
cp target\QuestionAnsweringSystem-1.0.war apache-tomcat-7.0.37/webapps/QuestionAnsweringSystem-1.0.war   
啟動tomcat

3、打開瀏覽器訪問:

http://localhost:8080/QuestionAnsweringSystem-1.0/

可部署war包下載


項目主頁:
http://www.baiduhome.net/lib/view/home/1407306875426

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!