用语言模型回答多项选择题。

mcqa的Python项目详细描述


MCQA:回答多项选择题

用语言模型回答多项选择题。

CircleCIPyPI VersionGitHubcodecovPRs Welcome

安装

pip

pip install mcqa

来源

git clone https://github.com/mcqa-suite/mcqa.git
cd mcQA
pip install -e .

开始

数据准备

要训练一个mcQA模型,您需要创建一个csv文件,其中n+2列是每个问题的选择数。第一列应该是上下文语句,后面的n列应该是该问题的选项,最后一列是选定的答案。

下面是一个3选择题的例子(摘自CoS-E dataset):

Context sentenceChoice 1Choice 2Choice 3Label
People do what during their time off from work?take tripsbrow shorterbecome hystericaltake trips

如果您有一个经过训练的mcQA模型,并且希望在数据集上进行推断,那么它的格式应该与列车数据的格式相同,但是label列。

参见下面的数据准备示例:

frommcqa.dataimportMCQADatamcqa_data=MCQAData(bert_model="bert-base-uncased",lower_case=True,max_seq_length=256)train_dataset=mcqa_data.read(data_file='swagaf/data/train.csv',is_training=True)test_dataset=mcqa_data.read(data_file='swagaf/data/test.csv',is_training=False)

模特训练

frommcqa.modelsimportModelmdl=Model(bert_model="bert-base-uncased",device="cuda")mdl.fit(train_dataset,train_batch_size=32,num_train_epochs=20)

预测

preds=mdl.predict(test_dataset,eval_batch_size=32)

评估

fromsklearn.metricsimportaccuracy_scorefrommcqa.dataimportget_labelsprint(accuracy_score(preds,get_labels(train_dataset)))

参考文献

TypeTitleAuthorYear
:newspaper: PaperExplain Yourself! Leveraging Language Models for Commonsense ReasoningNazneen Fatema Rajani, Bryan McCann, Caiming Xiong and Richard SocherACL 2019
:newspaper: PaperSWAG: A Large-Scale Adversarial Dataset for Grounded Commonsense InferenceRowan Zellers, Yonatan Bisk, Roy Schwartz and Yejin Choi2018

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?