私はApache Spark LDAモデルにデータを供給するように設定しました。私がRDDにいくつかの英数字の値を持っているので、私が持っている1つのハングアップは、リストを密ベクトルに変換しています。サンプルコードを実行しようとするとエラーが発生するのは、文字列をfloatに変換することです。PySpark LDAモデルDense Vector from DDD
高密度ベクトルと浮動小数点について私が知っていることを知っているが、これはトピックモデルであるため、これらの文字列値をLDAモデルにロードする方法が必要です。
私はPythonとSparkの初心者であることを述べるべきです。何かを誤解している場合はお詫びします。以下に私のコードを追加します。前もって感謝します!
例
https://spark.apache.org/docs/latest/mllib-clustering.html#latent-dirichlet-allocation-lda
コード:
>>> rdd = rdd5.take(3)
[[u'11394071', u'11052103', u'11052101'], [u'11847272', u'11847272',
u'11847272', u'11847272', u'11847272', u'11847272', u'11847272',
u'11847272', u'11847272', u'11847272', u'999999', u'11847272',
u'11847272', u'11847272', u'11847272', u'11847272', u'11847272',
u'11847272', u'11847272', u'11847272', u'11847272'], [u'af1lowprm1704',
u'af1lowprm1704', u'af1lowprm1704', u'af1lowprm1704', u'af1lowprm1704',
u'am1prm17', u'am1prm17', u'af1highprm1704', u'af1highprm1704']]
>>> parsedData = rdd.map(lambda line: Vectors.dense([float(x) for x in
line]))
ValueError: could not convert string to float: af1lowprm1704
コードでの次のステップ一度修正:
# Index Document with Unique ID's
corpus = parsedData.zipWithIndex().map(lambda x: [x[1], x[0]]).cache()
# Cluster the documents into three topics using LDA
ldaModel = LDA.train(corpus, k=3)
ありがとう@desertnaut!私はLDAモデルについてもっと読む必要があります。私の理解は、私が「文書」をフィードし、お互いに関係するテキストの数に基づいて、トピックの確率を導出することでした。 – Andre