我使用Spark和Python计算TFIDF,使用以下代码:
hashingTF = HashingTF()
tf = hashingTF.transform(documents)
idf = IDF().fit(tf)
tfidf = idf.transform(tf)
for k in tfidf.collect():
print(k)
我得到了以下三个文件的结果:
(1048576,[558379],[1.43841036226])
(1048576,[181911,558379,959994], [0.287682072452,0.287682072452,0.287682072452])
(1048576,[181911,959994],[0.287682072452,0.287682072452])
假设我有成千上万的文档,如何将生成的TFIDF稀疏向量链接到原始文档,因为我知道我并不关心将哈希密钥反转为原始条款。
答案 0 :(得分:1)
由于documents
和tfidf
具有相同的形状(分区数,每个分区的元素数),并且没有需要随机的操作,因此只需zip
两个RDD:< / p>
documents.zip(tfidf)
反转HashingTF for an obvious reason是不可能的。