Class TfIdfDataSketchesUtil
java.lang.Object
cn.net.pap.common.datasketches.util.TfIdfDataSketchesUtil
使用 Apache DataSketches + Count-Min Sketch 实现近似 TF-IDF
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublecalculateTfIdf(String word, int documentIndex) 计算单个词的 TF-IDF 值getDocumentTfIdfScores(int documentIndex, int topCandidateWords) 获取文档中所有词的 TF-IDF 分数(注意:CMS 无法直接枚举所有词) 这里建议结合 dfSketch 的 frequent items 作为候选getFrequentWords(int topN) 获取高频词列表doubledouble[]getTfIdfVector(String word) 获取所有文档中某个词的 TF-IDF 向量longintvoidmerge(TfIdfDataSketchesUtil other) 合并多个 SketchvoidvoidprocessDocument(String documentText) 处理单个文档(一行)voidprocessDocuments(String filePath) 处理文档流,构建 TF 和 DF 统计
-
Constructor Details
-
TfIdfDataSketchesUtil
public TfIdfDataSketchesUtil(int mapSize, int cmsWidth, int cmsDepth, int seed)
-
-
Method Details
-
processDocuments
处理文档流,构建 TF 和 DF 统计- Throws:
IOException
-
processDocument
处理单个文档(一行) -
calculateTfIdf
计算单个词的 TF-IDF 值 -
getDocumentTfIdfScores
获取文档中所有词的 TF-IDF 分数(注意:CMS 无法直接枚举所有词) 这里建议结合 dfSketch 的 frequent items 作为候选 -
getTfIdfVector
获取所有文档中某个词的 TF-IDF 向量 -
getFrequentWords
获取高频词列表 -
merge
合并多个 Sketch -
getTotalDocuments
public long getTotalDocuments() -
getVocabularySize
public int getVocabularySize() -
getMaximumError
public double getMaximumError() -
printStatistics
public void printStatistics()
-