【问题标题】:Error in PySpark trying to run Word2Vec examplePySpark 尝试运行 Word2Vec 示例时出错
【发布时间】:2016-02-03 00:41:38
【问题描述】:

我正在尝试运行此处文档中给出的 Word2Vec 的非常简单的示例:

https://spark.apache.org/docs/1.4.1/api/python/_modules/pyspark/ml/feature.html#Word2Vec

from pyspark import SparkContext, SQLContext
from pyspark.mllib.feature import Word2Vec
sqlContext = SQLContext(sc)

sent = ("a b " * 100 + "a c " * 10).split(" ")
doc = sqlContext.createDataFrame([(sent,), (sent,)], ["sentence"])
model = Word2Vec(vectorSize=5, seed=42, inputCol="sentence", outputCol="model").fit(doc)
model.getVectors().show()
model.findSynonyms("a", 2).show()

TypeError                                 Traceback (most recent call last)
<ipython-input-4-e57e9f694961> in <module>()
      5 sent = ("a b " * 100 + "a c " * 10).split(" ")
      6 doc = sqlContext.createDataFrame([(sent,), (sent,)], ["sentence"])
----> 7 model = Word2Vec(vectorSize=5, seed=42, inputCol="sentence", outputCol="model").fit(doc)
      8 model.getVectors().show()
      9 model.findSynonyms("a", 2).show()

TypeError: __init__() got an unexpected keyword argument 'vectorSize'

知道为什么会失败吗?

【问题讨论】:

  • 它失败了,因为你使用了错误的包。您正在尝试使用在 RDD 上运行的 mllib 包在 DataFrame(ml 包)上运行 Word2Vec。

标签: python machine-learning apache-spark pyspark word2vec


【解决方案1】:

您指的是来自ml 的文档,但从mllib 包中导入。在mllib Word2Vec 中不接受__init__ 中的任何参数。
您是否打算:

from pyspark.ml.feature import Word2Vec

输出:

+----+--------------------+
|word|              vector|
+----+--------------------+
|   a|[-0.3511952459812...|
|   b|[0.29077222943305...|
|   c|[0.02315592765808...|
+----+--------------------+

+----+-------------------+
|word|         similarity|
+----+-------------------+
|   b|0.29255685145799626|
|   c|-0.5414068302988307|
+----+-------------------+

【讨论】:

  • 我打算哪一个有效!我现在尝试了几种排列方式(ml/mllib 和带或不带参数),但似乎都没有。有什么建议吗?
  • 我无法复制您的问题,当从ml 导入时,我可以毫无问题地构建 Word2Vec。
  • 你能运行 >> model.findSynonyms("a", 2)?
  • 是的,见上面的输出。
  • 你还改变了什么?当我运行相同的代码但从 ml 导入时出现错误:AttributeError: 'Word2VecModel' object has no attribute 'getVectors'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2011-03-31
  • 2021-09-26
  • 1970-01-01
  • 2011-10-11
相关资源
最近更新 更多