【问题标题】:Using LSTM for large text使用 LSTM 处理大文本
【发布时间】:2019-07-02 14:52:38
【问题描述】:

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

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

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

【问题讨论】:

    标签: python-3.x deep-learning nlp lstm kaggle


    【解决方案1】:

    您可以尝试一些事情来加快速度:

    1。使用 LSTM 的 CUDNN 版本

    通常更快,检查可用层 here keras.layers.CuDNNLSTM 是你所追求的。

    2。使用Conv1d 创建特征

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

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

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

    3。完全放弃 LSTM

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

    有利的一面是:您不会遇到梯度消失(双向 LSTM 也可以稍微缓解)。

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

    【讨论】:

    • 谢谢:)。我尝试了 conv+lstm,得到了相当低的准确度,虽然只使用 CNN 得到了很好的准确度。
    猜你喜欢
    • 2017-12-21
    • 2016-09-02
    • 2011-05-16
    • 2019-08-07
    • 2017-03-04
    • 1970-01-01
    • 2022-10-18
    • 2018-09-20
    • 2020-10-01
    相关资源
    最近更新 更多