【问题标题】:Spark MLib Word2Vec Error: The vocabulary size should be > 0Spark MLlib Word2Vec 错误:词汇量应该 > 0
【发布时间】:2018-06-13 15:36:00
【问题描述】:

我正在尝试使用 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不接受句子作为输入吗?

【问题讨论】:

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


    【解决方案1】:

    您的输入是正确的。但是,Word2Vec 将自动删除在词汇表中出现最少次数的单词(所有句子组合)。默认情况下,此值为 5。在您的情况下,您使用的数据中很可能没有单词出现 5 次或更多次。

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

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

    【讨论】:

    • 当我将 mincount 设置为 2 时,它可以工作。无论如何,当我仅在样本输入上运行时,我遇到了该错误。但是当我在完全输入上训练模型时,它完成了运行而没有抛出任何即使将最小计数保留为默认值也会出错(5)
    • @vish:是的,因为与示例相比,完整输入中的单词要多得多。根据您想要在他的结果中使用的单词,您可以将最小计数调整为更高或更低。
    猜你喜欢
    • 2018-09-19
    • 2014-11-14
    • 1970-01-01
    • 2023-03-24
    • 2021-06-26
    • 2019-07-07
    • 2023-01-27
    • 2020-03-22
    • 2016-01-26
    相关资源
    最近更新 更多