本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。
一、项目描述
基于 BERT 模型的知识图谱问答系统
KBQA-BERT 是基于 BERT 模型的知识图谱问答系统,通过命名实体识别(NER)从用户问题中抽取实体,再利用属性相似度匹配(SIM)从 MySQL 知识库中检索对应答案,实现自然语言问答。
登录网址
http://127.0.0.1:5000
二、项目功能
自然语言提问:输入中文问题即可获取答案
NER 实体识别:自动识别问题中的人名、地名、书名等实体
多级属性匹配:精确子串匹配 → 同义词匹配 → 关键词匹配 → 部分匹配 → SIM 语义匹配
属性同义词扩展:”作者”映射”编剧/原著”、”出生地”映射”籍贯”等 16 组
SIM 低分过滤:语义匹配分数低于 0.3 时提示不匹配,避免错误答案
一键复制答案:答案右上角”复制”按钮
问答历史记录:自动保存最近 50 条,点击可重新提问,支持清空
三、运行环境
Windows 10/11,Python 3.x,MySQL 5.7+,TensorFlow 2.21
四、项目技术
前端:HTML5 + CSS3 + 原生 JavaScript(localStorage 存储历史、Clipboard API 复制) 后端:Flask 3.1 + MySQL(PyMySQL) AI:TensorFlow 2.21(tf.compat.v1 模式),BERT 预训练模型(中文哈工大 wwm-ext L-12 H-768 A-12),BiLSTM-CRF 序列标注(NER),句子对相似度模型(SIM) 数据流:用户问题 → BERT Tokenizer → BiLSTM-CRF 标注实体 → 分级查询 MySQL 三元组 → 多级属性匹配打分 → 返回答案实体与匹配方式
以上系统源码经过技术整理与调试,确保能正常运行
五、项目截图