littlebot
Published on 2025-04-10 / 1 Visits
0

【源码】基于BERT的KBQA问答系统

项目简介

本项目是基于BERT(Bidirectional Encoder Representations from Transformers)的KBQA(基于知识图谱的问答系统)系统。借助BERT模型开展文本的命名实体识别与句子相似度计算,以此构建基于知识图谱的问答系统。其中,命名实体识别和句子相似度计算都分为线上与线下预测,让系统具备高内聚低耦合的特性。

项目的主要特性和功能

  1. 基于BERT的命名实体识别:利用BERT模型开展命名实体识别,将线上和线下预测分离,提升了系统的灵活性与准确性。
  2. 基于BERT的句子相似度计算:运用BERT模型计算句子间的相似度,同样有线上和线下预测,达成了高内聚低耦合的设计。
  3. KBQA问答系统:把命名实体识别和句子相似度计算模块融合,构建基于知识图谱的问答系统,为用户提供精准答案。
  4. 数据预处理:对原始数据进行清洗和格式化,生成适合模型训练的数据集。
  5. 模型训练和评估:采用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】