首页 > 代码库 > 词频统计
词频统计
功能:统计一篇英文文章中单词个数及频数;
实现:是用c#编写,使用比较笨的循环比较和计数来实现的;
Https:https://git.coding.net/li_yuhuan/WordFrequency.git
SSH:git@git.coding.net:li_yuhuan/WordFrequency.git
代码:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请将要统计的文章复制到Debug目录下的test1.txt文件中后,按任意键继续");
Console.ReadKey();
Frequency();
}
static private void Frequency()
{
List<string> composition = new List<string>();//文章中的单词数组,包括重复的单词
List<string> word = new List<string>();//文章中的单词数组,包括重复的单词
List<string> newword = new List<string>();//文章中的单词数组,不包括重复的单词
List<int> count = new List<int>();//统计文章中的每个单词的个数
int n = 0; //文件中总的单词个数包括重复的单词
char[] split = { ‘ ‘, ‘,‘, ‘?‘, ‘?‘, ‘.‘, ‘。‘, ‘-‘, ‘—‘, ‘"‘ };
string text = System.IO.File.ReadAllText(@"test1.txt");
composition.AddRange(text.Split(split));
foreach (string compo in composition)
{
if (compo != "" && compo != null)
{
word.Add(compo.ToLower()); //把单词全部转换为小写字母
}
}
newword.Add(word[0]);
n = word.Count;
count.Add(1);
for (int i = 1; i < n; i++) //从第二个单词开始依次统计
{
int j = 0;
for (j = 0; j < newword.Count; j++) //依次与前面的单词进行比较看是否有相同的
{
if (word[i] == newword[j])
{
count[j]++;
break; //找到与前面相同的单词,结束本次对比
}
}
if (j == newword.Count) //没有与前面相同的单词
{
newword.Add(word[i]);
count.Add(1);
}
}
Console.WriteLine("统计结果:此文章一共有" + newword.Count + "不同的个单词(详细统计见下表)");
for (int t = 0; t < newword.Count; t++)
{
Console.WriteLine(newword[t] + ":" + count[t].ToString());
}
Console.WriteLine("统计结束,按任意键退出!");
Console.ReadKey();
}
}
运行结果示例:
词频统计