知识图谱作业代码,包含数据预处理与转换、模型训练、结果评估等
立即下载
资源介绍:
知识图谱作业代码,包含数据预处理与转换、模型训练、结果评估等
# **知识图谱作业**
### Introduction
本文研究重点是通过结合BERT和Spacy模型进行实体链接优化,利用Neo4j和PostgreSQL数据库实现高效的实体识别与链接。研究的核心步骤包括提及检测、候选生成和实体消歧,目标是实现高召回率和高精确率的实体链接系统。
**本实验的数据集为北京大学研制的中文RDF语义知识库PKUBase(对应的图数据库有25,574,415实体/数值、408,670关系/属性和66,499,409三元组)和课程KBQA数据集(训练、验证、测试:2,297、765、765,共3827条问答记录)**
### Usage
#### **Environment Installation**
在项目的根目录下打开终端运行:
```python
conda create --name neo4j --file requirements.txt
```
或者自行创建环境后导入所需的库:
```python
conda install --yes --file requirements.txt
```
#### 1. Data preprocessing
运行***1_Preprocessing_And_Generate _Data.ipynb*** 文件,进行数据预处理得到导入neo4j的数据文件(nodes.csv和relationships.csv)
运行***6_Import_Vectorized_Data_to_PostgreSQL.ipynb***文件,将清洗好的数据进行向量化处理导入Postgresql(需要先安装好pgvector插件)
#### 2. Model Training
本实验使用BERT和spacy模型进行微调训练,运行***2_BERT_Fine-tuning.ipynb*** 和***3_spaCy_Fine-tuning.ipynb***可以得到微调训练好的模型,代码块中包含转换数据为模型训练的格式以及训练模型输出相关的评价指标(准确率、召回率和F1值)
#### 3. Entity Linking
将数据导入neo4j数据库中后,通过运行***4_Entity_Linking_Based_on_Fine-tuned_BERT.ipynb***文件,调用训练好的BERT进行实体链接并输出宏指标和微指标;同样的运行***5_Entity_Linking_Based_on_Fine-tuned_BERT_and_spaCy.ipynb***,调用训练好的BERT和spaCy进行实体链接并输出宏指标和微指标。
将数据导入Postgresql并创建好索引后,运行***7_Based_on_PostgreSQL_and_BERT_And_spaCy_model_for_entity_linking.ipynb***或者***8_Based_on_PostgreSQL_and_BERT_And_spaCy_model_for_entity_linking.ipynb***都可以进行实体链接的测试并得出相关的评价指标。