日期:2014-05-20  浏览次数:20866 次

大规模数据中如何快速统计某个词语出现的频率
比如说我现在有3T的数据,现在要统计某个词语在这其中出现了多少次,该如何解决?主要是效率问题!

------解决方案--------------------
只有一个一个地读了。
------解决方案--------------------
string input = "";
for(int i = 0; i < str.Length; i ++)
{
int at = str.IndexOf(input, i);
if(at < 0) 
{
break;
}
Console.Write(input + "@" + at);
i = at;
}
------解决方案--------------------
楼上的代码 运行的话会死掉的

------解决方案--------------------
问题没有问清楚,文字是一行一行存的还是不分行顺序存的,文字里有没有标点,是英文词语还是中文词语,如果是中文词语要复杂的多,牵扯到分词问题,如果这些都不考虑,可以直接进行文字匹配,可以分段读取字符串,然后采用kmp算法匹配,注意每一段的结尾部分的处理就行,因为结尾和接下来的一段文字可能就是你需要匹配的词语。