• Stars
    star
    1,449
  • Rank 32,472 (Top 0.7 %)
  • Language
    Python
  • License
    MIT License
  • Created over 5 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于知识图谱的问答系统,BERT做命名实体识别和句子相似度,分为online和outline模式

KBQA-BERT

基于知识图谱的问答系统,BERT做命名实体识别和句子相似度,分为online和outline模式

Introduction

本项目主要由两个重要的点组成,一是基于BERT的命名实体识别,二是基于BERT的句子相似度计算,本项目将这两个模块进行融合,构建基于BERT的KBQA问答系统,在命名实体识别上分为online predict和outline predict;在句子相似度上,也分为online predict和outline predict,2个模块互不干扰,做到了高内聚低耦合的效果,最后的kbqa相当于融合这2个模块进行outline predict,具体介绍请见我的知乎专栏

------------------------------------------- 2019/6/15 更新 ----------------------------------------

把过去一段时间同学们遇到的主要问题汇总一下,下面是一些FAQ:

Q: 运行run_ner.py时未找到dev.txt,请问这个文件是怎么生成的呢?
A: 这一部分我记得当初是没有足够多的数据,我把生成的test.txt copy, 改成dev.txt了。

Q: 你好,我下载了你的项目,但在运行run_ner的时候总是会卡在Saving checkpoint 0 to....这里,请问是什么原因呢?
A: ner部分是存在一些问题,我也没有解决,但是我没有遇到这种情况。微调bert大概需要12GB左右的显存,大家可以把batch_size和max_length调小一点,说不定会解决这个问题!。

Q: 该项目有没有相应的论文呢?
A: 回答是肯定的,有的,送上 论文传送门!

Q: 数据下载失败,不满足现有数据?
A: 数据在Data中,更多的数据在NLPCC2016NLPCC2017

PS:这个项目有很多需要提高的地方,如果大家有好点子,欢迎pull,感谢!这段时间发论文找工作比较忙,邮件和issue没有及时回复望见谅!

------------------------------------------- 2019/6/15 更新 ----------------------------------------

环境配置

Python版本为3.6
tensorflow版本为1.13
XAMPP版本为3.3.2
Navicat Premium12

目录说明

bert文件夹是google官方下载的
Data文件夹存放原始数据和处理好的数据
    construct_dataset.py  生成NER_Data的数据
    construct_dataset_attribute.py  生成Sim_Data的数据
    triple_clean.py  生成三元组数据
    load_dbdata.py  将数据导入mysql db
ModelParams文件夹需要下载BERT的中文配置文件:chinese_L-12_H-768_A-12
Output文件夹存放输出的数据

基于BERT的命名实体识别模块
- lstm_crf_layer.py
- run_ner.py
- tf_metrics.py
- conlleval.py
- conlleval.pl
- run_ner.sh

基于BERT的句子相似度计算模块
- args.py
- run_similarity.py

KBQA模块
- terminal_predict.py
- terminal_ner.sh
- kbqa_test.py

使用说明

- run_ner.sh
NER训练和调参

- terminal_ner.sh
do_predict_online=True  NER线上预测
do_predict_outline=True  NER线下预测

- args.py
train = True  预训练模型
test = True  SIM线上测试

- run_similarity.py
python run一下就可以啦

- kbqa_test.py
基于KB的问答测试

实验分析

NER图

kb图

Cite
如果你在研究中使用了KBQA-BERT,请按如下格式引用:

@software{KBQA-BERT,
  author = {ZhengWen Xie},
  title = {KBQA-BERT: Knowledge Base Question Answering based BERT},
  year = {2019},
  url = {https://github.com/WenRichard/KBQA-BERT},
}

如果觉得我的工作对您有帮助,请不要吝啬右上角的小星星哦!欢迎Fork和Star!也欢迎一起建设这个项目!
有时间就会更新问答相关项目,有兴趣的同学可以follow一下
留言请在Issues或者email [email protected]

More Repositories

1

QAmodel-for-Retrievalchatbot

客服机器人,Chinese Retreival chatbot(中文检索式机器人)用到的一些QA模型,基于tf-idf,lsa,cnn,transformer,bert等
Python
438
star
2

Customer-Chatbot

中文智能客服机器人demo,包含闲聊和专业问答2个部分,支持自定义组件(Chinese intelligent customer chatbot Demo, including the gossip and the professional Q&A(FAQ) , support for custom components!)
Python
308
star
3

DIAC2019-Adversarial-Attack-Share

DIAC2019基于Adversarial Attack的问题等价性判别比赛
81
star
4

NER-FunTool

本NER项目包含多个中文数据集,模型采用BiLSTM+CRF、BERT+Softmax、BERT+Cascade、BERT+WOL等,最后用TFServing进行模型部署,线上推理和线下推理。
Python
78
star
5

KBQA-Exploration

知识图谱初探,关系抽取,实体抽取,基于kb的问答,基于es的问答,知识图谱可视化
Python
60
star
6

CNN-in-Answer-selection

WikiQA,复现论文《APPLYING DEEP LEARNING TO ANSWER SELECTION: A STUDY AND AN OPEN TASK》
Python
28
star
7

Light_SimMatch

面向中文领域的轻量文本匹配框架,集成文本匹配,文本蕴含,释义识别等领域的各个经典,STA模型
25
star
8

Event_Identification_NER_Classfication

互联网舆情企业风险事件的识别和预警,将公司名称进行实体提取,对新闻进行舆情分类,比赛地址为:http://ailab.aiwin.org.cn/competitions/48#learn_the_details
Python
16
star
9

ELMO-NLP

ELMO在QA问答,文本分类等NLP上面的应用
Python
15
star
10

man_qa

WikiQA,复现论文《Multihop Atention Networks for Qestion Answer Matching》
Python
11
star
11

compare-aggregate

复现《A Compare-Aggregate Model for Matching Text Sequences》论文 via Tensorflow
Python
8
star
12

Hmm-CRF

隐马尔科夫模型前向,后向,维特比算法实现,sklearn版的crf实现
Python
5
star
13

EntityCorrect_Tool

利用actrie树进行句子实体纠错和标准实体抽取,实体纠错:找商银行 -> 招商银行;实体标准化,招行 -> 招商银行
Python
4
star
14

Pandas-exploration

Pandas分析数据,可视化
Python
4
star
15

Attention-over-Attention

Attention-over-Attention模型实现
Python
3
star
16

NLP_Learning

分享学习过程中看到的有趣的资源
2
star
17

Seq2Seq_Char

Basic Seq2seq
Python
1
star
18

MPCNN

CNN在句子相似性建模的应用,“Multi-Perspective Sentence Similarity Modeling with Convolution Neural Networks”这篇论文的tensorflow实现
Python
1
star
19

Intelligent-Furniture-FAQ

智能家居FAQ部分(FAQ of Intelligent-Furniture)
Python
1
star