[[NLP]基于Simaese LSTM的句子相似度计算

update 20181105

很多读者反应代码运行出现问题,总结起来基本上都集中在keras和gensim的版本问题。一个是本文keras版本是2.1.6,Merge层在2.2.0后被弃用,改用keras.layers.Add()和keras.layers.Concatennate()。二是gensim中word2vec模型加载有问题。
下文一并进行更改,感谢各位的邮件和评论。


句子相似度计算在问答系统以及客服机器人当中应用比较频繁,比对针对对话模型中比较频繁的问句可以先进行过滤,之后再进行对话理解。在文本检测方面也有所应用,比如作家写作风格的检测。

本文叙述的句子相似度计算方法来自论文Siamese Recurrent Architectures for Learning Sentence Similarity,论文是基于Simaese LSTM网络对成对相似句进行训练,通过encode得到句子的向量表示之后计算曼哈顿距离(0-1之间)。

模型结构如下:
这里写图片描述

从上图可以看到模型分为a、b两个LSTM网络,分别对待测的两个句子进行encode得到待测句子的表示向量,最后将得到的两个向量进行距离计算,这里采用的是曼哈顿距离。

可以看到其实模型很简单,下面本文就尝试着实现一个这样的模型。

语料预处理

本文使用的数据都是编造的,长下面这样:

你们这个卡的号码要咋看
这个号码是经常变动的么
那下次再用号码会变吗
手机会显示电话号码吗
我这个卡的号码在哪里看
我怎么查我的卡的号码
怎么才能知道电话号码是什么呢
怎么看卡的电话号码
卡的电话号码应该怎么看呢
卡的电话号码在哪里可以查到呢
在哪里可以看到电话号码
卡的电话号码如何查询
卡的电话号码怎么才能知道
我买的电话卡号码怎么知道
我
  • 12
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 87
    评论
本课程隶属于自然语言处理(NLP)实战系列。自然语言处理(NLP)是数据科学里的一个分支,它的主要覆盖的内容是:以一种智能与高效的方式,对文本数据进行系统化分析、理解与信息提取的过程。通过使用NLP以及它的组件,我们可以管理非常大块的文本数据,或者执行大量的自动化任务,并且解决各式各样的问题,如自动摘要,机器翻译,命名实体识别,关系提取,情感分析,语音识别,以及主题分割等等。一般情况下一个初级NLP工程师的工资从15万-35万不等,所以掌握NLP技术,对于人工智能学习者来讲是非常关键的一个环节。【超实用课程内容】 课程从自然语言处理的基本概念与基本任务出发,对目前主流的自然语言处理应用进行全面细致的讲解,包括文本分类,文本摘要提取,文本相似度,文本情感分析,文本特征提取等,同时算法方面包括经典算法与深度学习算法的结合,例如LSTM,BiLSTM等,并结合京东电商评论分类、豆瓣电影摘要提取、今日头条舆情挖掘、饿了么情感分析等过个案例,帮助大家熟悉自然语言处理工程师在工作中会接触到的常见应用的实施的基本实施流程,从0-1入门变成自然语言处理研发工程师。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/25649 移动端:CSDN 学院APP(注意不是CSDN APP哦)本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~【学员专享增值服务】 源码开放课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化下载方式:电脑登录https://edu.csdn.net/course/detail/25649,点击右下方课程资料、代码、课件等打包下载通过第二课时下载材料
评论 87
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值