踩坑经过——QAonMilitaryKG的使用过程


本项目是:中科院软件所刘焕勇老师在github上的开源项目。

首先,就遇到了一个MongoDB的安装问题,耽误小姐姐我好久时间———

1. socket.timeout: The read operation timed out解决方案

在下载python库的时候,由于国内网络原因,python包的下载速度非常慢,查看pip 文档,只要在 pip的时候控制超时即可:

python -m pip --default-timeout=100 install --upgrade pip

2. 解决pycharm下anaconda环境中无法安装pymongo

通过pip install安装的pymongo无法在anaconda环境下识别,需要通过命令行:

conda install -c https://conda.binstar.org/anaconda pymongo

3. win10 的编码问题

安装完MongoDB以后,再运行 QAonMilitaryKG-master/military_qa.py
会出现编码错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xbc in position 65: illegal multibyte sequence

然而在linux系统上就能够运行;这是因为linux上默认编码是 utf-8,windows默认是 gbk,所以只需要在打开文件的时候加上 encoding='UTF-8'

open(self.datapath, encoding='UTF-8')

4. 安装MongoDB

操作完上面的过程中,发现自己本机都没安装MongoDB,所以产生了报错:

所以,咱们现在开始安装MongoDB吧!!

(1) 下载安装包

下载路径是:https://www.mongodb.com/download-center/community?tck=docs_server,这是选择windows x64版本。不得不说,家里的下载速度是真的慢慢慢。。。(教育网会快一些嗷~)

为了方便家里的小伙伴,甩一个百度网盘链接吧~
链接:https://pan.baidu.com/s/1qCWMIkcX5EyF_76OiTo3lQ
提取码:va25

(2)安装

  • 解压缩,打开文件中的 bin 路径,在 bin 路径中找到【mongo.exe】文件,然后就然后双击,运行此程序。会有个会话框闪现,这属于正常现象。

  • 然后新建一个文件【data】,然后在 data 文件中要新建一个文件【db】,新建另一个文件【log】,然后再【log】中再建一个文件【MongoDB.log
    在这里插入图片描述

  • 然后按【win+R】,打开【运行】,出现运行会话框,然后再文本框中输入【cmd】,,进入 cmd

  • 开始启动我们的MongoDB,首先,我们要进入我们安装路径:E:\mongodb-win32-x86_64-2012plus-4.2.6\bin
    在这里插入图片描述

  • 执行:mongod -dbpath "E:\mongodb-win32-x86_64-2012plus-4.2.6\data\db",作用是:将mongodb的数据库文件创建到 C:\Program Files\ MongoDB \Data\db目录。

  • 如何查看数据库呢?
    可以使用Robomongo软件,直接连接。软件下载地址:https://robomongo.org/download
    在这里插入图片描述

5. 运行该项目

项目执行步骤:

  • 执行 insert_data.py,将输入导入至mongodb当中。
  • 执行 military_qa.py,开始进行问答测试。
  • ps:若需要进行自我重新构建数据,可运行collect_data.py。
    在这里插入图片描述

6. 项目总结

以下是摘抄老师的总结:军事武器知识图谱构建与自动问答项目QAonMilitaryKG
,借以思考。

  1. 本项目完成了采集并解析军事武器库网站,进行字段信息的标准化,形成一定规范、规模的军事武器装备结构化知识库。实现基于mongodb的军事领域知识库的自动问答。
  2. 本项目简要介绍了工业级的问答架构图,该架构图朴实且如实地介绍了面相结构化文本的知识构建以及结构化查询流程以及粗略实现细节。
  3. 面向具有数字型数据的结构化知识的问句的形式有多种,主要有纯属性值查询如:单实体单属性,单实体多属性,多实体单属性,多实体多属性等问题。带筛选条件查询,如如单属性值与多属性值区间查询。最值条件查询共三种,本项目初步实现了对这三种主要问句类型问答。
  4. 实体识别,属性值识别,数值识别上,主要采用的方式是领域词及扩展词,配合正则表达式的方式来实现,没有使用学习模型 。作为军事领域,学习模型在武器类实体识别上效果可能不会太好,在识别后进行实体链接映射会遇到一定困难
  5. 实体与查询属性项之间的对应成对是整个问答查询的最核心所在,本项目使用基于关系模板穷举的方式完成该目标,准确率较高,但缺点是穷举可能性不大,构造成本较高。
  6. 既然是结构化知识问答,那么业务场景下的问答应该是简单的,多实体多属性混杂出现的情况应该要少一些,即问题的问答可以很多样,但问题的内部结构不应太复杂,否则就丢失了自动问答解放信息杂糅的本意了。
  7. 知识图谱是结构化知识的一种方式,存储方式可以用关系型,可以用nosql,也可以用图数据库,不同的方式的区别在于sql的转化上。在关系级联程度不高的情况下,使用非图数据库可能会是更好的方式
  8. 深度学习在工业界问答中,在基于qa对检索中用的比较多,在结构化知识图谱查询中较难大显身手,集中应用点在实体论元识别上,个人认为在实体属性关系的识别上不会很惊艳,很有可能没有规则来的快,来的准确。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值