知识抽取:DeepKE库的使用(浙江大学知识图谱团队开源工具)

DeepKE知识图谱抽取开源工具使用

文章目录

  • DeepKE知识图谱抽取开源工具使用
    • 1、DeepKE介绍
    • 2、简单使用
      • 1、训练模型
      • 2、知识抽取
      • 3、注意事项

1、DeepKE介绍

今天给大家介绍一下DeepKE这个开源工具。DeepKE一个支持cnSchema、低资源、长篇章、多模态的知识图谱抽取开源工具。主要是由浙江大学和阿里团队研发的。

DeepKE是一种基于深度学习的知识抽取工具,它可以从文本数据中抽取出实体、关系和事件等知识,并将其表示为结构化的形式,可以用于自然语言处理、信息提取、搜索引擎优化以及其他相关领域。

官网地址:http://deepke.zjukg.cn/CN/index.html

论文地址:https://arxiv.org/pdf/2201.03335.pdf

官方文档:https://zjunlp.github.io/DeepKE

DeepKE的步骤通常包括以下几个方面:

1.预处理:对原始文本进行分词、词性标注、命名实体识别等处理,以便后续的模型训练和使用;

2.知识抽取:使用深度学习模型,例如神经网络、卷积神经网络和循环神经网络等,从预处理后的文本中抽取出实体、关系和事件等知识;

3.结构化表示:将抽取出的知识表示为结构化的形式,例如图或表格等,以便后续的应用和分析。

2、简单使用

首先deepke支持各种方式的安装

conda环境

conda create -n deepke python=3.8
conda activate deepke

pip方式

pip install deepke

还提供了dockerfile来创建docker镜像。

cd docker
docker build -t deepke .
conda activate deepke

博主使用conda和pip直接进行install出现了报错,所以是直接下载deep的压缩包并setup

下载地址: https://pypi.doubanio.com/packages/d1/79/3ec7a5b14ecc16677b13e2f2603f56849a54ec9a0a527f1556d65f9c9f3a/deepke-2.2.1.tar.gz

解压后在deepke-2.2.1目录下运行

python setup.py install

发现还是报错,原因是该包里面没有requirements.txt(希望官方改正)
知识抽取:DeepKE库的使用(浙江大学知识图谱团队开源工具)_第1张图片
于是找到官方文档中的安装依赖并写入requirements.txt放入setup.py的同级目录下再运行(已被调试过)。

torch == 1.10.0
hydra-core == 1.0.6
tensorboard == 2.4.1
matplotlib == 3.4.1
protobuf==3.19.2
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
wandb==0.12.7
ujson

使用命令后可能会由于从python官方库下载而导致的超时问题,因此我们直接使用如下命令

pip install -r requirements.txt -i https://pypi.douban.com/simple

来将依赖直接安装之后再运行命令

python setup.py install

就安装成功了。

1、训练模型

import deepke

# 加载训练数据
train_data = [
    {
        "text": "乔布斯是苹果公司的创始人。",
        "entities": {
            "PERSON": [{"start": 0, "end": 2}]
        },
        "relations": {
            "FOUNDED_BY": [{"head": 0, "tail": 3}]
        }
    },
    {
        "text": "比尔盖茨是微软公司的创始人。",
        "entities": {
            "PERSON": [{"start": 0, "end": 4}]
        },
        "relations": {
            "FOUNDED_BY": [{"head": 0, "tail": 5}]
        }
    },
    # ... 其他训练数据
]

# 训练模型
model = deepke.train(train_data)

# 保存模型
model.save_model("model_path")

2、知识抽取

import deepke

# 加载预训练模型
model = deepke.load_model(model_path)

# 对输入文本进行预处理
text = "乔布斯是苹果公司的创始人。"
tokens = deepke.tokenize(text)

# 使用模型进行知识抽取
entities, relations = model.predict(tokens)

# 输出抽取结果
print("Entities:", entities)
print("Relations:", relations)

以上代码使用预训练模型对输入文本进行了知识抽取,并输出了实体和关系等结构化信息。

3、注意事项

数据集格式为json数据。训练数据的格式必须符合DeepKE要求的格式。具体而言,每个训练样例应该包含一个文本字段(即**“text”字段)以及一个实体字段(即“entities”字段),实体字段的值应该是一个字典类型,键为实体类型,值为一个列表,列表中的每个元素表示一个实体在文本中的位置信息(即“start”和“end”字段)。同时,在存在关系的情况下,每个训练样例还应该包含一个关系字段(即“relations”字段),关系字段的值也应该是一个字典类型,键为关系类型,值为一个列表,列表中的每个元素表示一条关系,其中“head”和“tail”**分别表示关系头和尾在实体列表中的索引。

以下是一个示例的训练数据格式:

{
    "text": "史蒂夫·乔布斯是苹果公司的创始人。",
    "entities": {
        "PERSON": [{"start": 0, "end": 5}],
        "ORG": [{"start": 9, "end": 13}]
    },
    "relations": {
        "FOUNDED_BY": [{"head": 0, "tail": 1}]
    }
}

如有任何问题请参考开源地址:https://gitee.com/openkg/deepke

你可能感兴趣的:(Python,自然语言处理,知识图谱,开源,人工智能)