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

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第三方库


热门话题
java如何在堆文件中找到局部变量   java如何使用旧的JSSessionID创建HttpSession?   arrays Java:Arraylist在处理文件时超出范围   可以将Java Retval放入数组中吗   java3d中的几何体碰撞检测?   java从listview和数据库中删除项   Java迭代两个列表,比较然后添加到另一个列表   java应用程序在提交分数排行榜Google Play时崩溃   java Eclipse+Maven Plugin+EGit Plugin=从GitHub签出特定的分支和标记?   Java中的半密码保护Zip文件   java JFrame组件能够通过重绘调用paintComponent,尽管使用flowlayout   带有比较器的Lambda表达式中的java Stream min()和max()方法只返回第一个和最后一个元素,不返回min/max元素   swing Java/Netbeans:JList。getModel()返回一个ListModel而不是DefaultListModel   java我如何使用应用程序。带有LiveData和ViewModel的片段   地理定位在Java中获取用户当前的纬度和经度   为什么在Java中将“this”用作方法参数时会收到此错误消息?   java将字符串转换为JSONArray(或任何数组)