# SiameseSentenceSimilarity
SiameseSentenceSimilarity,个人实现的基于Siamese bilstm模型的相似句子判定模型,提供训练数据集和测试数据集.
# 项目介绍
句子相似度计算是自然语言处理中的一个重要技术手段,主要有两种方法:
1, 基于传统的无监督方式,传统的用于计算句子相似度的方式有很多种,感兴趣的,可以参考我的基于传统方法的句子相似读计算项目:
https://github.com/liuhuanyong/SentenceSimilarity
2, 基于标注数据的句子相似度计算.这个思想大体是将句子相似度计算问题转换成一个相似句子类型判定问题,目前经典的方法是Siamese网络,这是本项目的一个初衷.
# 数据
数据集主要来源于CCKS2018评测项目微众银行客户问句匹配大赛, 总数据集大小为十万条.数据集样式如下:
'''
怎么我开不了微利貸 怎么开不了户 录制不了 提示上传失败 0
亲为什么我的审批不通过的 为什么还款及时会提示综合评估未通过 1
你好,我借款的验证码发到我以前用的那个手机号码了,我该怎么设置呢 手机号码换了 1
“如何获得微粒贷资格” 为什么没微粒贷啊 1
为什么没接到电话 两天了,怎么还没有给我打电话审核? 1
我的电话已改为 绑定的手机号码能不能更改 1
借贷下来时间 10月国庆期间能借钱不 0
什么时候才邀请? 什么时候才能申请 1
上边可借56000元为什么申请不成功 为什么可借一万五,却借不出来 1
1万利息是多少 10个月利息多少 1
没经过审批 如何能通过微众银行审批要求 1
延期3天还款收取逾期利息是多少? 14号还款日,逾期两天手续费是多少? 1
申请的额度能取现吗 取现一次性取完可以吗 0
利息与罚息如何计算 咱这个利息多高啊 1
如何申请货款 怎样开通我微粒贷 1
多久才有贷款 凌晨以后的申请何时到账 1
你好 我要换卡怎么换 我卡掉了 换卡失败 0
'''
# 模型
模型思想:采用典型的siamese网络,两个句子分成左右两个部分进行输入,使用了四层双向lstm(权重共享)进行网络编码,最后计算两个编码之间的距离,最后做预测分类:
一 , 编码层:使用两个双向LSTM进行编码,权重共享
'''搭建编码层网络,用于权重共享'''
def create_base_network(self, input_shape):
input = Input(shape=input_shape)
lstm1 = Bidirectional(LSTM(128, return_sequences=True))(input)
lstm1 = Dropout(0.5)(lstm1)
lstm2 = Bidirectional(LSTM(32))(lstm1)
lstm2 = Dropout(0.5)(lstm2)
return Model(input, lstm2)
二, 左右句子编码相似度计算
'''基于曼哈顿空间距离计算两个字符串语义空间表示相似度计算'''
def exponent_neg_manhattan_distance(self, sent_left, sent_right):
return K.exp(-K.sum(K.abs(sent_left - sent_right), axis=1, keepdims=True))
# 训练
| 模型 | 训练集 | 测试集 |训练集准确率 |测试集准确率 |备注|
| :--- | :---: | :---: | :--- |:--- |:--- |
| 问句匹配 | 80000 | 20000| 0.8125|0.7956|20个epcho|
# 总结
1,句子相似度计算是自然语言处理中的一个重要技术手段,本文简单实现了simamese相似度计算网络.
2,通过LSTM编码,曼哈顿距离作为相似读衡量的网络,在训练集上达到了0.81,测试集达到0.7956的准确率.
3,目前关于相似度计算的网络有很多,本项目是一个基础,后期将逐步学习,尝试其他网络.
4,将传统的相似度计算方式和深度学习网络进行融合,或许是可以做的一个点.
# contact
如有自然语言处理、知识图谱、事理图谱、社会计算、语言资源建设等问题或合作,请联系我:
邮箱:lhy_in_blcu@126.com
csdn:https://blog.csdn.net/lhy2014
我的自然语言处理项目: https://liuhuanyong.github.io/
刘焕勇,中国科学院软件研究所
赵闪闪168
- 粉丝: 1726
- 资源: 6943
最新资源
- 专业毕业实习指导书.docx
- 专业见习实施方案.docx
- 专题调研登记表.docx
- 最新紧固件标准型号对照表.docx
- docker-images-bak.zip
- haaaaaaaaaaaaaaaaaaaa
- VIENNA维也纳拓扑,三相整流simulink仿真:采用电压电流双闭环控制,电压外环采用PI控制,电流内环采用bang bang滞环控制 整流电压稳定在600V 有相关参考资料
- 改进的双锁相环阻抗重塑控制策略 复现一篇IEEE上英文文献 创新点:阻抗重塑 双锁相环 另有一份中文版报告(与模型完全对应) 采用改进的双锁相环阻抗重塑控制策略,不仅能保留较快的动态响应,还能极大地提
- Python入门学习-基本程序结构
- “三好”学生登记表.doc
- 部门包干经费报销单.doc
- 毕业生顶岗(就业)实习考核鉴定表.doc
- Scum内各种快捷键的使用与说明.xlsx
- 创新实践学分申报汇总表.docx
- 村级集体经济调研登记表.docx
- 大学生科研创新基金项目申请书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈