每次从文件中读取一定大小的词,统计词频保存到一个哈希表中。然后遍历这个哈希表,把词频作为值,词语作为键,逐个插入小根堆。如果堆大小超过N,则移除堆顶最小的元素。...= freq;
}
}
}这个示例定义了一个小根堆,每次从文件中读取一批数据进行统计,并维护堆中的topk词频结果。...总结本文针对内存受限环境下的大文件Top N词频问题,给出一种基于堆结构与外部排序的解决方案,主要有以下优点:import java.io.*;
import java.util.*;
public class...= freq;
}
}
}这个示例定义了一个小根堆,每次从文件中读取一批数据进行统计,并维护堆中的topk词频结果。...逐批从文件中读取一定行数的词,统计到哈希表F中
遍历F,将词频作为值,词语作为键,插入小根堆
堆大小超过N,则移除堆顶最小元素
重复步骤2-4,直到文件读完
堆中的N个元素即为全局topk结果