调用 h2o 变换和 word2vec 时句子的自定义单词权重,而不是单词的直接平均值



我正在使用H2O机器学习包进行自然语言预测,包括h2o.word2vec和h2o.transform函数。 我需要句子级聚合,它由 AVERAGE 参数值提供:

h2o.transform(word2vec, words, aggregate_method = c("NONE", "AVERAGE"))

但是,就我而言,我强烈希望避免将"the"和"platypus"相等地加权。

这是我为实现自定义单词权重而炮制的方案。 如果 H2O 的 word2vec "AVERAGE" 选项使用所有单词,包括可能出现的重复项,那么当我想将它们加权比其他单词更重要时,我可以通过在句子中添加某些单词的其他重复项来调用 h2o.transform 时影响自定义单词权重。

任何H2O专家能否确认word2vec AVERAGE参数在计算句子中单词的AVERAGE时使用了所有单词,而不仅仅是唯一的单词?

或者,有没有更好的方法? 我试过了,但我发现自己无法想象任何正确的数学来将句子平均值乘以某个因素,因为它已经计算出来了。

是的,h2o.transform将考虑单词的每次出现以进行平均,而不仅仅是唯一的单词。因此,您的伎俩将奏效。

目前没有直接的方法可以提供用户定义的权重。你可能会做一个丑陋的黑客并直接加权这个词嵌入,但这不是我可以推荐的简单解决方案。

我们可以将此功能添加到 H2O 中。我很想听听什么 API 适合您(您希望如何提供权重)。

相关内容

  • 没有找到相关文章

最新更新