# QAsystem
第七届中软杯(智能问答系统)
非常感谢杨大帅比和张小可爱为项目所付出的所有心血,最后一次虽有遗憾却不后悔的中软杯
QAQ团队,和我们的logo
<img src="https://github.com/wangfin/QAsystem/raw/master/pic/QAlogo.png" style="zoom: 50%;"/>
bilibili视频地址:[视频网址](https://www.bilibili.com/video/av35481883)
视频里可以讲解的比较仔细,可以看看。实际上整个项目完成度还很欠缺,较多地方因时间原因未完成,或者只是仓促完成,导致有些部分逻辑很简单,所以效果也不是很好,各位也就当看个思路就好。
---
## 需求介绍
题目要求:[中软杯赛题网址](http://www.cnsoftbei.com/plus/view.php?aid=321)
简略概述要求:
1. 构建一个完整的QA系统
2. 整个系统由三部分构成:前端,后台,知识库
3. 前端:请设计一个程序,实现QA对话界面,该界面可以基于用户提问,自动连接后台、并从知识库寻找答案,并呈现给用户
4. 后台:请设计一个程序从文档中提取尽可能多且质量高的问答对(QA对)
5. 知识库:QA对存储管理的类似于数据库的东西
## 项目架构
### 功能架构划分
分为用户端和管理员端
1. 用户端:用户端为用户使用的页面。用户端提供了用户提问回答,热点问题,智能推荐,闲聊对话等功能。同时页面简洁美观,响应良好,为用户提供了良好的使用体验
2. 管理员端:管理员在后台管理系统的页面。管理员端提供了文档上传,运行网页解析算法和生成QA算法,可视化图表查看数据库内容和热点问题,用户提问情况等图表
### 技术架构划分
分为前端,后台,算法,知识库存储
1. 前端:使用Bootstrap前端框架加上各种前端模块,搭建了具有风格清新,简单朴实的页面,为用户提供了良好的观看体验
2. 后台:使用Django框架,Django作为一款性能优异,轻量级的Python的web框架,能很好的用于本系统的功能支持。作为本系统的后台,为整个系统对外提供流畅服务做到了保障。
3. 算法:算法部分分为网页解析算法和QA对生成算法
4. 知识库:知识库目前使用Elasticsearch搜索引擎的存储模块
### 使用的技术模块
1. 前端:大体上是使用的现成的网页进行了修改(毕竟UI设计不太行,感谢前端大佬),主要使用了Bootstarp,还有一些很多的前端插件,就不一一列举了。
2. 后台:后台主框架是基于Python的Django框架;里面的一些功能模块:比如用户聊天,使用的是图灵的聊天机器人API,可以将这个替换成seq2seq的对话生成(不过需要自己搭模型和训练);用户意图判断和情感判断使用LUIS(判断是聊天还是提问);问答系统中的自动补全,准确提问,相似问题是使用Elasticsearch进行查询后返回的;后台数据图表展示使用的是Elasticsearch配套的Kibana;后台的上传模块;后台的APScheduler定时管理模块(用于更新Elasticsearch)。
3. 算法:算法部分因为是设计的基于逻辑的QA对生成,所以没有用到Tensorflow,scikit-learn等深度学习、机器学习的工具,用到了Stanford的语言模块、哈工大的语言工具LTP,主要是使用的LTP了,里面的基于语义的分析,基于成分的分析效果还是挺好的,这个算法主要也是使用了LTP进行分析,然后就是使用很简单逻辑进行拼接生成QA,所以很制杖,效果一般。针对本赛题的数据集华为云帮助手册的效果还可以,但是使用其他数据集的话会大打折扣,主要是因为一是LTP对于简单的短句,逻辑较为简单句子分析的很清晰,但是长难句就不行了;另外也是设计的逻辑代码也很简单,考虑不全面,生成句子的逻辑不够好。
4. 知识库:知识库就是使用的Elasticsearch,使用K-V来保存QA,搜索速度较快。
图例(图中有部分没有介绍)
<img src="https://github.com/wangfin/QAsystem/raw/master/pic/技术架构.png" style="zoom:50%;" />
## 功能介绍
整个项目主要分成两个模块:
- 用户段的问答系统:问答对话,兴趣推荐,热点问题,闲聊对话
- 后台管理员端:文档录入,QA对生成,知识库管理,数据可视化
<img src="https://github.com/wangfin/QAsystem/raw/master/pic/系统功能.png" style="zoom: 67%;" />
详细功能介绍见视频
## 算法部分(QA对)
### QA对生成
这个QA对生成是本项目的核心算法,本项目采用的是简单的基于模板的传统方案(没有使用深度学习技术),目前的做法是通过一段陈述句,转换成疑问句。提问,总得有一段被提问的语句(通常都是陈述句),对这段、这句陈述句提问,就可以生成问句。
有两种方式的问句生成:
- 段落的问句生成,本项目对标题进行构造问句
- 对段落中的每一个单句进行划分,对单句进行问句生成(没有集成到项目中,因为问句生成的太多,需要筛选)
### 问句分类
疑问句的分类(根据论文中的设定)
问句种类 | 问句案例
---|---
人物类 | 谁可以操作云硬盘备份?
地点类 | 在哪里可以登录华为云服务器?
时间类 | 华为云服务器需要多久时间准备?
原因类 | 为什么使用密钥文件无法正常登录Linux弹性云服务器?
数量类 | 弹性云服务器有几种计费方式?
方式类 | 忘记密码如何处理?
定义类 | 什么是命名空间?
描述类 | 区块链服务通道为节点提供了什么?
列表类 | 备份裸金属服务器的操作步骤是哪些?
是否类 | 是否可以进一步提升图像去雾和低光照处理效果?
参考自论文:
<img src="https://github.com/wangfin/QAsystem/raw/master/pic/问句分类.png" style="zoom:50%;" />
<img src="https://github.com/wangfin/QAsystem/raw/master/pic/问句分类2.png" style="zoom:50%;" />
<img src="https://github.com/wangfin/QAsystem/raw/master/pic/问句分类3.png" style="zoom:50%;" />
### 问句泛化
问句泛化也称为问句复述,主要也是采用哈工大的关于问句复述的论文中(《中文复述问句生成技术研究》2017,曹雨)提到的方式:
1. 句式精简
2. 构建问句模板(复述模板)
3. 使用精简的问句模板去生成其他问句(匹配生成)
4. 然后进行候选问句评价, 选出好的句子
5. 将问句保存起来
但是本项目最后因为效果的原因(构建模板需要花费大量的时间与精力),没有将泛化模块加入整体的架构中,而是采用了最简单的疑问词替换的形式来对问句进行泛化。
## 系统流程
1. 管理员上传文档,网页(两种文件格式,目前本系统主要是解析以**华为云帮助手册的网页**,其他网页需要更改网页解析程序),上传这些文件到服务器端
2. 选择需要生成QA对的文件,调用QA对生成算法,生成QA对存入知识库中
3. 管理员可以前往知识库管理页面,查看所有的QA对,并可以进行增删改查的操作
4. 管理员也可以查看用户的各项信息
5. 用户可以在用户界面进行提问,以获取答案
## 运行流程
整个项目是一个Django的web项目,主要的各种逻辑部分与后台的view.py相连,通过后台调用的逻辑模块。运行的话,直接部署Django,然后使用Django运行整个项目,在浏览器里面输入localhost:xxxx/index.html(好像是这个,记不清了),然后就行了。
> 需要配置的模块:
1. Django
2. Elasticsearch(需要安装,并配置,初始化数据表)
3. Kibana(需要安装并配置)
4. APScheduler
5. LUIS(需要把配置写在view.py里面)
6. 图灵机器人(需要把配置写在view.py里面)
7.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
毕设&课程作业_Intelligent Q&A system(第七届中软杯,智能问答系统).zip (465个子文件)
思路2.0 285B
activate 2KB
activate.bat 987B
deactivate.bat 347B
calssifiterdata 0B
pyvenv.cfg 70B
ace.min.css 265KB
bootstrap.css 143KB
bootstrap.min.css 120KB
style.min.css 112KB
style.css 101KB
buttons.css 79KB
loaders.css 55KB
animate.min.css 46KB
ace-rtl.min.css 36KB
ace-skins.min.css 26KB
iconfont.css 23KB
font-awesome.min.css 22KB
font-awesome.css 22KB
bootstrap-editable.css 21KB
layer.css 14KB
fileinput(1).css 11KB
clndr.css 10KB
chat.css 10KB
owl.carousel.css 8KB
icon-font.min.css 7KB
normalize.css 7KB
ace-ie.min.css 7KB
flexslider.css 7KB
jq22-demo.css 6KB
bootstrap-table.min.css 5KB
layer.css 5KB
liststyle.css 5KB
common.css 4KB
star-rating.css 3KB
pygments.css 3KB
dialog1.css 3KB
star.css 3KB
graph.css 2KB
star-rating.min.css 2KB
fabochart.css 2KB
demo.css 968B
atlas.css 902B
reset.css 774B
bootstrapValidator.min.css 488B
application.css 162B
python36.dll 3.44MB
tk86t.dll 1.88MB
tcl86t.dll 1.59MB
sqlite3.dll 1.1MB
vcruntime140.dll 86KB
python3.dll 57KB
fontawesome-webfont.eot 37KB
glyphicons-halflings-regular.eot 20KB
python.exe 98KB
pythonw.exe 97KB
django-admin.exe 96KB
pip.exe 73KB
pip3.exe 73KB
easy_install.exe 73KB
easy_install-3.6.exe 73KB
pip3.6.exe 73KB
loading-0.gif 6KB
loading-sm.gif 3KB
loading-2.gif 2KB
loading.gif 847B
loading-1.gif 701B
closew.gif 70B
leftw.gif 68B
rightw.gif 67B
.gitattributes 66B
.gitignore 18B
(已生成)数据表管理_ 数据湖工厂_用户指南.html 576KB
数据表管理_ 数据湖工厂_用户指南.html 576KB
(已生成)数据连接管理_ 数据湖工厂_用户指南.html 564KB
开发作业_ 数据湖工厂_用户指南.html 560KB
开发SQL脚本_ 数据湖工厂_用户指南.html 551KB
作业监控_ 数据湖工厂_用户指南.html 548KB
资源管理_ 数据湖工厂_用户指南.html 538KB
(已生成)资源管理_ 数据湖工厂_用户指南.html 538KB
(已生成)新建脚本_ 数据湖工厂_用户指南.html 534KB
使用前必读_ 数据湖工厂_API参考.html 528KB
(已生成)使用前必读_ 数据湖工厂_API参考.html 528KB
(已生成)运维概览_ 数据湖工厂_用户指南.html 524KB
运维概览_ 数据湖工厂_用户指南.html 524KB
(已生成)实例监控_ 数据湖工厂_用户指南.html 523KB
实例监控_ 数据湖工厂_用户指南.html 523KB
环境准备_ 数据湖工厂_用户指南.html 523KB
什么是作业?_ 数据湖工厂_常见问题.html 522KB
(已生成)什么是作业?_ 数据湖工厂_常见问题.html 522KB
DLF的作业配额是否可以变更?_ 数据湖工厂_常见问题.html 522KB
DLF可以做什么?_ 数据湖工厂_常见问题.html 522KB
(已生成)什么是节点任务?_ 数据湖工厂_常见问题.html 521KB
什么是节点任务?_ 数据湖工厂_常见问题.html 521KB
support.huaweicloud.com_api-ais_zh-cn_topic_0071700237.html 171KB
support.huaweicloud.com_api-ais_zh-cn_topic_0071700235.html 161KB
(已生成)support.huaweicloud.com_ais_faq_zh-cn_topic_ais_faq1.html 161KB
support.huaweicloud.com_ais_faq_zh-cn_topic_0071378744.html 160KB
(已生成)support.huaweicloud.com_ais_faq_zh-cn_topic_ais_faq2.html 160KB
(已生成)support.huaweicloud.com_antiddos_faq_zh-cn_topic_0032171200.html 157KB
共 465 条
- 1
- 2
- 3
- 4
- 5
资源评论
学术菜鸟小晨
- 粉丝: 1w+
- 资源: 5221
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- win10玩游戏打开过场动画,提示找不到vids:cvid解压缩程序
- 基于HTML和JavaScript的小越小学网页设计源码
- 美萍会员管理系统标准版2021v1
- 基于Vue框架的uniapp前端设计源码
- 基于Vue的Java、JavaScript、HTML整合的家庭理财管理系统设计源码
- 美萍化妆品销售管理系统标准版2021v1
- 基于JavaScript的贝壳二手房/新房交互式命令行爬虫设计源码
- 基于Emacs Application Framework的Python与Vue/JavaScript双语言文件管理器设计源码
- 美萍固定资产管理系统标准版2021v1
- 基于Vue和Element-UI的电商管理系统服务端API设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功