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包下載