1 Star 2 Fork 0

learning-limitless / DuEL-transformers

加入 Gitee
与超过 800 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.zh.md

CCKS2020 EL Baseline System

摘要

为CCKS 2020开发的实体链指基线系统,在CCKS 2019面向中文短文本的实体链指任务的基础上进行了拓展与改进。有关数据集和任务的详细信息,请访问我们比赛的官方网站。

思路

DuEL模型是一个多任务模型,包含两个任务:候选实体排名和提及类型的预测。

候选实体排序任务使用pairwise模型。在训练阶段,将query和候选实体描述分别输入Ernie网络以query表示和候选实体表示。 之后,合并query表示和候选实体表示并经过MLP网络进行打分。这里使用的损失函数是rank_loss。

Mention 类型预测任务使用分类模型。在训练阶段,将query输入到Ernie网络中以获取表示。 之后,query表示向量通过MLP获得mention类型。这里的损失函数是分类损失。

最后,我们将两个损失合并后,进行多任务训练。

在预测阶段,我们使用预测的mention类型来验证候选实体。

注,在训练和预测阶段,我们将NIL视为实体ID,详细信息见代码。

环境

Python3.6 + pytorch>=1.6 (请在脚本中确认您的Python路径)。

需求包在./requirements.txt中列出

代码在单个P40 GPU上进行了测试,CUDA版本=10.0

下载数据

从百度AiStudio官网下载DuEL数据,解压后放在../../datasets/DuEL/data/basic_data/目录,其中包含文件:

dev.json
kb.json
test.json
train.json
eval.py

下载预训练模型

下载chinese-bert_chinese_wwm_pytorch模型,并将其解压到../../models/

data目录下文件改名(否则transformers无法正确加载模型):

bert_config.json 改名为 config.json

chinese_wwm_pytorch.bin 改名为 pytorch_model.bin

data目录下文件移动至上一级目录

数据格式转换

生成的数据在../../datasets/DuEL/generated/目录中

运行: cd ./data_process/

python duel_process.py

训练

  • config/duel_config_bert.json中修改模型训练配置do_train,do_eval设为true

  • duel_utils.read_examples_from_file中修改seg_idx和seg_num调整使用的样本量,全量数据太多,训练时间很长,且内存可能不够

  • 运行python dule.py --config config/duel_config_bert.json

预测

  • config/duel_config_bert.json中do_train,do_eval设为false,do_predict改为true

  • 运行python dule.py --config config/duel_config_bert.json结果文件test_pred.json保存在./out_put下

附录

数据集包含24种实体类型,详情见下表

Type 中文名
Event 事件活动
Person 人物
Work 作品
Location 区域场所
Time&Calendar 时间历法
Brand 品牌
Natural&Geography 自然地理
Game 游戏
Biological 生物
Medicine 药物
Food 食物
Software 软件
Vehicle 车辆
Website 网站平台
Disease&Symptom 疾病症状
Organization 组织机构
Awards 奖项
Education 教育
Culture 文化
Constellation 星座
Law&Regulation 法律法规
VirtualThings 虚拟事物
Diagnosis&Treatment 诊断治疗方法
Other 其他

仓库评论 ( 3 )

你可以在登录后,发表评论

简介

基于transformers和pytorch 实现DuEL-baseline模型 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/leaning-limitless/DuEL-transformers.git
git@gitee.com:leaning-limitless/DuEL-transformers.git
leaning-limitless
DuEL-transformers
DuEL-transformers
master

搜索帮助