作者|Emmanuella Anggi 编译|VK 来源|Towards Data Science
在这篇文章中,我将详细介绍如何使用fastText和GloVe作单词嵌入到LSTM模型上进行文本分类。
我在写关于自然语言生成的论文时对词嵌入产生了兴趣。词嵌入提高了模型的性能。在本文中,我想看看每种方法(有fastText和GloVe以及不使用)对预测的影响。
在我的Github代码中,我还将结果与CNN进行了比较。我在这里使用的数据集来自Kaggle,由tweets组成,标签是表明推特是否是灾难性推特(描述灾难的推特)。说实话,在第一次看到这个数据集时,我立刻想到了BERT,它的理解能力比我在本文中提出的更好(进一步阅读BERT)。
但无论如何,在本文中,我将重点介绍fastText和GloVe。
数据+预处理
数据包括7613条tweet(Text列)和label(Target列),不管他们是否在谈论真正的灾难。有3271行通知实际灾难,有4342行通知非实际灾难。如果你想了解更多关于数据的信息,可以在这里阅读。
链接:https://www.kaggle.com/c/nlp-getting-started
文本中真实灾难词的例子:
“ Forest fire near La Ronge Sask. Canada “
使用灾难词而不是关于灾难的例子:
“These boxes are ready to explode! Exploding Kittens finally arrived! gameofkittens #explodingkittens”
数据将被分成训练(6090行)和测试(1523行)集,然后进行预处理。我们将只使用文本列和目标列。
from sklearn.model_selection import train_test_split
data = pd.re