首都师范大学信息工程学院
2015 年 11 月 8 日
算法相似度说明文档
文件状态:文件标识:
[√] 草稿当前版本:第一版
[ ] 正式发布作者:103 实验室[ ] 正在修改完成日期:2015 年 11 月 8 日
1
首都师范大学信息工程学院
2015 年 11 月 8 日
目录
1 引言 (3)
1.1 编写目的 (3)
1.2 背景 (3)
1.3 参考资料 (3)
2 任务概述 (3)
2.1 建设目标 (3)
2.2 用户的特点 (3)
2.3 实施与约束 (3)
2.3.1 硬件资源 (3)
2.3.2 用户情况 (4)
2.3.3 系统体系架构 (4)
3 问答系统整体框架(相似度算法实现) (5)
2
首都师范大学 信息工程学院
2015 年 11 月 8 日
1 引言
1.1 编写目的
本文档的目的是根据自适应学习系统的需求,详细介绍了系统所涉及的算法 和程序
1.2 背景
本需求说明由 103 实验负责编写。
1.3 参考资料
《关于 2013 年度首都师范大学本科生科学研究与创业行动项目申请有关事项通 通知》
2 任务概述
2.1 建设目标
本期工程将重点实现问句和单词的查询来实现自适应学习系统的建设。
2.2 用户的特点
使用者包括:教师、学生、访客。他们平时通过网站或者 ipad 登录使用。
2.3 实施与约束
2.3.1 硬件资源
服务器端:
● 操作系统:Windows Server 2008
● WEB 服务器:Apache Tomcat7、
●
数据库:本体数据库、MySQL5.1
3
2015 年 11 月 8 日
客户端:
● 操作系统:Windows 98/2000/XP /vista /7
● 浏览器:谷歌的 Chrome 浏览器(最佳适配)、IE 浏览器, 火狐浏览器, 苹果公司的 Safari 浏览器
开发工具: 前台:ios 、android
● WEB 编程语言:Java 、SQL 、JavaScript
● 开发环境:MyEclipse 10,AdobeDreamweaverCS5 , AdobePhotoshopCS5
● 开发工具包:JDKVersion 1.6 及以上
2.3.2 网络现状
使用信息工程学院的内部网络
2.3.3 用户情况
使用者包括:教师、学生、访客
3 业务需求
3.1 问答系统整体框架(相似度算法实现)
通过传入一个问句,提取问句的疑问词,在本题库中进行查询,将查询结果
保存在 Map 集合,然后将问句与集合中的问句进行对比计算相似度。 首先将问
句与所要对比的问句进行单词还原,然后采用问句模板,寻找有用的词性,然后
将问句和所要对比的句子中有用的词合并到一个容器,通过相似度算法计算出每
对单词的相似度,最后通过算法算出整个句子的相似度,返回相似度最高句子的
所有属性。
4
2015 年 11 月 8 日
代码实现:(按照调用顺序)
问句单词查询需要的接口:1、
截取一个字符串的首字符根
public String intercept(String s); 2、据
疑问词进行查询语句并且保存
public Map
将输入的句子进行词性还原
Public abstract String[] Sentence_huanyuan(String str1,StanfordCoreNLP pipeline);
4、将两组互异单词合并为一个字符串
public abstract ArrayList Word_Combine(String[] str1,String str2[]); 5、将两
组单词进行合并为一个数组
Public ArrayList Word_property_Combine(String[] word_prop1,String[]
word_prop2,String[] str1, String[] str2); 6、将英文句子进行词性标注,并返回词性数
public abstract String[] Speech_tagging(String str,MaxentTagger tagger);
7、计算单词相似度
public abstract double[] word_similarity(ArrayList word_prop3, ArrayList str3, String[] word_prop,String[] str);
8、计算句子相似度
public abstract double Sentence_similarity(double s_1[],double s_2[]); 10、根据值来查找键。即句子的 id
public Object keyString(Map map,Object o);
11、根据 id 查询句子的所有属性
public List
public IWord findWordProperty(String str); 13、该方法用于通过传入一个问句,提取问句的疑问词,在本题库中进行查询,将查询结果保存在Map集合,然后将问句与集合中的问句进行对比计算相似度。首先将问句与所要对比的问句进行单词还原,然后采用问句模板,寻找有用的词性,然后将问句和所要对比的句子中有用的词合并到一个容器,通过相似度算法计算出每对单词的相似度,最后通过算法算出整个句子的相似度,返回相似度最高句子的所有属性。
public List
5