在ML中对文本数据进行分类的最佳方法是什么?

问题描述 投票:0回答:1

比方说,我有一个由评论列组成的数据集,每个评论正好有100个字,那么训练我的模型可能很容易,因为我可以简单地将每个评论的100个字标记化,然后将其转换为一个数字数组,然后将其输入到一个输入_形状=(1,100)的序列模型中。但在现实世界中,评论的大小永远不一样。如果我使用CountVectorizer这样的函数,那么句子的结构就没有预留,一个热编码可能不够高效。

那么,正确的方法是什么,来预处理这个特殊的数据集,以便我把它输入到一个可训练的NN中呢?

python tensorflow keras nlp nltk
1个回答
3
投票

将文本表示为向量的一种常见方法是利用词嵌入。主要的想法是,你使用一个大型的文本语料库来计算该数据集中出现的所有单词的向量表示。所以现在对于每篇评论,你可以运行以下算法来计算它的向量表示。

  1. 对于评论中的每一个词,检查是否有一个... 词缀 存在(换句话说,该词在大型训练语料中出现过),如果存在,则将其向量表示添加到复习的表示中去
  2. 一旦你将所有单词的向量表示相加,你就会计算平均嵌入,将相加的审核向量除以文档中的单词数,这就得到了该文档的最终向量表示方式。
  3. 这个向量现在可以被输入到一个可训练的NN中。

在执行步骤1-3之前,你还可以应用更多的预处理步骤,并删除 "和"、"或 "等填充词,因为它们通常不带有任何意义,你可以将单词转换为小写,并应用其他标准的NLP(自然语言处理技术),这可能会影响评论的向量表示。但关键的想法是将评论的单词向量相加,并将其平均向量作为评论的表示。通过平均化,评论的长度就不重要了。同样,在词嵌入中,词向量的维度是固定的(100D,200D,......),所以你可以试验最合适的维度。

请注意,有很多不同的模型可以计算词嵌入,所以你可以选择其中任何一种。一个很好地集成到Python中的模型是 word2vec.而目前谷歌正在使用的一个最先进的模型叫做? BERT.

© www.soinside.com 2019 - 2024. All rights reserved.