在 ML 中对词嵌入向量求和会破坏它们的含义吗?



例如,我有一个段落,我想以二进制方式进行分类。但是由于输入必须具有固定的长度,我需要确保每个段落都由统一的数量表示。

我所做的一件事是获取段落中的每个单词,使用 GloVe word2vec 对其进行矢量化,然后将所有向量相加以创建一个"段落"向量,然后我将其作为模型的输入。在这样做的过程中,我是否破坏了这些词可能具有的任何意义?考虑到这两个句子将具有相同的向量: "我的狗咬了戴夫"和"戴夫咬了我的狗",我该如何解决这个问题?我的做法错了吗?

还有什么其他方法可以训练我的模型?如果我把每个单词都输入到我的模型中,我怎么知道我应该取多少个单词?如何输入这些单词?以 2D 数组的形式,其中每个词向量都是一列?

我希望能够训练一个可以准确分类文本的模型。 令人惊讶的是,仅通过使用这种求和方法,对于像 RandomForestClassifier 这样相对简单的模型,我得到了很高的 (>90%(。有什么见解吗?

编辑:我收到的一个建议是将我的数据特征化为2D数组,其中每个单词都是一列,CNN可以在其上工作。我收到的另一个建议是通过拥抱面转换器使用迁移学习来获取整个段落的向量。哪一个更可行?

我希望

能够训练一个可以准确分类文本的模型。令人惊讶的是,仅通过使用这种求和方法,对于像 RandomForestClassifier 这样相对简单的模型,我得到了很高的 (>90%(。有什么见解吗?

如果你查找关于聚合词嵌入的论文,你会发现这种情况有时会发生,特别是如果文本较短。

还有什么其他方法可以训练我的模型?如果我把每个单词都输入到我的模型中,我怎么知道我应该取多少个单词?如何输入这些单词?以 2D 数组的形式,其中每个词向量都是一列?

您是否尝试过关键字提取?它可以缓解平均的一些问题

在这样做的时候,我是否破坏了这些词可能具有的任何含义 拥有?

正如你所说,你抛弃了关于词序的信息。但这还不是最糟糕的部分:大多数时候,对于较长的文档,如果您嵌入所有内容,则平均值将被常用词("如何","喜欢","做"等(所主导。顺便说一句,请参阅我对这个问题的回答

除此之外,我见过的一个技巧是平均词向量,但在词嵌入矩阵上减去 PCA 的第一个主成分。有关详细信息,您可以看到例如此存储库,它也链接到该论文(顺便说一句,本文建议您可以忽略"平滑反频率"的东西,因为主成分减少是有用的部分(。

最新更新