基于Siamese Network进行问题句子相似性判定

简介: 基于Siamese Network进行问题句子相似性判定

sentence-similarity


问题句子相似度计算,即给定客服里用户描述的两句话,用算法来判断是否表示了相同的语义。

项目地址:https://github.com/yanqiangmiffy/sentence-similarity


句子相似度判定


今年和去年前后相继出现了多个关于句子相似度判定的比赛,即得定两个句子,用算法判断是否表示了相同的语义或者意思。

其中第4、5这个2个比赛数据集格式比较像,请见sent_match,,2、3 的数据集格式比较像,本仓库基于2、3数据集做实验


下面是比赛的列表:


The goal of this competition is to predict which of the provided pairs of questions contain two questions with the same meaning.

数据集未经过脱敏处理,用真实的英文单词标识



问题相似度计算,即给定客服里用户描述的两句话,用算法来判断是否表示了相同的语义。

数据集未经过脱敏处理

示例:

  1. “花呗如何还款” --“花呗怎么还款”:同义问句
  2. “花呗如何还款” -- “我怎么还我的花被呢”:同义问句
  3. “花呗分期后逾期了如何还款”-- “花呗分期后逾期了哪里还款”:非同义问句
    对于例子a,比较简单的方法就可以判定同义;对于例子b,包含了错别字、同义词、词序变换等问题,两个句子乍一看并不类似,想正确判断比较有挑战;对于例子c,两句> 话很类似,仅仅有一处细微的差别 “如何”和“哪里”,就导致语义不一致。"""



与基于Quora的的的语义等价判别相同,本次评测任务的主要目标是针对中文的真实客服语料,进行问句意图匹配。集给定两个语句,要求判定两者意图是否相同或者相近。所有语料来自原始的银行领域智能客服日志,并经过了筛选和人工的意图匹配标注。

数据集经过脱敏处理

输入:一般几天能通过审核\ t一般审核通过要多久

输出:1



本次评测任务的主要目标是针对中文的真实患者健康咨询语料,进行问句意图匹配。给定两个语句,要求判定两者意图是否相同或者相近。所有语料来自互联网上患者真实> 的问题,并经过了筛选和人工的意图匹配标注。平安云将为报名的队伍提供GPU的训练环境。


数据集经过脱敏处理,问题由数字标示

训练集包含20000条左右标注好的数据(经过脱敏处理,包含标点符号),供参赛人员进行训练和测试。 测试集包含10000条左右无label的数据(经过脱敏处理,包含标点> 符号)。选手需要对测试集数据的label进行预测并提交。测试集数据作为AB榜的评测依据。



智能客服聊天机器人场景中,待客户提出问题后,往往需要先计算客户提出问题与知识库问题的相似度,进而定位最相似问题,再对问题给出答案。本次比赛的题目便是问 > 题相似度算法设计。

数据集经过脱敏处理,问题由数字标示

为保护用户隐私并保证比赛的公平公正,所有原始文本信息都被编码成单字ID序列和词语ID序列。单字包含单个汉字、英文字母、标点及空格等;词语包含切词后的中> 文词语、英文单词、标点及空格等。单字ID和词语ID存在于两个不同的命名空间,即词语中的单字词或者标点,和单字中的相同字符及相同标点不一定有同一个ID。其> > 中,单字序列以L开头,词语序列以W开头。


Siamese Network


MaLSTM’s architecture — Similar color means the weights are shared between the same-colored elements


21.png


  • 词向量是基于字符级别的,在我印象里一般是字符级的效果比较好
  • LSTM训练出来两个问题的语义向量,然后再给相似度函数MaLSTM similarity function


def exponent_neg_manhattan_distance(sent_left, sent_right):
    '''基于曼哈顿空间距离计算两个字符串语义空间表示相似度计算'''
    return K.exp(-K.sum(K.abs(sent_left - sent_right), axis=1, keepdims=True))


我们仔细看下这个函数的输出是0-1,也就是我们预测概率


  • 训练结果:

在ccks任务上:acc: 0.8372 - val_loss: 0.4316 - val_acc: 0.8047


22.png


在atec任务上:loss: 0.3302 - acc: 0.8570 - val_loss: 0.5244 - val_acc: 0.7702


23.png


更多资料


  1. How to predict Quora Question Pairs using Siamese Manhattan LSTM
  2. nlp中文本相似度计算问题
  3. 语义相似度计算各种算法实现汇总
  4. 距离度量以及python实现(一)
  5. 从Kaggle赛题: Quora Question Pairs 看文本相似性/相关性
相关文章
|
5月前
|
自然语言处理 区块链 Python
传统的序列模型CRF与HMM区别
传统的序列模型CRF与HMM区别
|
5月前
【论文速递】ICLR2018 - 用于小样本语义分割的条件网络
【论文速递】ICLR2018 - 用于小样本语义分割的条件网络
71 0
|
机器学习/深度学习 编解码 PyTorch
DenseNet的应用--语义分割--(DenseASPP )
转载自:https://blog.csdn.net/u011974639 DenseASPP DenseASPP for Semantic Segmentation in Street Scenes 原文地址:DenseASPP 收录:CVPR2018(IEEE Conference on Computer Vision and Pattern Recognition) 代码: PyTorch 简介: 将DeepLab系列中的ASPP和DenseNet中的密集连接相结合,构成了DenseASPP。
5332 1
|
2月前
|
算法
HanLP — HMM隐马尔可夫模型 -- 训练
HanLP — HMM隐马尔可夫模型 -- 训练
27 0
HanLP — HMM隐马尔可夫模型 -- 训练
|
2月前
HanLP — HMM隐马尔可夫模型 -- 训练--归一化,计算概率
HanLP — HMM隐马尔可夫模型 -- 训练--归一化,计算概率
42 0
|
2月前
|
自然语言处理
HanLP — HMM隐马尔可夫模型 -- 语料库
HanLP — HMM隐马尔可夫模型 -- 语料库
33 0
|
5月前
|
机器学习/深度学习 编解码 数据可视化
【论文精选】TPAMI2020 - PFENet_先验引导的特征富集网络_小样本语义分割
【论文精选】TPAMI2020 - PFENet_先验引导的特征富集网络_小样本语义分割
|
机器学习/深度学习 文字识别 监控
使用 HOG 功能和多类 SVM 分类器对数字进行分类
使用 HOG 功能和多类 SVM 分类器对数字进行分类。
123 0
|
机器学习/深度学习 编解码 人工智能
NeuraIPS 2022 | 最新类别感知对抗Transformer分割网络CASTformer
NeuraIPS 2022 | 最新类别感知对抗Transformer分割网络CASTformer
246 0
|
机器学习/深度学习 文字识别 算法
深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测
深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测