前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于bert的中文语义匹配模型,判断两句话是不是同一个意思

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

作者头像
机器学习AI算法工程
发布2019-10-28 16:24:22
2.4K0
发布2019-10-28 16:24:22
举报
日趋增多的网络信息使用户很难迅速从搜索引擎返回的大量信息中找到所需内容。自动问答系统为人们提供了以自然语言提问的交流方式,为用户直接返回所需的答案而不是相关的网页,具有方便、快捷、高效等特点。 Process:本文的问答系统采用了一个FAQ(Frequently Asked Questions)问答库,并基于句子相似度进行设计。 1)首先建立一个足够大的问题答案库,即语料库--------建库 2)然后计算用户提问的问题和语料库中各个问题的相似度-------计算相似度-------余弦定理 3)最后把相似度较高的问题所对应的答案返回给用户。-------返回结果

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

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

了解更多

https://blog.csdn.net/fkyyly/article/details/86016703

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

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

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

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

训练过程

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档