对大文本使用 LSTM

Using LSTM for large text

我有一个从 kaggle ( https://www.kaggle.com/c/fake-news/data ) 获得的用于检测假新闻的数据集。 我想使用 LSTM 进行分类

单篇文章平均字数在750字左右。我试图删除标点符号、停用词、删除数字。预处理文本也需要很长时间。

我想要一种使用 keras 将大文本输入 LSTM 的方法。我应该怎么做才能减少计算时间而不损失很多准确性。

您可以尝试一些方法来加快速度:

1。使用 CUDNN 版本的 LSTM

它通常更快,检查可用层数 here keras.layers.CuDNNLSTM 就是您想要的。

2。使用 Conv1d 创建特征

您可以使用 1 维卷积,kernel_size 指定应考虑多少个单词,stride 指定移动的跳跃 window。对于 kernel_size=3stride=3padding="SAME" 它会使你的维度下降三倍。

你可以堆叠更多的卷积层。

除此之外,您仍然可以正常使用 LSTM

3。完全放弃 LSTM

您可以使用 1d 卷积和池化进行分类,RNN 不是唯一的方法。

好的方面:你不会遇到梯度消失(也可以通过双向 LSTM 稍微缓解)。

不利的一面是:你将失去单词之间的严格依赖性,尽管这对于二进制分类来说应该不是什么大问题(我想这是你的目标)。