Go to file
yuwl798180 97be097454
Create LICENSE
2019-12-03 19:21:39 +08:00
bert_pretrained update 2019-09-15 22:16:31 +08:00
conf update to 0.2.0 2019-12-03 18:47:25 +08:00
data/origin update to 0.2.0 2019-12-03 18:47:25 +08:00
images update 2019-09-16 20:25:43 +08:00
models update to 0.2.0 2019-12-03 18:47:25 +08:00
module update to 0.2.0 2019-12-03 18:47:25 +08:00
test update to 0.2.0 2019-12-03 18:47:25 +08:00
utils update to 0.2.0 2019-12-03 18:47:25 +08:00
.gitignore Update .gitignore 2019-12-03 18:46:53 +08:00
LICENSE Create LICENSE 2019-12-03 19:21:39 +08:00
README.md update 2019-09-26 22:28:02 +08:00
dataset.py update to 0.2.0 2019-12-03 18:47:25 +08:00
main.py update to 0.2.0 2019-12-03 18:47:25 +08:00
metrics.py update to 0.2.0 2019-12-03 18:47:25 +08:00
predict.py update to 0.2.0 2019-12-03 18:47:25 +08:00
preprocess.py update to 0.2.0 2019-12-03 18:47:25 +08:00
requirements.txt update to 0.2.0 2019-12-03 18:47:25 +08:00
serializer.py update to 0.2.0 2019-12-03 18:47:25 +08:00
trainer.py update to 0.2.0 2019-12-03 18:47:25 +08:00
vocab.py update to 0.2.0 2019-12-03 18:47:25 +08:00

README.md

DeepKE

DeepKE 是基于 Pytorch 的深度学习中文关系抽取处理套件。

环境依赖:

  • python >= 3.6
  • torch >= 1.0
  • jieba >= 0.38
  • matplotlib >= 3.0
  • pytorch_transformers >= 1.2
  • scikit_learn >= 0.20

主要目录

├── bert_pretrained         # 使用 bert 时存放的预训练模型参数
│ ├── vocab.txt             # BERT 模型词表
│ ├── config.json           # BERT 模型结构的配置文件
│ ├── pytorch_model.bin     # 预训练模型参数
├── checkpoints             # 保存训练后的模型参数
├── data                    # 数据目录
│ ├── origin                # 训练使用的原始数据集
│ │ ├── train.csv           # 训练数据集
│ │ ├── test.csv            # 测试数据集
│ │ ├── relation.txt        # 关系种类
├── deepke
│ ├── model                 # 模型目录
│ │ ├── BasicModule.py      # 模型基本配置
│ │ ├── Embedding.py        # Embeddding 模块
│ │ ├── CNN.py              # CNN & PCNN 模型
│ │ ├── RNN.py              # BiLSTM 模型
│ │ ├── GCN.py              # GCN 模型
│ │ ├── Transformer.py      # Transformer 模型
│ │ ├── Capsule.py          # Capsule 模型
│ │ ├── LM.py               # 语言预训练 模型
│ ├── config.py             # 配置文件
│ ├── vocab.py              # 词汇表构建函数
│ ├── preprocess.py         # 训练前预处理数据
│ ├── dataset.py            # 训练时批处理输入数据
│ ├── trainer.py            # 训练迭代函数
│ ├── utils.py              # 工具函数
├── main.py                 # 主入口文件
├── README.md               # read me 文件

快速开始

数据为 csv 文件,样式范例为:

sentence relation head head_type head_offset tail tail_type tail_offset
谢万松字树人湖北省武汉市人武汉钢铁集团公司联合焦化公司退体职工生于1940年 出生地 谢万松 人物 0 湖北省武汉市 地点 8
《娘家的故事第二部》是张玲执导,林在培、何赛飞等主演的电视剧 导演 娘家的故事第二部 影视作品 1 张玲 人物 11
九玄珠是在纵横中文网连载的一部小说,作者是龙马 连载网站 九玄珠 网络小说 0 纵横中文网 网站 5
个人简介梁信强2010年广州亚运会中国澳门代表团成员 国籍 梁信强 人物 4 中国 国家 20
  • 安装依赖: pip install -r requirements.txt

  • 存放数据:在 data/origin 文件夹下存放训练数据。训练文件主要有三个文件。

    • train.csv:存放训练数据集

    • valid.csv:存放验证数据集

    • relation.txt:存放关系种类

  • 开始训练python main.py

  • 每次训练的结果会保存在 checkpoints 文件夹下,格式为:{model_name}_{epoch}_{time}.pth

具体介绍

wiki

备注

使用语言预训练模型时,要提前下载好预训练好的参数,放到 pretrained 文件夹内。

另外数据量较小时直接使用如12层的bert效果并不理想反而层数调低些收敛更快效果更好。如调整到3、6层数具体看训练的数据量大小。

后续工作

  • 重构代码,将模型可复用部分单独提取出来
  • 添加经典实体关系联合抽取模型
  • 添加 web 页面,以供预测输入句子信息可视化

Author: 余海阳

Organization: 浙江大学知识引擎实验室