스파크 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 전환 과정에서 계수 행렬 에러 (미해결)이므로 여기서 I는 사전 Countervectorsizer 빌드 Word 문서 매트릭스 sklearn를 사용하려고 조금 이야기 것.
특정 RDD, 제 1 인덱스 기능의 수를 나타내는 경우, 코퍼스 모델에 LDA 메모 데이터 입력을 구축.

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