深度学习-nlp系列(5)文本实体识别(LSTM)pytorch

模型介绍

LSTM:长短期记忆网络(Long-short-term-memory),能够记住长句子的前后信息,解决了RNN的问题(时间间隔较大时,网络对前面的信息会遗忘,从而出现梯度消失问题,会形成长期依赖问题),避免长期依赖问题。

模型结构

遗忘门:控制上一个时刻的内部长期状态需要遗忘LSTM 知乎多少信息

输入门:控制当前时刻的候选长期状态有多少信息需要保留

输入门:控制当前时刻的内部长期状态有多少信息需要输出给外部

图1 LSTM 结构图1

 图1 LSTM 结构图2

这里的 σ 就是一个门,是 sigmoid 激活函数。

模型详解

知乎上的文章,里面有详细介绍 

LSTM BiLSTM 知乎

详解 LSTM 和 BiLSTM及代码实现

RNN&LSTM中的梯度消失问题 知乎

数据准备

数据集用的是论文【ACL 2018Chinese NER using Lattice LSTM】中从新浪财经收集的简历数据。每一句话用换行进行隔开。

               

模型准备

self.lstm = nn.LSTM(embedding_num, hidden_num, batch_first=True, bidirectional=bi)
    def forward(self, text, label=None):
        embedding = self.embedding(text)
        out, _ = self.lstm(embedding)
        pred = self.classifier(out)
        self.pred = torch.argmax(pred, dim=-1).reshape(-1)

        if label is not None:
            loss = self.loss(pred.reshape(-1, pred.shape[-1]), label.reshape(-1))
            return loss
        return torch.argmax(pred, dim=-1).reshape(-1)

模型预测 

 源码获取

GitHub

猜你喜欢

转载自blog.csdn.net/qq_48764574/article/details/126070478