首页 > 代码库 > 词频统计

词频统计

功能:统计一篇英文文章中单词个数及频数;

实现:是用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();


}


}

运行结果示例:

技术分享

技术分享

技术分享

技术分享

 

词频统计