<commit_before>QuestionAnsweringSystemһJavaʵֵ˻ʴϵͳܹԶⲢѡ𰸡IBM˹ܼϵͳ"ɭ"Watson20112ŵĵʴĿ"ΣձԵ"Jeopardyսʤλھѡ֣QuestionAnsweringSystemIBM WatsonJavaԴʵ֡

ԭ

    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
	
2warļ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://pan.baidu.com/s/1hq9pekc)<commit_msg>编码调整为UTF-8<commit_after>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
    密码：<PASSWORD>
	
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://pan.baidu.com/s/1hq9pekc)
{'fraction_non_alphanumeric': 0.10590778097982709, 'fraction_numerical': 0.03926512968299712, 'mean_word_length': 3.3663522012578615, 'pattern_counts': {'":': 4, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2903765', 'n_tokens_mistral': 2079, 'n_tokens_neox': 2121, 'n_words': 146}