如何使用词嵌入进行文档分类等?

数据挖掘 分类 nlp 随机森林 word2vec 词嵌入
2022-02-14 17:36:15

我刚开始学习 NLP 技术,比如 GPT、Bert、XLnet、word2vec、Glove 等。我尽量阅读论文和检查源代码。但我仍然不能很好地理解。

当我们使用 word2vec 或 Glove 将一个词转换成一个向量时,它是这样的:

[0.1,0.1,0.2...]

所以,一份文件应该是这样的:

[0.1,0.1,0.2...]
[0.1,0.05,0.1...]
[0.1,0.1,0.3...]
[0.1,0.15,0.1...]
.......

因此,一个文档是一个矩阵。如果我想使用随机森林等传统方法对文档进行分类,如何使用这些数据?有人告诉我,Bert 或其他 NLP 模型可以做到这一点。但我真的很好奇词嵌入是如何应用在传统方法中的?

2个回答

因此,一个文档是一个矩阵。如果我想使用随机森林等传统方法对文档进行分类,如何使用这些数据?

你不能,至少不能直接因为传统方法需要每个实例具有固定数量的特征。在文档分类的情况下,实例必须代表文档,因此除非所有文档的长度完全相同(不现实),否则不可能使用一组向量作为特征。

传统方法包括用向量表示文档,其中每个单元格表示词汇表中的一个词,其值例如是文档中该词的 TFIDF 权重。

词嵌入技术可用于将每个文档表示为单个向量,即“Doc2Vec”。Doc2Vec 的一种简单方法是简单地将每个文档中的词嵌入向量相加,然后将该向量中的每个元素除以其长度。有关 Doc2Vec 的更好方法,请参阅 Mikolov 等人的论文:句子和文档的分布式表示

一旦获得每个文档的 Doc2Vec 表示,您就可以将传统的分类算法应用于此。

或者,您可以将词嵌入矩阵直接用作卷积神经网络的第一层:请参见此处