DeepKE,支持数据集和模型的结合来实现非结构化数据中信息的提取。
同时提出框架和一系列的组件来实现足够的模块化和可扩展性。
项目地址
1. Introduction
现存的KB是在实体和关系方面是不完备的。
常见的一些标志性的应用:
- Spacy(实体识别)
- OpenNER(关系提取)
- OpenIE(信息提取)
- RESIN(事件抽取)
存在的问题:各个现存的工具仅支持一种任务,同时难以应用在复杂的现实世界中(文档和多模态级别的数据)
本篇文章提出开源知识提取工具名为DeepKE。
支持:少资源、文件和多模态设置
并提供模块化和自动超参数优化
主要内容如上所示
2. Core Functions
主要是实体识别、关系识别与属性识别
2.1 Named Entity Recognition
输入句子,找到特定的实体和对应的类型
采用预训练的语言模型去编码句子并进行预测。
支持few-shot和多模态
2.2 Relation Extraction
提供了多种多样的模型
如CNN、RNN、GCN、Transformer、BERT。
在节省资源方面,采用了一种KnowPrompt方式。
在文件领域,主要采用了一种DocuNet的方式
2.3 Attribute Extraction
给定句子、实体和属性的描述
DeepKE可以推断属性的类型
3 Tooklit Design and Implementation
本工具包主要包含如下方面:
- 为多种任务提出统一的框架:data、model和core
- 提供超参数自动训练和评估,并提供docker提升运算效果
- 提供预训练的模型进行信息的提取
3.1 Data Module
tokenizer可处理英文和中文的信息,
在多模式设置条件下也可以实现视觉信息的处理。
用户输入自身的数据集,处理后得到一系列的tokens或image patches
3.2 Model Module
支持CNN,RNN,Transformer等神经网络模型。
同时,在不同的任务场景下,也会尝试采用不同模型
如在标准的RE任务,采用BERT,在NER采用BART
3.3 Core Module
train用填入期望的参数,如(模型、数据、epoch、损失函数等)
validate主要用于评估
predict用于结果的获取
3.4 Framework Module
将上述三个部分和不同场景相组合,
用户可以自动修改超参数