# shenji_qa **Repository Path**: eshijia/shenji_qa ## Basic Information - **Project Name**: shenji_qa - **Description**: 利用深度神经网络训练答案选择模型,并将此模型应用于实际的问答系统中! - **Primary Language**: Python - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2016-06-17 - **Last Updated**: 2021-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #基于深度学习的答案选择 ## 如何使用(应用训练好的模型进行答案选择/排序) 当前代码基于一个非官方版本的Keras,所以该代码的运行环境建议使用virtualenv创建一个虚拟环境后,安装相关的依赖,具体操作如下。(Windows用户建议使用Anaconda发行版) ### 环境准备 ``` mkdir virtual_env cd virtual_env virtualenv keras_new #在virtual_env目录下创建一个新的虚拟环境 source keras_new/bin/activate #激活该虚拟环境 #注意!!如果是Windows用户,就不是使用source,而是直接运行 keras_new\Scripts\activate pip install keras #安装官方版本的keras,以将所需的其它依赖安装 pip uninstall keras cd .. git clone https://github.com/eshijia/keras cd keras python setup.py install #安装自定义的keras pip install h5py #安装该模板,以用来载入或保存训练的模型 ``` 在激活虚拟环境后,所有的pip安装命令(不要加sudo)都会将模块安装到虚拟环境中,不会影响系统自身的Python环境。若要退出虚拟环境可以在激活状态下执行 `deactivate`。 ### 执行答案选择 对于模型的应用,只需关注`shenji_qa_predict.py`,该程序可接受3个以上的参数(至少一个问题和两个候选答案),第一个参数(argv[1])是问题字符串(已分词,以tab分隔),第二个以及后续参数(argv[2:])是待选择的答案(已分词,以tab分隔)。程序会返回问题及将候选答案依据学习的模型重排序后,最与问题相符的前两个答案。运行示例如下 (一定是在虚拟环境中): ``` python shenji_qa_predict.py "认证 回执 提示 这个 发行 代理 未 初始化 。 怎么办 ?" "只能 去 大厅 认证" "打开 报表 后 点 【 带征 】 按钮 查看 , 或者 按 F12" "答 : 软件 没有 重装 过 的 情况 下 , 点 【 视图 】 - - 【 已 发件 】 , 按照 发送 的 时间 查看 报表 内容 。" "重新 从 网站 上面 下载 扫描仪 驱动" ``` 运行结果: ``` 认证回执提示这个发行代理未初始化。怎么办? 只能去大厅认证 打开报表后点【带征】按钮查看,或者按F12 ``` 当前使用的模型`shenji_qa_models/weights_epoch_200.h5`是采用了最基本的Embedding模型以及cosine作为相似度计算公式,margin为0.2,迭代了200次后的模型训练结果。 ## 如何进行模型训练 To be done.