为什么 spark.ml.feautures.Word2Vec 向量化句子而不是单个单词?

数据挖掘 阿帕奇火花 word2vec
2021-10-14 15:17:07

在了解 Spark 中的 Word2Vec 与 gensim 有何不同的过程中,我对 Spark 文档中提供的示例感到非常困惑(参考链接: https://spark.apache.org/docs/2.2.0/ml-features. html#word2vec),我想知道为什么它们不是转换单个单词,而是转换整个句子。word2vec 的目的不是将单个单词嵌入向量空间吗?为什么他们嵌入整个句子?如何正确训练 word2vec 然后应用于 Spark 中的单个单词?

1个回答

Spark(天真地)使用文档中所有单词的向量平均值作为文档的表示。仔细检查 API 文档。

“Word2VecModel使用文档中所有单词的平均值将每个文档转换为一个向量;然后这个向量可以用作预测、文档相似度计算等的特征。”

如果您对单词(而不是文档)的向量特别感兴趣,您可以检查 getVectors 方法,该方法将返回单词和向量的数据帧。API 行为确实会引起混淆,因为它假设每个人都希望默认使用平均。