项目简介
本项目是基于BERT(Bidirectional Encoder Representations from Transformers)的KBQA(基于知识图谱的问答系统)系统。借助BERT模型开展文本的命名实体识别与句子相似度计算,以此构建基于知识图谱的问答系统。其中,命名实体识别和句子相似度计算都分为线上与线下预测,让系统具备高内聚低耦合的特性。
项目的主要特性和功能
- 基于BERT的命名实体识别:利用BERT模型开展命名实体识别,将线上和线下预测分离,提升了系统的灵活性与准确性。
- 基于BERT的句子相似度计算:运用BERT模型计算句子间的相似度,同样有线上和线下预测,达成了高内聚低耦合的设计。
- KBQA问答系统:把命名实体识别和句子相似度计算模块融合,构建基于知识图谱的问答系统,为用户提供精准答案。
- 数据预处理:对原始数据进行清洗和格式化,生成适合模型训练的数据集。
- 模型训练和评估:采用TensorFlow框架训练模型并进行评估,保障模型性能。
安装使用步骤
环境配置
- 安装Python 3.6。
- 安装TensorFlow 1.13。
- 安装XAMPP 3.3.2。
- 安装Navicat Premium 12。
数据准备
- 下载BERT的中文配置文件:
chinese_L-12_H-768_A-12
。 - 准备原始数据并存放在
Data
文件夹中。 - 运行
construct_dataset.py
生成NER数据。 - 运行
construct_dataset_attribute.py
生成句子相似度数据。 - 运行
triple_clean.py
生成三元组数据。 - 运行
load_dbdata.py
将数据导入MySQL数据库。
模型训练
- 运行
run_ner.sh
进行命名实体识别模型的训练和调参。 - 运行
run_similarity.py
进行句子相似度计算模型的训练。
系统构建
整合命名实体识别和句子相似度计算模块,构建基于BERT的KBQA问答系统。
系统测试
使用kbqa_test.py
进行系统的测试,确保系统的准确性和稳定性。
注意:项目代码需要在具有足够计算资源的环境下运行,特别是进行模型训练时,可能需要GPU支持。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】