scala - Spark MLib Word2Vec 错误 : The vocabulary size should be > 0

标签 scala apache-spark machine-learning apache-spark-mllib word2vec

我正在尝试使用 Spark 的 MLLib 实现词向量化。我按照给出的例子 here .

我有一堆句子,我想将它们作为输入来训练模型。但我不确定这个模型是否采用句子或仅将所有单词作为字符串序列。

我的输入如下:

scala> v.take(5)
res31: Array[Seq[String]] = Array(List([WrappedArray(0_42)]), List([WrappedArray(big, baller, shoe, ?)]), List([WrappedArray(since, eliud, win, ,, quick, fact, from, runner, from, country, kalenjins, !, write, ., happy, quick, fact, kalenjins, location, :, kenya, (, kenya's, western, highland, rift, valley, ), population, :, 4, ., 9, million, ;, compose, 11, subtribes, language, :, kalenjin, ;, swahili, ;, english, church, :, christianity, ~, africa, inland, church, [, aic, ],, church, province, kenya, [, cpk, ],, roman, catholic, church, ;, islam, translation, :, kalenjin, translate, ", tell, ", formation, :, wwii, ,, gikuyu, tribal, member, wish, separate, create, identity, ., later, ,, student, attend, alliance, high, school, (, first, british, public, school, kenya, ), form, ...

但是当我尝试在此输入上训练我的 word2vec 模型时,它不起作用。

scala> val word2vec = new Word2Vec()
word2vec: org.apache.spark.mllib.feature.Word2Vec = org.apache.spark.mllib.feature.Word2Vec@51567040

scala> val model = word2vec.fit(v)
java.lang.IllegalArgumentException: requirement failed: The vocabulary size should be > 0. You may need to check the setting of minCount, which could be large enough to remove all your words in sentences.

Word2Vec 不接受句子作为输入吗?

最佳答案

您的输入正确。但是,Word2Vec 将自动删除词汇表中出现次数未达到最低次数的单词(所有句子组合)。默认情况下,该值为 5。在您的情况下,很可能没有任何单词在您使用的数据中出现 5 次或以上。

要更改所需的最少单词出现次数,请使用 setMinCount(),例如最小计数为 2:

val word2vec = new Word2Vec().setMinCount(2)

关于scala - Spark MLib Word2Vec 错误 : The vocabulary size should be > 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48086226/

相关文章:

machine-learning - 非线性函数的神经网络

python - tf.nn.rnn_cell.MultiRNNCell 创建变量形状不匹配?

Scala - 理解涉及柯里化(Currying)的代码片段

java - 将架构应用于 Java 对象的 Spark 数据集

scala - 有没有一种简单的方法可以用 Dotty 编译一个 sbt 项目?

csv - 以分布式方式读取Spark中的CSV文件

postgresql - 为什么连续读取的计数结果不同?

apache-spark - 从平均序列预测下一个事件

java - 如何在 Play 中将所有入站请求转换为 UTF-8!框架

scala - 无法在 Scala 中捕获 ClassCastException