【发布时间】:2018-03-07 22:40:47
【问题描述】:
我的理解是word2vec可以在两种模式下运行:
- 连续词袋 (CBOW)(词的顺序无关紧要)
- 连续的skip-gram(单词顺序很重要)
我想从 Spark 的 MLlib 运行 CBOW 实现,但从文档和他们的示例中我不清楚如何做到这一点。这是他们页面上列出的示例。
发件人:https://spark.apache.org/docs/2.1.0/mllib-feature-extraction.html#example
import org.apache.spark.mllib.feature.{Word2Vec, Word2VecModel}
val input = sc.textFile("data/mllib/sample_lda_data.txt").map(line => line.split(" ").toSeq)
val word2vec = new Word2Vec()
val model = word2vec.fit(input)
val synonyms = model.findSynonyms("1", 5)
for((synonym, cosineSimilarity) <- synonyms) {
println(s"$synonym $cosineSimilarity")
}
我的问题:
- 此示例使用两种模式中的哪一种?
- 您知道如何在 CBOW 模式下运行模型吗?
提前致谢!
【问题讨论】:
标签: scala apache-spark apache-spark-mllib word2vec