本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:Facebook开源DrQA的PyTorch实现:基于维基百科的问答(4)

时间:2017-07-30 02:23来源:天下彩论坛 作者:118开奖 点击:
按照经典的问答系统的做法,我们纳入了一个基于稀疏的、TF-IDF 加权的词袋向量的有效文档检索系统(非机器学习)。我们使用了 bags of hashed n-grams(这里

按照经典的问答系统的做法,我们纳入了一个基于稀疏的、TF-IDF 加权的词袋向量的有效文档检索系统(非机器学习)。我们使用了 bags of hashed n-grams(这里是 unigrams 和 bigrams)。

要了解如何在新文档上构建你自己的模型,参阅检索器的 README:https://github.com/facebookresearch/DrQA/blob/master/s/retriever/README.md。

要交互式地查询维基百科:

python s/retriever/interactive.py --model /path/to/model

如果 model 被忽略,就会使用我们的默认模型(假设已经下载了)。

为了评估该检索器在一个数据集上的准确度(前 5 个的匹配率):

python s/retriever/eval.py /path/to/format/A/dataset.txt --model /path/to/model

文档阅读器

DrQA 的文档阅读器是一个多层循环神经网络机器理解模型,被训练用来执行提取式的问答。也就是说,该模型会使用一个返回的文档中的一段文本来作为问题的答案。

该文档阅读器的灵感来自于 SQuAD 数据集,并且也主要是在这个数据集上训练的。它也可以在类似于 SQuAD 的任务上单独使用,其中可以通过问题、包含在上下文中的答案来提供一个特定的语境。

要了解如何在 SQuAD 上训练该文档阅读器,参阅阅读器的 README:https://github.com/facebookresearch/DrQA/blob/master/s/reader/README.md

要使用训练后的模型交互式地询问关于文本的问题:

python s/reader/interactive.py --model /path/to/model

同样,这里的 model 是可选的;如果忽略就会使用默认的模型。

要在数据集上执行模型预测:

python s/reader/predict.py /path/to/format/B/dataset.json --model /path/to/model

DrQA 流程

整个系统在 drqa.pipeline.DrQA 中链接到一起。

要使用完整的 DrQA 交互式地提问:

python s/pipeline/interactive.py

可选参数:

--reader-model Path to trained Document Reader model.--retriever-model Path to Document Retriever model (tfidf).--doc-db Path to Document DB.--tokenizers String option specifying tokenizer type to use (e.g. 'corenlp').--candidate-file List of candidates to restrict predictions to, one candidate per line.--no-cuda Use CPU only.--gpu Specify GPU device id to use.

要在数据集上运行预测:

python s/pipeline/predict.py /path/to/format/A/dataset.txt

可选参数:

--out-dir Directory to write prediction file to (<dataset>-<model>-pipeline.preds).--reader-model Path to trained Document Reader model.--retriever-model Path to Document Retriever model (tfidf).--doc-db Path to Document DB.--embedding-file Expand dictionary to use all pretrained embeddings inthis file (e.g. all glove vectors to minimize UNKs at test time).--candidate-file List of candidates to restrict predictions to, one candidate per line.--n-docs Number of docs to retrieve per query.--top-n Number of predictions to make per query.--tokenizer String option specifying tokenizer type to use (e.g. 'corenlp').--no-cuda Use CPU only.--gpu Specify GPU device id to use.--parallel Use data parallel (split across GPU devices).--num-workers Number of CPU processes ( fortokenizing, etc).--batch-size Document paragraph batching size (Reduce incase of GPU OOM).--predict-batch-size Question batching size (Reduce incase of CPU OOM).

远程监督(DS:Distant Supervision)

当提供了来自额外数据集的远程监督数据时,完全配置的 DrQA 的表现会显著提升。给定问答对但不提供支持语境,atv,我们可以使用字符串匹配启发式方法来自动将段落与这些训练样本关联起来。

Question: What U.S. state’s motto is “Live free or Die”?

Answer: New Hampshire

DS Document: Live Free or Die “Live Free or Die” is the official motto of the U.S. state of New Hampshire, adopted by the state in 1945. It is possibly the best-known of all state mottos, partly because it conveys an assertive independence historically found in American political philosophy and partly because of its contrast to the milder sentiments found in other state mottos.

s/distant 目录包含用于生成和检查这种远程监督数据的代码。

tokenizer

为了方便,我们提供了一些不同的 tokenizer 选项。在依赖包需求、运行开销、速度和性能上,每一个选项都有自己的优势和劣势。对于我们报告的实验,我们使用了 CoreNLP(但结果都是相似的)。

可用的 tokenizer:

CoreNLPTokenizer:使用 Stanford CoreNLP(选项:corenlp),我们使用了 v3.7.0,需要 Java 8

SpacyTokenizer:使用 spaCy(选项:spacy)

RegexpTokenizer:基于自定义正则表达式的 PTB 风格的 tokenizer(选项:regexp)

SimpleTokenizer:基本的字母-数字/非空的 tokenizer(选项:simple)

查阅字符串选项名和 tokenizer 类别的对应列表:https://github.com/facebookresearch/DrQA/blob/master/drqa/tokenizers/__init__.py

引用

如果你在你的工作中使用 DrQA,直播,请引用这篇 ACL 论文:

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容