基于deepke构建红楼梦知识图谱

红楼梦,中国古典四大名著之首,清代作家创作的章回体长篇小说,又名《石头记》《金玉缘》。此书分为120回“程本”和80回“脂本”两种版本系统。新版通行本前八十回据脂本汇校,后四十回据程本汇校,署名“曹雪芹著,无名氏续,程伟元、高鹗整理”。

红楼梦中人物众多,而且人物关系复杂,常规方法梳理起来复杂而且杂乱,非常适合基于知识图谱技术构建红楼梦人物关系。

构建知识图谱,需要进行本体构建—信息抽取——知识融合。

在红楼梦中,主要需要解决人物关系。所以本体只需要人物与人物关系,其它本体暂不考虑。

信息抽取是其中难点。由于现有很多语言处理是基于现代语言进行建模的,而 红楼梦是文言文小说,所以现有语言模型可能会不太适用,所以可以使用bert语言模型,进行二次建模来处理红楼梦实体抽取,关系抽取。其中选取deepke作为框架,利用其中ner与re作为技术手段进行建模。

DeepKE包含命名实体识别、关系抽取和属性抽取三个模块,分别是三个任务。每个模块都有自己的子模块。例如,关系抽取模块中有标准的、少样本、文档级和多模态子模块。每个子模块由三部分组成:一组可用作​tokenizer​的工具、数据加载器、训练和预测时使用编码的一种处理模块。

实体抽取
进入对于案例使用文件夹路径,cd DeepKE/example/ner/standard,然后配置该案例运行所需要的包。根据deepke文档中的案例,创建python3.8的环境:conda create -n deepke python=3.8,然后激活conda activate deepke。安装依赖包:pip install -r requirments.txt。

第二步:获取标准的样例数据,通过wget 120.27.214.45/Data/ner/standard/data.tar.gz下载,然后tar -xzvf data.tar.gz解压,数据集和参数可以分别在data文件夹和conf文件夹中自定义。Dataset需要输入的是txt文本类型数据,文件数据格式需符合以下要求:

当下茶果已撤,贾母命两个老嬷嬷带了黛玉去见两个母舅。

OOOOOOO,B-PER I-PER O O O O O O O B-PER I-PER O O O O OO 

将对应的数据放到模型训练,执行python run.py即开始训练。

关系抽取

构建样本数据示例如下

"head","tail","relation","label"
"贾代善","贾源","son","子"
"娄氏","贾源","daughter_in_law_of_grandson","重孙媳妇"
"贾母","贾代善","wife","妻"
"老姨奶奶","贾代善","concubine","妾"
"贾敏","贾代善","daughter","女"
"嫣红","贾赦","concubine","妾"
"翠云","贾赦","concubine","妾"
"娇红","贾赦","concubine","妾"
"贾迎春","贾赦","daughter","女"
"赵姨娘","贾政","concubine","妾"
"周姨娘","贾政","concubine","妾"
 

导入到neo4j结果如下所示

<think>好的,用户想了解如何使用DeepKE构建知识图谱。首先,我需要整理DeepKE的基本信息和功能。根据提供的引用,DeepKE是一个支持中文的开源知识抽取工具,能够进行命名实体识别(NER)、关系抽取(RE)和属性抽取(AE)。它适用于不同场景,包括标准全监督、低资源和文档级任务。 接下来,用户需要具体的步骤和方法。引用4提到了基于DeepKE构建红楼梦知识图谱的案例,其中涉及实体抽取的步骤。应该分阶段说明构建过程,从环境配置到具体应用。可能需要包括安装依赖、数据准备、模型训练和预测等步骤。 需要确保回答结构清晰,分点说明。首先介绍DeepKE的功能,然后详细步骤,最后应用案例和优化建议。同时,根据用户提供的引用,特别是引用3和4,要整合环境配置、数据处理的细节,以及不同任务(NER、RE、AE)的具体操作方法。 还要注意引用标注,在适当的地方添加引用标识,比如在介绍DeepKE功能时引用[^3],在环境配置步骤引用[^4]。同时,生成的相关问题要围绕使用DeepKE的扩展,比如优化方法、处理低资源数据等,确保问题与用户需求相关。 最后,检查是否符合系统级指令,如使用正确的中文回答,数学公式格式正确,代码块用正确语法标注,并生成相关问题。确保回答真实可靠,引用正确来源。</think>### 使用DeepKE构建知识图谱的方法与教程 DeepKE是一个基于深度学习的开源框架,专注于中文知识图谱构建,支持命名实体识别(NER)、关系抽取(RE)和属性抽取(AE)三大核心任务[^3]。以下是分步骤的构建方法: --- #### **1. 环境配置与安装** - **创建虚拟环境**:推荐使用Python 3.8,避免依赖冲突。 ```bash conda create -n deepke python=3.8 conda activate deepke ``` - **安装依赖**: ```bash git clone https://gitcode.com/gh_mirrors/de/DeepKE # 克隆仓库 cd DeepKE pip install -r requirements.txt # 安装依赖包 ``` --- #### **2. 数据准备** - **命名实体识别(NER)**:需准备标注实体(如人名、地名)的文本文件,格式为`文本\t实体类型`。 - **关系抽取(RE)**:数据需包含实体对及其关系,例如`[实体1, 实体2, 关系]`。 - **属性抽取(AE)**:需定义属性类别(如`出生地`、`职业`)及对应实体属性值。 DeepKE提供统一的数据处理模块(`Data`部分),支持从原始数据到模型输入的转换,包括分词(Tokenizer)、预处理(Preprocessor)和加载(Loader)[^3]。 --- #### **3. 模型训练与调优** - **任务选择**:进入对应案例目录,例如命名实体识别任务: ```bash cd example/ner/standard ``` - **配置文件修改**:根据任务调整`conf`目录下的参数(如学习率、批次大小)。 - **启动训练**: ```bash python run.py # 默认使用BERT等预训练模型 ``` - **低资源场景优化**:若数据量少,可使用`few-shot`模式,通过小样本学习提升效果。 --- #### **4. 知识图谱构建流程** 1. **实体抽取**:从非结构化文本中识别实体(如《红楼梦》中的人物)。 2. **关系链接**:建立实体间的语义关系(如`贾宝玉-妻子-林黛玉`)。 3. **属性填充**:补充实体的详细信息(如`林黛玉-居住地-潇湘馆`)。 4. **图谱存储**:将三元组存入图数据库(如Neo4j)或RDF格式文件。 --- #### **5. 应用案例:红楼梦知识图谱** - **步骤**: 1. 使用`example/ner/standard`中的代码抽取实体。 2. 通过关系抽取模块建立人物关系网络。 3. 结合属性抽取补充角色背景信息。 - **可视化工具**:可利用KGTK(Knowledge Graph Toolkit)进行图谱展示与分析[^2]。 --- #### **6. 优化与扩展** - **性能提升**:引入预训练模型(如RoBERTa)、数据增强或主动学习。 - **多模态支持**:结合文本与结构化表格数据(参考KGTK的表格理解模块)[^2]。 - **领域迁移**:通过微调模型适配医疗、金融等垂直领域。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值