NLP系列(二)基于Siamese Network进行问题句子相似性判定

 

原创致GreatChallengeHub

sentence-similarity

问题句子相似度计算,即给定客服里用户描述的两句话,用算法来判断是否表示了相同的语义。 项目地址:https://github.com/yanqiangmiffy/sentence-similarity,欢迎大家star

句子相似度判定

今年和去年前后相继出现了多个关于句子相似度判定的比赛,即得定两个句子,用算法判断是否表示了相同的语义或者意思。 其中第4、5这个2个比赛数据集格式比较像,请见 sent_match,,2、3 的数据集格式比较像,本仓库基于2、3数据集做实验

下面是比赛的列表:

  • 1 Quora Question Pairs

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

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

  • 2 ATEC学习赛:NLP之问题相似度计算

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

数据集未经过脱敏处理 示例:

  1.  

  2. “花呗如何还款” --“花呗怎么还款”:同义问句

  3.  

  4. “花呗如何还款” -- “我怎么还我的花被呢”:同义问句

  5.  

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

  7.  

  • 3 CCKS 2018 微众银行智能客服问句匹配大赛

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

数据集经过脱敏处理 输入:一般几天能通过审核\ t一般审核通过要多久 输出:1

  • 4 CHIP 2018-第四届中国健康信息处理会议(CHIP)

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

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

  • 5 第三届魔镜杯大赛

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

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

Siamese Network

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

图片

  • 词向量是基于字符级别的,在我印象里一般是字符级的效果比较好

  • 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

图片

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

 

图片

更多资料

  1. How to predict Quora Question Pairs using Siamese Manhattan LSTM

  2. nlp中文本相似度计算问题

  3. 语义相似度计算各种算法实现汇总

  4. 距离度量以及python实现(一)

  5. 从Kaggle赛题: Quora Question Pairs 看文本相似性/相关性

 

欢迎关注ChallengeHub公众号

 

欢迎加入学习交流群

 

阅读原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值