0

私は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) 

答えて

1

ファイルsample_lda_data.txtにはテキスト(check it)は含まれていませんが、コーパスからすでに抽出されている単語カウントベクトルは含まれていません。これは、例の前のテキストに示されています。

次の例では、文書のコーパスを表す単語カウントベクトルを読み込みます。

したがって、試してみる前に、自分のコーパスからこれらの単語数ベクトルを取得する必要があります。

+0

ありがとう@desertnaut!私はLDAモデルについてもっと読む必要があります。私の理解は、私が「文書」をフィードし、お互いに関係するテキストの数に基づいて、トピックの確率を導出することでした。 – Andre

関連する問題