简体中文 | English
DeepKE 是一个支持低资源、长篇章的知识抽取工具,可以基于PyTorch实现命名实体识别、关系抽取和属性抽取功能。
- 加入
dockerfile
以便自动创建环境
- 发布DeepKE demo页面,支持实时抽取,无需部署和训练模型
- 发布DeepKE文档,包含DeepKE源码和数据集等详细信息
pip install deepke
- deepke-v2.0发布
pip install deepke
- deepke-v1.0发布
Deepke的架构图如下所示
- DeepKE为三个知识抽取功能(命名实体识别、关系抽取和属性抽取)设计了一个统一的框架
- 可以在不同场景下实现不同功能。比如,可以在标准全监督、低资源少样本和文档级设定下进行关系抽取
- 每一个应用场景由三个部分组成:Data部分包含Tokenizer、Preprocessor和Loader,Model部分包含Module、Encoder和Forwarder,Core部分包含Training、Evaluation和Prediction
DeepKE支持pip安装使用,以常规全监督设定关系抽取为例,经过以下五个步骤就可以实现一个常规关系抽取模型
Step 1:下载代码 git clone https://github.com/zjunlp/DeepKE.git
(别忘记star和fork哈!!!)
Step 2:使用anaconda创建虚拟环境,进入虚拟环境(提供Dockerfile源码可自行创建镜像,位于docker文件夹中)
conda create -n deepke python=3.8
conda activate deepke
1) 基于pip安装,直接使用
pip install deepke
2) 基于源码安装
python setup.py install
python setup.py develop
Step 3 :进入任务文件夹,以常规关系抽取为例
cd DeepKE/example/re/standard
Step 4 :模型训练,训练用到的参数可在conf文件夹内修改
python run.py
Step 5 :模型预测。预测用到的参数可在conf文件夹内修改
python predict.py
python == 3.8
- torch == 1.5
- hydra-core == 1.0.6
- tensorboard == 2.4.1
- matplotlib == 3.4.1
- transformers == 3.4.0
- jieba == 0.42.1
- scikit-learn == 0.24.1
- pytorch-transformers == 1.2.0
- seqeval == 1.2.2
- tqdm == 4.60.0
- opt-einsum==3.3.0
- ujson
-
命名实体识别是从非结构化的文本中识别出实体和其类型。数据为txt文件,样式范例为:
Sentence Person Location Organization 本报北京9月4日讯记者杨涌报道:部分省区人民日报宣传发行工作座谈会9月3日在4日在京举行。 杨涌 北京 人民日报 《红楼梦》是中央电视台和中国电视剧制作中心根据中国古典文学名著《红楼梦》摄制于1987年的一部古装连续剧,由王扶林导演,周汝昌、王蒙、周岭等多位红学家参与制作。 王扶林,周汝昌,王蒙,周岭 中国 中央电视台,中国电视剧制作中心 秦始皇兵马俑位于陕西省西安市,1961年被国务院公布为第一批全国重点文物保护单位,是世界八大奇迹之一。 秦始皇 陕西省,西安市 国务院 -
具体流程请进入详细的README中
-
Step1: 进入
DeepKE/example/ner/standard
,下载数据集wget 120.27.214.45/Data/ner/standard/data.tar.gz tar -xzvf data.tar.gz
Step2: 模型训练
数据集和参数配置可以分别在
data
和conf
文件夹中修改python run.py
Step3: 模型预测
python predict.py
-
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
中追加- predict
,predict.yaml
中修改load_path
为模型路径以及write_path
为预测结果的保存路径,完成修改后使用python predict.py
-
-
关系抽取是从非结构化的文本中抽取出实体之间的关系,以下为几个样式范例,数据为csv文件:
Sentence Relation Head Head_offset Tail Tail_offset 《岳父也是爹》是王军执导的电视剧,由马恩然、范明主演。 导演 岳父也是爹 1 王军 8 《九玄珠》是在纵横中文网连载的一部小说,作者是龙马。 连载网站 九玄珠 1 纵横中文网 7 提起杭州的美景,西湖总是第一个映入脑海的词语。 所在城市 西湖 8 杭州 2 -
具体流程请进入详细的README中,RE包括了以下三个子功能
-
Step1:进入
DeepKE/example/re/standard
,下载数据集wget 120.27.214.45/Data/re/standard/data.tar.gz tar -xzvf data.tar.gz
Step2:模型训练
数据集和参数配置可以分别进入
data
和conf
文件夹中修改python run.py
Step3:模型预测
python predict.py
-
Step1:进入
DeepKE/example/re/few-shot
,下载数据集wget 120.27.214.45/Data/re/few_shot/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
-
-
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
- 数据集和参数配置可以分别进入
-
-
数据为csv文件,样式范例为:
Sentence Att Ent Ent_offset Val Val_offset 张冬梅,女,汉族,1968年2月生,河南淇县人 民族 张冬梅 0 汉族 6 杨缨,字绵公,号钓溪,松溪县人,祖籍将乐,是北宋理学家杨时的七世孙 朝代 杨缨 0 北宋 22 2014年10月1日许鞍华执导的电影《黄金时代》上映 上映时间 黄金时代 19 2014年10月1日 0 -
具体流程请进入详细的README中
-
Step1:进入
DeepKE/example/ae/standard
,下载数据集wget 120.27.214.45/Data/ae/standard/data.tar.gz tar -xzvf data.tar.gz
Step2:模型训练
数据集和参数配置可以分别进入
data
和conf
文件夹中修改python run.py
Step3:模型预测
python predict.py
-
本工具提供了若干Notebook和Google Colab教程,用户可针对性调试学习。
-
常规设定:
-
低资源:
-
篇章级:
- 使用 Anaconda 时,建议添加国内镜像,下载速度更快。如镜像。
- 使用 pip 时,建议使用国内镜像,下载速度更快,如阿里云镜像。
- 安装后提示
ModuleNotFoundError: No module named 'past'
,输入命令pip install future
即可解决。 - 使用语言预训练模型时,在线安装下载模型比较慢,更建议提前下载好,存放到 pretrained 文件夹内。具体存放文件要求见文件夹内的
README.md
。 - DeepKE老版本位于deepke-v1.0分支,用户可切换分支使用老版本,老版本的能力已全部迁移到标准设定关系抽取(example/re/standard)中。
浙江大学:张宁豫、陶联宽、余海洋、陈想、徐欣、田玺、李磊、黎洲波、邓淑敏、姚云志、叶宏彬、谢辛、郑国轴、陈华钧
达摩院:谭传奇、陈漠沙、黄非