关键词短语生成的无监督方法07——Model.py

本文介绍了BiLSTM模型的工作原理,它结合了前向和后向LSTM以捕捉句子中的双向语义依赖。通过Encoder类的实现,详细讲解了如何使用nn.Embedding进行词嵌入,并探讨了forward函数在LSTM中的作用。文章总结了BiLSTM在自然语言处理中的重要性,并预告了接下来将研究Decoder类。
摘要由CSDN通过智能技术生成

2021SC@SDUSC


在论文中,Encoder采用的是BiLSTM编码模型,故首先对BiLSTM进行学习。

一、BiLSTM

BiLSTM:Bi-directional Long Short-Term Memory的缩写,是由前向LSTM与后向LSTM组合而成。

在词的表示基础上组合成句子的表示,采用相加的方法或者取平均等方法。然而,这些方法存在很大缺陷。问题在于词语在句子中的前后顺序。LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息,使用LSTM模型可以更好的捕捉到较长距离的依赖关系。而LSTM对句子进行建模存在的问题是无法编码从后到前的信息。而通过BiLSTM可以更好的捕捉双向的语义依赖。故在LSTM模型的基础上,又引入了BiLSTM模型。

下举一个学习BiLSTM模型时看见的例子,便于理解。
比如,对“我爱中国”这句话进行编码。
在这里插入图片描述
前向的LSTMl依次输入“我”,“爱”,“中国”得到三个向量{hL0,hL1,hL2}。后向的LSTMr依次输入“中国”,“爱”,“我”得到三个向量{hR0,hR1,hR2}。最后将前向和后向的隐向量进行拼接得到{[hL0,hR2],[hL1,hR1],[hL2,hR0]},即{h0,h1,h2}。

对于情感分类任务来说,采用的句子表示往往是[ hL2,hR2 ]。因为其包含了前向与后向的所有信息。
在这里插入图片描述

二、Encoder类

__ init __()函数

使用继承nn.Module类的方式,实现共享参数。
首先定义__init__函数,在其内定义层。

#以继承nn.Module类的方式实现网络结构的自定义
class Encoder(nn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值