火花LDAエラー

LDAスパーク記事のキーワードを使用することを学ぶのエラーを記録し、最終的に失敗し、先制ピットをクラスタ化されています。

まず、全体的なプロセス

  1.  生データと準備を読む:カットの単語、単語を停止します。
  2.  コーパスの準備:辞書は、文書の単語頻度行列が確立し、確立します。
  3.  LDAモデルトレーニング

第二に、実際の動作

予備的データは、単語をみじん切り一定の規則に従って、各列は、に「\ t」の分割されたワードを読み出す文書を表すので、直接読み取ります。
f_cut = 'hadoop_path_to_file'
data = sc.textFile(f_cut)
data_sp = data.map(lambda line: line.strip().split())
全く機能マトリックスが確立されたTFを使用して、TF-IDFによって確立されていないので、単語分割のプロセスので、単語を除去ストップワードと音声の無関係な部分となっています。Countervectorsizerの火花を使用してください。
from pyspark.ml.feature import CountVectorizer
corpus = data_sp.zipWithIndex().map(lambda x: [x[1], x[0]]).cache()
df_corpus = corpus.toDF()

df_corpus = df_corpus.select(col("_1").alias("idx"), col("_2").alias("words"))
cv = CountVectorizer(inputCol="words", outputCol="features", minDF=1.0)

tf_model = cv.fit(df_corpus)
result = tf_model.transform(df_corpus)
例は次の結果を学びました。

結果はRDDへの移行の過程で、係数行列、エラー(未解決)であるので、ここでは、事前Countervectorsizerビルドワード文書行列のsklearnを使用してみました、ビットを話したいです。
特定のRDD場合、モデルにコーパス、LDAノートデータ入力を確立し、第1のインデックスは、特徴の数を示します。

corpus = result.select(col("idx").cast("long"), "features").rdd.map(lambda x: [x[0], x[1]])
# corpus.first()
# [0, SparseVector(5, {3: 1.0})]


訓練を受けたLDAモデル
from pyspark.mllib.clustering import LDA

lda_model = LDA.train(rdd=corpus, k=10, seed=12, maxIterations=50)

与えられて起動するためにここに来て

ああ、長い時間を探しては解決されていません。





公開された120元の記事 ウォン称賛35 ビュー170 000 +

おすすめ

転載: blog.csdn.net/u012328476/article/details/78993576