# mrc **Repository Path**: weijinqian/mrc ## Basic Information - **Project Name**: mrc - **Description**: nlp阅读理解代码 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-06-27 - **Last Updated**: 2021-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mrc #### 介绍 采用torchtext + pytorch-lightning 架构 构建阅读理解常见的模型 #### 软件架构 data下为数据集 src下为源代码 ##### 选择题 1. 使用bidaf做选择题,只不过输出是一个概率值 ##### 信息抽取题目 从context上下文中获取两个指针,用于表示抽取的信息的范围 1. 使用bidaf 加上双指针的策略 ##### encoder_decoder生成任务 基于Encoder-Decoder的模型生成任务 ##### 生成式的任务(Seq2Seq) 生成任务的缺点: 1. 无法生成OOV,只能生成词汇表中的词 2. 会产生错误的事实,比如姓名(对应的向量空间位置特别接近) 3. 自我重复 pgnet针对以上缺点:引入copy机制避免OOV问题、coverage机制避免自我重复问题 ##### 一些tricks,解决模型的问题 现有模型存在的问题: 1. 过敏感 对问题词进行替换,发现答案是错的(问题细小的变化,都会导致预测答案的变化) 2. 过稳定 过于依赖文本之间的匹配,忽略语义信息,导致预测错误(过分依赖字面的匹配,忽略语义的信息,导致答案的错误) 3. 跨领域 泛化能力差(测试集和训练集分布不同的时候效果变差) 解决方案: 1. 在文本处理中添加扰动,可以分为离散的还有连续的。离散是指直接对输入文本进行细微扰动,对输入的文字字符进行修改; 2. 连续扰动是对输入文本的词向量矩阵进行细微扰动; 3. 扰动之后的对抗样本和之前的语义不发生变化,尽量不改变以前的语义。 常用方法: 1. 领域内数据增强; 2. 数据增强(使用机器翻译) 3. 对输入的词向量进行扰动(增加噪声输入) #### 使用说明 训练之后 tensorboard 的使用 tensorboard --logdir lightning_logs --bind_all -> http://SERVER-NAME:6006/ #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)