首页/文章/ 详情

Transformers之问题对答(Question Answering)

1年前浏览460

1 引言

Transformers的环境配置非常麻烦, 尽管花了几个小时试了各种方法, 但仍然没有完全解决问题. 本文仅试验了Transformers之问题对答(Question Answering), 其它功能还没有测试. 在试验之前, 检查了每个模块的安装情况, 如下图所示。

问题对答是信息检索和自然语言处理NLP中的一项任务, 也是NLP中最难处理的一项内容, 该任务要求系统正确回答以人类自然语言提出的问题。在提取性问题解答方案中,通过提供一段文字,使用模型根据上下文来预 测 答 案在段落中的位置。这是一项非常具有挑战性的任务.

PyTextRank---文本关键字(keywords)的自动取出

使用Transformers确定句子之间的相似度

SentenceTransformers库更新V2.0.0

联合6种Transformers预训练模型

2 模型简介

尽管目前Question Answering模型共有307个,但本次测试使用的模型仍然是mrm8488/bert-multi-cased-finetuned-xquadv1. 该模型由谷歌创建,并在XQuAD之类的数据上进行了微调,用于多语言(11种不同的语言)的问答任务。BERT(base-multilingual-cased) fine-tuned for multilingual Q&A. 由于数据集基于SQuAD v1.1,所以数据中没有无法回答的问题, 以便模型可以专注于跨语言的转移。

3 调用方法

调用方法如下:

from transformers import pipeline

# pipeline模块是一个抽象层,提供了简单的API来执行各种任务。

question_answering = pipeline("question-answering", 

model="mrm8488/bert-multi-cased-finetuned-xquadv1",

tokenizer="mrm8488/bert-multi-cased-finetuned-xquadv1")

# 构建问答管道

context = '''内容描述'''

question = '''所提问题'''

result = question_answering(question=question, context=context)

4 英语测试

首先对模型用英语进行测试:

内容:  '''The development of a step-path failure surface is mainly controlled by the orientation and spatial characteristics of the present major rock structure including major joints sets, shear planes and fault planes. '''

根据上面的描述,提出以下四个问题:

(1) 问题: '''What kinds of factors controlled the development of a step-path failure surface?'''

回答: orientation and spatial characteristics (0.96)

给出的这个答案非常准确, 分数0.96.  

(2) 问题: '''Please describe the major rock structure.''' 

回答: step-path failure surface is mainly controlled by the orientation and spatial characteristics (0.39)

问题使用了描述形式, 本题没有给出正确答案, 可能的原因一方面没有使用问句形式,另一方面问题中给出的关键词太少, 分数0.39.

(3) 问题: What is rock structure?

回答: step-path failure surface (0.42)

这个问题也没有给出正确答案, 主要原因可能是问题中给出的关键词太少, 分数0.42.

(4) How many kinds of present major rock structure?

回答: major joints sets, shear planes and fault planes (0.003)

这个测试扩展了上述(3)的问题,给出了更多的关键词, 同时提问的方式更加正式, 确实给出了我们想要的答案, 但奇怪的是这个分数只有0.003. 似乎这个数据集还不能很好处理复杂的句型.

5 中文测试

接下来对中文进行测试:

内容: '''Jennings于1970年首次详细讨论了岩石边坡的阶梯式分析,他使用了极限平衡方法,考虑了沿节理的剪切破坏、通过完整岩石的剪切破坏以及岩桥的拉伸破坏。'''

根据上面的描述,提出以下四个问题:

(1) 问题: 谁首次进行了岩石边坡的阶梯式分析?

回答: Jennings (0.93)

回答正确, 分数0.93.

(2) 问题: Jennings使用了什么手段进行岩石边坡的阶梯式分析?

回答: 极限平衡方法 (0.59)

回答100%正确, 但分数只有0.59, 如果把"手段"换成"工具", 分数为0.67,  这显示出在这种场景下, "工具"更是一个相对合适的词汇.

(3) 问题: 当Jennings进行岩石边坡分析时,他考虑了哪些因素?

回答: 沿节理的剪切破坏 (0.49)

这个回答只给出了部分答案, 顿号后面的文字没有给出, 这显然不是我们所想要的, 分数为0.49. 我以为是顿号引起的短句, 所以把顿号改成了"和", 这样就变成了一个句子, 结果发现回答没发生任何变化, 只是分数变成了0.24.

(4) 问题: 岩石破坏有哪几种形式?

回答: 沿节理的剪切破坏 (0.17)

与(3)的回答一样, 只给出了部分答案, 不明白为什么后面的文字没有给出. 

来源:计算岩土力学
试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-19
最近编辑:1年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 123粉丝 881文章 1732课程 0
点赞
收藏
未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈