LSTM:长短期记忆网络(Long-short-term-memory),能够记住长句子的前后信息,解决了RNN的问题(时间间隔较大时,网络对前面的信息会遗忘,从而出现梯度消失问题,会形成长期依赖问题),避免长期依赖问题。
遗忘门:控制上一个时刻的内部长期状态需要遗忘多少信息
输入门:控制当前时刻的候选长期状态有多少信息需要保留
输入门:控制当前时刻的内部长期状态有多少信息需要输出给外部

图1 LSTM 结构图1

图1 LSTM 结构图2
这里的 σ 就是一个门,是 sigmoid 激活函数。
知乎上的文章,里面有详细介绍
数据集用的是论文【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)

硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!