论文部分内容阅读
自动问答系统结合了人工智能技术和自然语言处理技术,在正确理解用户语义的基础上,把答案精简的返回给用户,对自然语言正确的理解将成为炙手可热的研究方向之一。自动问答系统按照研究方向分为限定域和非限定域,而“软件测试”答疑系统作为自动问答系统限定域方向,在该方面的研究还存在很多空白,因此本论文针对软件测试课后的答疑进行研究,设计并实现了答疑系统。其主要研究内容如下:(1)构建软件测试课后答疑知识库。本论文收集数据的方式有两种,一种是使用免费且公开的爬虫软件爬取百度百科和论坛中的数据;另外一种是通过人工的方法收集,软件测试书籍和高校考试试卷中的数据,然后对收集的全部数据,使用Pandas进行清洗处理。(2)自然语言处理。在分词上,使用Jieba分词库,并结合自定义软件测试专业领域词典,以提高中文分词准确度;在去停用词上,使用哈工大去停用词表去掉对句子无意义的词;在关键词提取上,选择改进的TextRank算法实现关键词提取;在同义词处理上,使用哈工大同义词词林扩展。(3)语义相似度计算。在本软件测试答疑系统中,核心思想就是可以使用自然语言查询问题。本答疑系统先对自然语言处理,如对句子进行分词、去停用词、关键词提取、同义词处理等操作,然后使用Word2Vec中的CBOW模型训练词向量,构建词向量矩阵,最后用词向量矩阵作为卷积神经网络的输入层,在池化层为了提高特征使用max-pooling,最后输出的为相似度值,如果超过阈值,则倒序输出查询结果。(4)软件测试答疑系统的实现。系统使用Flask实现可视化,系统分两个角色:分别为教师和学生,教师端的功能有查询问题、查看全部知识库、热门问题、待解决的问题、我的回答和个人信息中心,学生端的功能有查询问题、查看全部知识库、添加未找到的问题、个人查询的问题集合和个人信息中心。