我正在遵循Spark文档中这个例子来计算一堆文档的TF-IDF。Spark使用哈希技巧进行计算,因此最终您将得到一个向量,其中包含哈希过的单词和相应的权重,但是...我该如何从哈希中获取回单词呢?
我是否真的需要对所有单词进行哈希,并将它们保存在映射中以便以后迭代查找关键字?在Spark内部没有更有效的方法吗?
提前致谢。
我是否真的需要对所有单词进行哈希,并将它们保存在映射中以便以后迭代查找关键字?在Spark内部没有更有效的方法吗?
提前致谢。
numFeatures
(默认为2^20)之间的正整数,使用org.apache.spark.util.Utils.nonNegativeMod(int, int)。原始字符串丢失了;无法从生成的整数转换回输入字符串。String[] vocabulary= countVectorizerModel.vocabulary();
这样你就知道如何找到它们了;
例如,得到一个类似于 (11,[0,1,3],[1.0,... 的稀疏向量,其中 [0,1,3] 表示在相应文本中遇到的词汇项的索引,则可以通过参考以下内容来获取这些词汇项:
vocabulary[index]
您需要创建一个字典,将数据集中的所有标记映射到哈希值。但是,由于您正在使用哈希技巧,可能会发生哈希冲突,因此映射不是完全可逆的。