当前位置:编程学习 > C#/ASP.NET >>

一个文本文件中统计单词频率的问题

读取英文文本文件中的文本,并且统计出所有单词出现的次数,文本中仅包含逗号句号叹号三种标点,时间复杂度尽可能低一些。 --------------------编程问答-------------------- 求大牛帮忙 --------------------编程问答-------------------- 单词?单词怎么区分的?
  ...先 空格 分割,再分组,再 统计。

string str = "csdn msdn";
var query = str.Split(' ')
               .GroupBy(g => g)
               .Select(s => new { Key=s.Key, Count = s.Count() });

--------------------编程问答--------------------
引用 2 楼 claymore1114 的回复:
单词?单词怎么区分的?
  ...先 空格 分割,再分组,再 统计。

C# code

string str = "csdn msdn";
var query = str.Split(' ')
               .GroupBy(g => g)
               .Select(s => new { Key=s.Key, Count = s.Count()……

怎么把以这种形式输出出来啊
csdn 1
msdn 1 --------------------编程问答-------------------- 支持2楼。 --------------------编程问答-------------------- 集合 

 foreach (var item in query)
 {
    Console.WriteLine("单词:{0},次数:{1}", item.Key, item.Count);
 }
--------------------编程问答--------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
namespace Frequent
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable ht = new Hashtable();
            string rxtext=@"\b\w+\b";
            string tests = "hello world,HI.";

            foreach (Match mch in Regex.Matches(tests, rxtext))
            {
                if (!ht.ContainsKey(mch.Value))
                {
                    ht.Add(mch.Value, 1);
                }
                else 
                {
                    ht[mch.Value] = int.Parse(ht[mch.Value].ToString()) + 1;
                }
            }

            ICollection keyColl = ht.Keys;
            foreach (string s in keyColl)
            {
                Console.WriteLine("Word = {0},Number={1}", s ,ht[s]);
            }

            Console.Read();


        }
    }
}

水平不高,写个稍微麻烦点的,不过这个可以无视里面的标点符号了 --------------------编程问答--------------------
引用 6 楼 newxdlysk 的回复:
C# code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
namespace Frequent
{
    class ……

这里面用到的正则表达式表示的是什么意思啊? --------------------编程问答-------------------- http://topic.csdn.net/u/20090827/11/922409b3-31da-47d2-a87e-90c602d2272c.html
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,