尝试将pyspark.ml.features.word2vec的输出解析为pyspark.mllib.linalg.distributed.RowMatrix时出现以下错误。
文件“ /databricks/spark/python/pyspark/mllib/linalg/init.py”,第83行,在_convert_to_vector中引发TypeError(“无法将类型%s转换为向量”%类型( l))TypeError:无法将类型转换为Vector
我已在数据集上运行pyspark.ml.features.word2vec,从而在新列中产生了预期的输出。
我正在尝试计算每个单词之间的余弦相似度,并创建一个可以通过多维标量进行可视化的余弦相似度矩阵。
我尝试了几种不同的方法,包括将vec1 = vectors.select(“ vectors).rdd中的每个值强制转换为浮点数。
目前,我有以下代码:
tokenizer = RegexTokenizer(pattern="[^a-zA-Z-_']", inputCol="SUBJECTS", outputCol="WORDS")
df = tokenizer.transform(df_droped_null)
word2Vec = Word2Vec(vectorSize=100, seed=42, inputCol="STEMMED", outputCol="VECTORS")
w2v = word2Vec.fit(df)
df_w2v = w2v.transform(df)
vectors = w2v.getVectors()
vec1 = vectors.select("vector").rdd
mat = RowMatrix(vec1)
mat.numRows()
我期望包含word2vec向量的列中的ROWMATRIX,以便可以调用.columnSimilarities()。
我遇到以下错误:
File "/databricks/spark/python/pyspark/util.py", line 99, in wrapper return f(*args, **kwargs)
File "/databricks/spark/python/pyspark/mllib/linalg/__init__.py", line 83, in _convert_to_vector raise TypeError("Cannot convert type %s into Vector" % type(l)) TypeError: Cannot convert type <class 'pyspark.sql.types.Row'> into Vector