如果我的语料库包含100篇文章,并且每篇文章都有很多单词,那么我想在不同的线程或分布式系统中独立计算每篇文章。
因此,对于每篇文章,我将得到按字频排序的单词列表,类似于(在C ++中):
// count, word
vector<pair<int, string> > v0;
sort(v0.begin(), v0.end(), greater<pair<int, string> >); // descending order
对于其他99篇文章,我们将得到类似的排序结果v1, v2, ... v99
我的问题是,我们如何合并排序结果以获得语料库中的顶级k
(例如10个)单词?
注意:此语料库可能位于分布式系统中,我们可能不希望从每个列表中获取所有单词,因此问题变为:我们必须从每篇文章中选择多少顶级单词才能获得最高{{ 1}}整个语料库的单词?换句话说,我们可以丢弃每篇文章中的任何单词吗?