Python 的 Spark 中每个文档的 TFIDF 稀疏向量值的总和
Summation of TFIDF sparse vector values for each document in Spark with Python
我使用 Pyspark 的 HashingTF 和 IDF 计算了 3 个示例文本文档的 TFIDF,得到了以下 SparseVector 结果:
(1048576,[558379],[1.43841036226])
(1048576,[181911,558379,959994], [0.287682072452,0.287682072452,0.287682072452])
(1048576,[181911,959994],[0.287682072452,0.287682072452])
如何计算文档中所有术语的 TFIDF 值之和。
例如。 (0.287682072452 + 0.287682072452) 用于 3d 文档。
IDF
的输出只是一个 PySpark SparseVector
当它暴露于 Python 并且它的值是标准 NumPy array
所以你只需要 sum
电话:
from pyspark.mllib.linalg import SparseVector
v = SparseVector(1048576,[181911,959994],[0.287682072452,0.287682072452])
v.values.sum()
## 0.57536414490400001
或超过 RDD:
rdd = sc.parallelize([
SparseVector(1048576,[558379],[1.43841036226]),
SparseVector(1048576, [181911,558379,959994],
[0.287682072452,0.287682072452,0.287682072452]),
SparseVector(1048576,[181911,959994],[0.287682072452,0.287682072452])])
rdd.map(lambda v: v.values.sum())
我使用 Pyspark 的 HashingTF 和 IDF 计算了 3 个示例文本文档的 TFIDF,得到了以下 SparseVector 结果:
(1048576,[558379],[1.43841036226])
(1048576,[181911,558379,959994], [0.287682072452,0.287682072452,0.287682072452])
(1048576,[181911,959994],[0.287682072452,0.287682072452])
如何计算文档中所有术语的 TFIDF 值之和。 例如。 (0.287682072452 + 0.287682072452) 用于 3d 文档。
IDF
的输出只是一个 PySpark SparseVector
当它暴露于 Python 并且它的值是标准 NumPy array
所以你只需要 sum
电话:
from pyspark.mllib.linalg import SparseVector
v = SparseVector(1048576,[181911,959994],[0.287682072452,0.287682072452])
v.values.sum()
## 0.57536414490400001
或超过 RDD:
rdd = sc.parallelize([
SparseVector(1048576,[558379],[1.43841036226]),
SparseVector(1048576, [181911,558379,959994],
[0.287682072452,0.287682072452,0.287682072452]),
SparseVector(1048576,[181911,959994],[0.287682072452,0.287682072452])])
rdd.map(lambda v: v.values.sum())