DrQA实践

2017年七月份Facebook开源了其开放域问答系统DrQA的代码。关于DrQA,还有一篇2017年发表在ACL上的论文《Reading Wikipedia to Answer Open-Domain Questions》,在此首先介绍一下论文的原理。

    DrQA模型主要分为两部分,第一部分Retriever和第二部分Reader,Retriever根据问题检索出维基百科语料库中最相关的5篇候选文章,Reader则从候选的5篇文章中提取出问题的答案。系统的示意图如下:

      Retriever 直接利用简单的TF-IDF加权的词袋模型来检索出最合适的5篇文章,又使用考虑了局部词序的n元特征对系统进行了改进。

      Reader分为paragraph encoding,question encoding和prediction部分。paragraph encoding使用一个双向LSTM网络将各段落中的每一个token转化为一个向量,question encoding再使用另一个双向LSTM网络将每个问题转化为一个向量,得到各段落中各token和问题的向量表示即可以将它们作为分类器的输入来判断答案区间的起止位置,具体地,使用双线性项来捕获token pi和问题q之间的相似性,并计算每个token作为的开始或结束项的概率,如下所示:

    下面结束DrQA的安装过程:

    DrQA的安装要求linux/OSX系统以及Python 3.5以上的版本,首先需要安装pytorch,可以按照http://pytorch.org/给出的命令直接安装,再使用如下命令来安装DrQA:

git clone https://github.com/facebookresearch/DrQA.git
cd DrQA; pip install -r requirements.txt; python setup.py develop

    DrQA默认的tokenizer为CoreNlp,首先使用如下命令下载

   ./install_corenlp.sh

    再将下载的jar文件引入classpath环境变量或在调用的程序代码,比如pipeline中的interactive中加入如下代码:

import drqa.tokenizers
drqa.tokenizers.set_default('corenlp_classpath', '/your/corenlp/classpath/*')

     至此DrQA安装完毕。

     最后运行python scripts/pipeline/interactive.py来尝试DrQA的demo,截屏如下:

    可见DrQA系统对于事实型问题的回答还是具有比较高的质量的。问题是对于所提问的问题,如果其答案需要推理才能得出,DrQA便无法正确回答了,因此个人认为DrQA如果与具备推理能力的知识图谱结合,会具有更高的性能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习和数学

[Tensorflow] Tensorflow中模型保存与回收的简单总结

今天要聊得是怎么利用TensorFlow来保存我们的模型文件,以及模型文件的回收(读取)。刚开始接触TensorFlow的时候,没在意模型文件的使用,只要能...

3658
来自专栏AI研习社

Github 项目推荐 | 用 JavaScript 实现的神经网络 —— brain.js

不过,一般的开发者应该都不会用神经网络来实现异或的功能吧,所以这里有一个更加实际的例子:训练一个神经网络来识别颜色对比 https://brain.js.org...

1732
来自专栏程序生活

斯坦福tensorflow教程(四) 贪婪执行Eager Execution

1655
来自专栏CDA数据分析师

谷歌教你学 AI-第四讲部署预测模型

翻译/校对: Mika 本文为 CDA 数据分析师原创作品,转载需授权 Google Cloud发布了名为"AI Adventures"的系列视频,用简单易懂的...

2716
来自专栏AI研习社

Github 项目推荐 | 面向 JS 开发者的机器学习框架 TensorFlow.js 以及相关示例

TensorFlow.js 是谷歌在 2018 TensorFlow 开发者峰会推出的开源库,它可以使用 Java 和灵活且直观的 API 在浏览器中定义、训练...

1281
来自专栏目标检测和深度学习

Kaggle放大招:简单几步实现海量数据分析及可视化

Kaggle Kerneler bot是一个自动生成的kernel,其中包含了演示如何读取数据以及分析工作的starter代码。用户可以进入任意一个已经发布的项...

690
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯TMQ】看图测试指南:图像识别在测试中的应用

也许我们使用过Uiautomator或Monkey来进行系统的测试。但在使用过程中总出现用Uiautomator没法识别、用Monkey无法法复现等问题……本文...

7050
来自专栏WOLFRAM

Mathematica 11.1.1 中文版已发布

1473

bigML中提升树模型的6个步骤

BigML将提升树模型(Boosted Trees)带入我们日益增长的监督式学习技术套件中。Boosting是一个变体,旨在减少偏见,可能会导致比Bagging...

4130
来自专栏机器之心

开源 | 浏览器上最快的DNN执行框架WebDNN:从基本特性到性能测评

选自Github 机器之心编译 参与:蒋思源、晏奇 WebDNN 是网页浏览器中最快的 DNN 执行框架,而本文首先简单介绍了 WebDNN 特征与其框架结构...

3136

扫码关注云+社区

领取腾讯云代金券