日趋增多的网络信息使用户很难迅速从搜索引擎返回的大量信息中找到所需内容。自动问答系统为人们提供了以自然语言提问的交流方式,为用户直接返回所需的答案而不是相关的网页,具有方便、快捷、高效等特点。

本文的核心是句子相似度的计算,可以使用TF-IDF和word2vec两种方法对问句进行向量化,并在此基础上使用进行句子相似度的计算。

也可以利用深度学习模型做句子配对,即给定用户描述的两句话,用算法来判断是否表示了相同的语义。若语义相同则判断为1,不相同则为0.

了解更多


基于bert的中文语义匹配模型,判断两句话是不是同一个意思_数据集

如果能够找到相应的问题,就可以直接将问题所对应的答案返回给用户,而不需要经过问题理解、信息检索、答案抽取等许多复杂的处理过程,提高了效率。FAQ(Frequently Asked Questions)系统在根据用户问题建立候选问题集的基础上,建立常问问题集的倒排索引,提高了系统的检索效率,同时,与传统的基于关键词的方法相比,用基于语义的方法计算相似度提高了问题的匹配精度。

FAQ问答系统是一种已有的“问题-答案”对集合中找到与用户提问相匹配的问句,并将其对应的答案返回给用户的问答式检索系统。由于FAQ问答系统免去了重新组织答案的过程,可以提高系统的效率,还可以提高答案的准确性。这其中要解决的一个关键问题是用户问句与“问题-答案”对集合中问句的相似度比较,并把最佳结果返回给用户。

利用预训练的中文模型实现基于bert的语义匹配模型

数据集为LCQMC官方数据、代码下载地址

AI项目体验地址 https://loveai.tech

训练脚本 train.sh

批量测试脚本 predict.sh

利用模型进行单条语句测试 intent.py

chinese_L-12_H-768_A-12为预训练的相关模型和词典

下载地址

https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip

下载后解压,放在项目根目录

data文件夹中为训练语料,验证语料,测试语料 数据集为LCQMC官方数据

参数说明:max_seq_length  sentence的最大长度(字) train_batch_size  batch_size的大小

max_seq_length = 50 

eval_accuracy = 0.87207 

test_accuracy = 0.86272

max_seq_length = 40 

eval_accuracy = 0.88093615 

test_accuracy = 0.86256

训练过程

基于bert的中文语义匹配模型,判断两句话是不是同一个意思_相似度_02



阅读过本文的人还看了以下:

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

基于bert的中文语义匹配模型,判断两句话是不是同一个意思_数据集_03

长按图片,识别二维码,点关注

AI项目体验

https://loveai.tech

基于bert的中文语义匹配模型,判断两句话是不是同一个意思_相似度_04