python-3.x - 使用 LSTM 处理大文本
问题描述
我有一个用于检测从 kaggle 获得的假新闻的数据集(https://www.kaggle.com/c/fake-news/data)。我想使用 LSTM 进行分类
一篇文章的平均字长约为 750 字。我试图删除标点符号、停用词、删除数字。预处理文本也需要很长时间。
我想要一种使用 keras 将大文本输入 LSTM 的方法。我应该怎么做才能减少计算时间而不损失很多准确性。
解决方案
您可以尝试一些事情来加快速度:
1.使用CUDNN版本的LSTM
它通常更快,在这里 keras.layers.CuDNNLSTM
检查可用层是你所追求的。
2.Conv1d
用于创建特征
您可以使用一维卷积来kernel_size
指定应考虑多少个单词并stride
指定移动窗口的跳跃。对于kernel_size=3
和stride=3
,padding="SAME"
它会使你的维度下降三倍。
您可以堆叠更多的卷积层。
最重要的是,您仍然可以LSTM
正常雇用。
3. 完全放弃 LSTM
您可以使用 1d 卷积和池化进行分类,RNN 不是唯一的方法。
从好的方面来说:你不会遇到梯度消失的情况(也可以通过双向 LSTM 稍微缓解)。
不利的一面是:您将失去单词之间的严格依赖性,尽管对于二进制分类来说这应该不是什么大问题(我想这是您的目标)。
推荐阅读
- java - 在我的 GebConfig 中接收 java.lang.IllegalStateException
- python - Python - 调用一个使用 globals() 的模块函数,但它只从模块中提取 globals() 而不是当前的 python 实例
- python - 使用 DefaultAzureCredential 在本地对 Azure Key Vault 进行身份验证
- c# - 2D弹道预测(unity 2D)
- python - Python 在文件中每个句子的末尾写一段文字
- python - 确定哪种干预最能预测 python 的结果
- r - FUN(X[[i]], ...) 中的错误:找不到对象“a”
- python - 使用 pymc3 计算具有多个似然函数的模型的 WAIC
- eclipse - Eclipse 2020-03 重新启动按钮在哪里?
- java - 使用 readStream().format("kafka") 时遇到问题