0

我設置了我的數據以供入Apache Spark LDA模型。我有一個掛機是列表轉換爲密集向量,因爲我有我的一些RDD字母數字值。試圖運行示例代碼時,我收到的錯誤是圍繞將字符串轉換成浮動。來自RDD的PySpark LDA模型密集向量

我明白這個錯誤,知道我對密集向量和浮點數的瞭解,但必須有一種方法將這些字符串值加載到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