DeepKE: DeepKE是由浙江大学团队维护开源知识图谱抽取工具集。

Documentation PyPI GitHub Documentation Open In Colab

English | 简体中文

基于深度学习的开源中文知识图谱抽取框架

DeepKE 是一个开源的知识图谱抽取与构建工具,支持cnSchema、低资源、长篇章、多模态的知识抽取工具,可以基于PyTorch实现命名实体识别关系抽取属性抽取功能。同时为初学者提供了文档在线演示, 论文, 演示文稿海报

如果您在安装DeepKE和DeepKE-LLM中遇到任何问题(一般是包的版本兼容性问题)不用心急,您可以查阅常见问题或直接提Issue,我们会尽全力帮助您解决问题

[](#%E7%9B%AE%E5%BD%95)目录

[](#%E6%96%B0%E7%89%88%E7%89%B9%E6%80%A7)新版特性

旧版新闻

[](#%E9%A2%84%E6%B5%8B%E6%BC%94%E7%A4%BA)预测演示

下面使用一个demo展示预测过程。该动图由Terminalizer生成,生成代码可点击获取。

[](#%E6%A8%A1%E5%9E%8B%E6%9E%B6%E6%9E%84)模型架构

Deepke的架构图如下所示

[](#-----1)

  • DeepKE为三个知识抽取功能(命名实体识别、关系抽取和属性抽取)设计了一个统一的框架
  • 可以在不同场景下实现不同功能。比如,可以在标准全监督、低资源少样本、文档级和多模态设定下进行关系抽取
  • 每一个应用场景由三个部分组成:Data部分包含Tokenizer、Preprocessor和Loader,Model部分包含Module、Encoder和Forwarder,Core部分包含Training、Evaluation和Prediction

[](#%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B)快速上手

[](#deepke-llm)DeepKE-LLM

大模型时代, DeepKE-LLM采用全新的环境依赖

conda create -n deepke-llm python=3.9
conda activate deepke-llm
cd example/llm
pip install -r requirements.txt

注意!!是example/llm文件夹下的 requirements.txt

[](#deepke)DeepKE

  • DeepKE支持pip安装使用,下以常规关系抽取场景为例
  • DeepKE支持手动环境部署与容器部署,您可任选一种方法进行安装

[](#-%E6%89%8B%E5%8A%A8%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2)🔧 手动环境部署

Step 1:下载代码 git clone --depth 1 https://github.com/zjunlp/DeepKE.git(别忘记star和fork哈!!!)

Step 2:使用anaconda创建虚拟环境,进入虚拟环境(提供Dockerfile源码和教程可自行创建镜像;可参考备注(常见问题)使用镜像加速)

conda create -n deepke python=3.8
conda activate deepke

1) 基于pip安装,直接使用

pip install deepke

2) 基于源码安装

pip install -r requirements.txt
python setup.py install
python setup.py develop

Step 3 :进入任务文件夹,以常规关系抽取为例

cd DeepKE/example/re/standard

Step 4:下载数据集,或根据数据标注说明标注数据

wget 120.27.214.45/Data/re/standard/data.tar.gz
tar -xzvf data.tar.gz

支持多种数据类型格式,具体请见各部分子README。

Step 5 :模型训练,训练用到的参数可在conf文件夹内修改

DeepKE使用wandb支持可视化调参

python run.py

Step 6 :模型预测。预测用到的参数可在conf文件夹内修改

修改conf/predict.yaml中保存训练好的模型路径。需使用模型的绝对路径。如xxx/checkpoints/2019-12-03_17-35-30/cnn_epoch21.pth

python predict.py

  • ❗注意: 如果您在安装或使用过程中遇到任何问题,您可以查看备注(常见问题) 或提交 GitHub issue.

[](#-%E5%9F%BA%E4%BA%8E%E5%AE%B9%E5%99%A8%E9%83%A8%E7%BD%B2)🐳 基于容器部署

Step1 下载Docker客户端

从官网下载Docker客户端并启动Docker服务

Step2 拉取镜像并运行容器

docker pull zjunlp/deepke:latest
docker run -it zjunlp/deepke:latest /bin/bash

剩余步骤同手动环境部署一节中的Step 3及后续步骤相同

  • ❗注意: 您可以参考 Tips 来加速您的部署

[](#%E7%8E%AF%E5%A2%83%E4%BE%9D%E8%B5%96)环境依赖

[](#deepke-1)DeepKE

python == 3.8
  • torch>=1.5,<=1.11
  • hydra-core==1.0.6
  • tensorboard==2.4.1
  • matplotlib==3.4.1
  • transformers==4.26.0
  • jieba==0.42.1
  • scikit-learn==0.24.1
  • seqeval==1.2.2
  • opt-einsum==3.3.0
  • wandb==0.12.7
  • ujson==5.6.0
  • huggingface_hub==0.11.0
  • tensorboardX==2.5.1
  • nltk==3.8
  • protobuf==3.20.1
  • numpy==1.21.0
  • ipdb==0.13.11
  • pytorch-crf==0.7.2
  • tqdm==4.66.1
  • openai==0.28.0
  • Jinja2==3.1.2
  • datasets==2.13.2
  • pyhocon==0.3.60

[](#%E5%85%B7%E4%BD%93%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D)具体功能介绍

[](#1-%E5%91%BD%E5%90%8D%E5%AE%9E%E4%BD%93%E8%AF%86%E5%88%ABner)1. 命名实体识别NER

  • 命名实体识别是从非结构化的文本中识别出实体和其类型。数据为txt文件,样式范例为(用户可以基于工具DoccanoMarkTool标注数据,也可以通过DeepKE自带的弱监督功能自动得到数据):

    Sentence

    Person

    Location

    Organization

    本报北京9月4日讯记者杨涌报道:部分省区人民日报宣传发行工作座谈会9月3日在4日在京举行。

    杨涌

    北京

    人民日报

    《红楼梦》由王扶林导演,周汝昌、王蒙、周岭等多位专家参与制作。

    王扶林,周汝昌,王蒙,周岭

    秦始皇兵马俑位于陕西省西安市,是世界八大奇迹之一。

    秦始皇

    陕西省,西安市

  • 具体流程请进入详细的README中

    • 常规全监督STANDARD

      我们还提供了大模型支持和开箱即用的DeepKE-cnSchema特别版,无需训练即可抽取支持cnSchema的实体

      Step1: 进入DeepKE/example/ner/standard,下载数据集

      wget 120.27.214.45/Data/ner/standard/data.tar.gz
      tar -xzvf data.tar.gz

      Step2: 模型训练

      数据集和参数配置可以分别在dataconf文件夹中修改

      python run.py

      Step3: 模型预测

      python predict.py

    • 少样本FEW-SHOT

      Step1: 进入DeepKE/example/ner/few-shot,下载数据集

      wget 120.27.214.45/Data/ner/few_shot/data.tar.gz
      tar -xzvf data.tar.gz

      Step2:低资源场景下训练模型

      模型加载和保存位置以及参数配置可以在conf文件夹中修改

      python run.py +train=few_shot

      若要加载模型,修改few_shot.yaml中的load_path

      Step3:在config.yaml中追加- predictpredict.yaml中修改load_path为模型路径以及write_path为预测结果的保存路径,完成修改后使用

      python predict.py

    • 多模态

      Step1: 进入 DeepKE/example/ner/multimodal, 下载数据集

      wget 120.27.214.45/Data/ner/multimodal/data.tar.gz
      tar -xzvf data.tar.gz

      我们在原始图像上使用faster_rcnnvisual grounding工具分别抽取RCNN objects和visual grounding objects来作为局部视觉信息

      Step2 多模态场景下训练模型

      • 数据集和参数配置可以分别进入dataconf文件夹中修改
      • 如需从上次训练的模型开始训练:设置conf/train.yaml中的load_path为上次保存模型的路径,每次训练的日志默认保存在根目录,可用log_dir来配置
    python run.py
    
    **Step3** 模型预测
    
    python predict.py
    

[](#2-%E5%85%B3%E7%B3%BB%E6%8A%BD%E5%8F%96re)2. 关系抽取RE

  • 关系抽取是从非结构化的文本中抽取出实体之间的关系,以下为几个样式范例,数据为csv文件(用户可以基于工具DoccanoMarkTool标注数据,也可以通过DeepKE自带的弱监督功能自动得到数据):

    Sentence

    Relation

    Head

    Head_offset

    Tail

    Tail_offset

    《岳父也是爹》是王军执导的电视剧,由马恩然、范明主演。

    导演

    岳父也是爹

    1

    王军

    8

    《九玄珠》是在纵横中文网连载的一部小说,作者是龙马。

    连载网站

    九玄珠

    1

    纵横中文网

    7

    提起杭州的美景,西湖总是第一个映入脑海的词语。

    所在城市

    西湖

    8

    杭州

    2

  • ❗NOTE: 如果您使用的同一个关系存在多种实体类型,可以采取对实体类型加关系前缀的方式构造输入。
  • 具体流程请进入详细的README中,RE包括了以下三个子功能

    • 常规全监督STANDARD

      我们还提供了大模型支持和开箱即用的DeepKE-cnSchema特别版,无需训练即可抽取支持cnSchema的关系

      Step1:进入DeepKE/example/re/standard,下载数据集

      wget 120.27.214.45/Data/re/standard/data.tar.gz
      tar -xzvf data.tar.gz

      Step2:模型训练

      数据集和参数配置可以分别进入dataconf文件夹中修改

      python run.py

      Step3:模型预测

      python predict.py

    • 少样本FEW-SHOT

      Step1:进入DeepKE/example/re/few-shot,下载数据集

      wget 120.27.214.45/Data/re/few_shot/data.tar.gz
      tar -xzvf data.tar.gz

      Step2:模型训练

      • 数据集和参数配置可以分别进入dataconf文件夹中修改
      • 如需从上次训练的模型开始训练:设置conf/train.yaml中的train_from_saved_model为上次保存模型的路径,每次训练的日志默认保存在根目录,可用log_dir来配置
    python run.py
    
    **Step3**:模型预测
    
    python predict.py
    
*   **[文档级DOCUMENT](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fzjunlp%2FDeepKE%2Ftree%2Fmain%2Fexample%2Fre%2Fdocument)**  
    
    **Step1**:进入`DeepKE/example/re/document`,下载数据集
    
    wget 120.27.214.45/Data/re/document/data.tar.gz
    tar -xzvf data.tar.gz
    
    **Step2**:模型训练  
    
    *   数据集和参数配置可以分别进入`data`和`conf`文件夹中修改
    *   如需从上次训练的模型开始训练:设置`conf/train.yaml`中的`train_from_saved_model`为上次保存模型的路径,每次训练的日志默认保存在根目录,可用`log_dir`来配置;
    
    python run.py
    
    **Step3**:模型预测
    
    python predict.py
    
*   **[多模态](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fzjunlp%2FDeepKE%2Ftree%2Fmain%2Fexample%2Fre%2Fmultimodal)**
    
    **Step1**: 进入 `DeepKE/example/re/multimodal`, 下载数据集
    
    wget 120.27.214.45/Data/re/multimodal/data.tar.gz
    tar -xzvf data.tar.gz
    
    我们在原始图像上使用[faster_rcnn](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fpytorch%2Fvision%2Fblob%2Fmain%2Ftorchvision%2Fmodels%2Fdetection%2Ffaster_rcnn.py)和[visual grounding工具](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fzyang-ur%2Fonestage_grounding)分别抽取RCNN objects和visual grounding objects来作为局部视觉信息
    
    **Step2** 模型训练  
    
    *   数据集和参数配置可以分别进入`data`和`conf`文件夹中修改
    *   如需从上次训练的模型开始训练:设置`conf/train.yaml`中的`load_path`为上次保存模型的路径,每次训练的日志默认保存在根目录,可用`log_dir`来配置
    
    python run.py
    
    **Step3** 模型预测
    
    python predict.py
    

[](#3-%E5%B1%9E%E6%80%A7%E6%8A%BD%E5%8F%96ae)3. 属性抽取AE

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

    Sentence

    Att

    Ent

    Ent_offset

    Val

    Val_offset

    张冬梅,女,汉族,1968年2月生,河南淇县人

    民族

    张冬梅

    0

    汉族

    6

    诸葛亮,字孔明,三国时期杰出的军事家、文学家、发明家。

    朝代

    诸葛亮

    0

    三国时期

    8

    2014年10月1日许鞍华执导的电影《黄金时代》上映

    上映时间

    黄金时代

    19

    2014年10月1日

    0

  • 具体流程请进入详细的README中

    • 常规全监督STANDARD

      Step1:进入DeepKE/example/ae/standard,下载数据集

      wget 120.27.214.45/Data/ae/standard/data.tar.gz
      tar -xzvf data.tar.gz

      Step2:模型训练

      数据集和参数配置可以分别进入dataconf文件夹中修改

      python run.py

      Step3:模型预测

      python predict.py

[](#4%E4%BA%8B%E4%BB%B6%E6%8A%BD%E5%8F%96)4.事件抽取

  • 事件抽取是指从一段无结构化的文本中抽取出某个事件的事件类型、事件触发词、论元角色以及论元。
  • 数据为.tsv文件,样例为:

    Sentence

    Event type

    Trigger

    Role

    Argument

    据《欧洲时报》报道,当地时间27日,法国巴黎卢浮宫博物馆员工因不满工作条件恶化而罢工,导致该博物馆也因此闭门谢客一天。

    组织行为-罢工

    罢工

    罢工人员

    法国巴黎卢浮宫博物馆员工

    时间

    当地时间27日

    所属组织

    法国巴黎卢浮宫博物馆

    中国外运2019年上半年归母净利润增长17%:收购了少数股东股权

    财经/交易-出售/收购

    收购

    出售方

    少数股东

    收购方

    中国外运

    交易物

    股权

    美国亚特兰大航展13日发生一起表演机坠机事故,飞行员弹射出舱并安全着陆,事故没有造成人员伤亡。

    灾害/意外-坠机

    坠机

    时间

    13日

    地点

    美国亚特兰

  • 具体流程请进入详细的README中

    • 常规全监督STANDARD

      Step1:进入DeepKE/example/ee/standard,下载数据集

      wget 120.27.214.45/Data/ee/DuEE.zip
      unzip DuEE.zip

      Step2:模型训练

      数据集和参数配置可以分别进入dataconf文件夹中修改

      python run.py

      Step3:模型预测

      python predict.py

[](#%E5%A4%87%E6%B3%A8%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)备注(常见问题)

1.使用 Anaconda 时,建议添加国内镜像,下载速度更快。如镜像

2.使用 pip 时,建议使用国内镜像,下载速度更快,如阿里云镜像。

3.安装后提示 ModuleNotFoundError: No module named 'past',输入命令 pip install future 即可解决。

4.使用语言预训练模型时,在线安装下载模型比较慢,更建议提前下载好,存放到 pretrained 文件夹内。具体存放文件要求见文件夹内的 README.md

5.DeepKE老版本位于deepke-v1.0分支,用户可切换分支使用老版本,老版本的能力已全部迁移到标准设定关系抽取(example/re/standard)中。

6.如果您需要在源码的基础上进行修改,建议使用python setup.py install方式安装_DeepKE_,如未使用该方式安装,源码修改部分不会生效,见问题

7.更多的低资源抽取工作可查阅论文 Knowledge Extraction in Low-Resource Scenarios: Survey and Perspective

8.确保使用requirements.txt中对应的各依赖包的版本。

[](#%E6%9C%AA%E6%9D%A5%E8%AE%A1%E5%88%92)未来计划

  • 在DeepKE的下一个版本中发布优化后的中英双语抽取大模型
  • 我们提供长期技术维护和答疑解惑。如有疑问,请提交issues

[](#%E9%98%85%E8%AF%BB%E8%B5%84%E6%96%99)阅读资料

Data-Efficient Knowledge Graph Construction, 高效知识图谱构建 (Tutorial on CCKS 2022) [slides]

Efficient and Robust Knowledge Graph Construction (Tutorial on AACL-IJCNLP 2022) [slides]

PromptKG Family: a Gallery of Prompt Learning & KG-related Research Works, Toolkits, and Paper-list [Resources]

Knowledge Extraction in Low-Resource Scenarios: Survey and Perspective [Survey][Paper-list]

基于大模型提示学习的推理工作综述 [论文][列表][ppt]

[](#%E7%9B%B8%E5%85%B3%E5%B7%A5%E5%85%B7)相关工具

DoccanoMarkToolLabelStudio:实体识别关系抽取数据标注工具

LambdaKG: 基于预训练语言模型的知识图谱表示与应用工具

EasyInstruct: 一个基于指令使用大模型的工具

[](#%E5%BC%95%E7%94%A8)引用

如果使用DeepKE,请按以下格式引用

@inproceedings{DBLP:conf/emnlp/ZhangXTYYQXCLL22,
author = {Ningyu Zhang and
Xin Xu and
Liankuan Tao and
Haiyang Yu and
Hongbin Ye and
Shuofei Qiao and
Xin Xie and
Xiang Chen and
Zhoubo Li and
Lei Li},
editor = {Wanxiang Che and
Ekaterina Shutova},
title = {DeepKE: {A} Deep Learning Based Knowledge Extraction Toolkit for Knowledge
Base Population},
booktitle = {Proceedings of the The 2022 Conference on Empirical Methods in Natural
Language Processing, {EMNLP} 2022 - System Demonstrations, Abu Dhabi,
UAE, December 7-11, 2022},
pages = {98--108},
publisher = {Association for Computational Linguistics},
year = {2022},
url = {https://aclanthology.org/2022.emnlp-demos.10},
timestamp = {Thu, 23 Mar 2023 16:56:00 +0100},
biburl = {https://dblp.org/rec/conf/emnlp/ZhangXTYYQXCLL22.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}

[](#%E9%A1%B9%E7%9B%AE%E8%B4%A1%E7%8C%AE%E4%BA%BA%E5%91%98-%E6%8E%92%E5%90%8D%E4%B8%8D%E5%88%86%E5%85%88%E5%90%8E)项目贡献人员 (排名不分先后)

浙江大学:张宁豫、陶联宽、徐欣、桂鸿浩、王潇寒、习泽坤、李欣荣、余海阳、叶宏彬、乔硕斐、王鹏、朱雨琦、谢辛、陈想、黎洲波、李磊、梁孝转、姚云志、陈静、朱雨琦、邓淑敏、张文、郑国轴、陈华钧

开源社区贡献者: thredreams, eltociear

阿里巴巴:熊飞宇、陈强

阿里巴巴达摩院:张珍茹、谭传奇、黄非

实习生:徐子文、黄睿、翁晓龙

[](#%E5%85%B6%E5%AE%83%E7%9F%A5%E8%AF%86%E6%8A%BD%E5%8F%96%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7)其它知识抽取开源工具


原网址: 访问
创建于: 2024-03-07 16:21:04
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论