计算单词出现的次数--linq

1、直接给出代码:声明数据,也可以是txt等文件,通过File类的静态方法读取其中的文本,再转换成List<string>数组。

         private static List<string> words = new List<string>
            { "there", "is", "a",
                "great", "house", "and",
                "an", "amazing", "lake",
                "there", "is", "a",
                "computer", "running", "a",
                "new", "query", "there",
                "is", "a", "great",
                "server", "ready", "to",
                "process",
                "map", "and", "reduce" };

   2、把数据转换成Lookup<T,K>,Lookup和Dictionary字典有点像,其中的一个重要不同点在于,Lookup中的键值对可以重复出现。比如,可以出现键key="key01" 值value=“01”的键值对两次,或者更多次。而Dictionary中的键只能出现一次,就像小时候用的字典一样,要查的汉字总是唯一的。下面这段代码生成的键值对是有一个单词和1组成。

 ILookup<string, int> map = words.AsParallel().ToLookup(p => p, k => 1);

  3、提取结果,Word存储单词,Count存储单词出现个数。

        var reduce = from IGrouping<string, int> wordMap in map
                         select new
                         {
                             Word = wordMap.Key,
                             Count = wordMap.Count()
                         };

    reduce是统计各个单词个数,也可以加入过滤条件,选择符合需要的数据。例如,个数大于1且单词长度大于2的单词个数,只需加入Where条件即可(红色部分),代码如下。

           var reduce = from IGrouping<string, int> wordMap in map
                         where (wordMap.Count()>1&&wordMap.Key.Length>2)
                         select new
                         {
                             Word = wordMap.Key,
                             Count = wordMap.Count()
                         };
            foreach (var item in reduce)
            {
                Console.WriteLine(item.Word + "\t" + item.Count);
            }

4、输出结果。可以看一下最后输出的结果。

时间: 2024-10-04 07:03:29

计算单词出现的次数--linq的相关文章

查询文件中单词出现的次数

package text; import java.io.File; import java.util.Scanner; import java.io.FileNotFoundException; import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class zimupinlv { public static <type> void main (String[] args) thr

python之Counter类:计算序列中出现次数最多的元素

Counter类:计算序列中出现次数最多的元素 1 from collections import Counter 2 3 c = Counter('abcdefaddffccef') 4 print('完整的Counter对象:', c) 5 6 a_times = c['a'] 7 print('元素a出现的次数:', a_times) 8 9 c_most = c.most_common(3) 10 print('出现次数最多的三个元素:', c_most) 11 12 times_dic

&quot;分拣&quot; 思路 统计每个单词出现的次数

package collection.map; public class Letter { public String name; public int count; } package collection.map; /* * 统计每个单词出现的次数 * "分拣" 思路 * 1.为所有key创建容器 * 之后容器中存放对应value * 2.第一次创建容器,并存放值value * 第二次之后,直接使用容器存放值 */ import java.util.HashMap; import

shell统计文本中单词的出现次数

Ubuntu14.04 给定一个文本,统计其中单词出现的次数 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.txt #! /bin/bash# solution 1 if [ $# -eq 0 ] then echo "Usage:$0 args error" exit 0 fi if [ $# -ge 2 ] then echo "analyse the first file $1"

计算指定字符串出现次数插件

计算指定字符串出现次数插件: 有时候需要计算移一段字符串中指定字符串的出现次数,可能应用不是那么频繁. 本章节分享一段代码实例能够实现类似的功能,当然也可以根据实际需要进行扩展. 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/&q

oc将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接

/* 将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接(10分) 如传入:@"good_good_study_good_study" 返回:@"good_study" 如传入:@"I_love_I_hate_love_love" 返回:@"love_I_hate" */ 方法1:选择排序 -(NSString *)sortStringByNumbe

projecteuler----&gt;problem=31----Coin sums 无限背包计算可能存在的次数

Problem 31 In England the currency is made up of pound, £, and pence, p, and there are eight coins in general circulation: 1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p). It is possible to make £2 in the following way: 1×£1 + 1×50p + 2×20p + 1×5p

HDU1686 计算模式串匹配的次数

题目大意: 输入一个T,表示有T组测试数据: 每组测试数据包括一个字符串W,T,T长度大于W小于1000000,w长度小于10000,计算W匹配到T中成功的次数: 这题很明显要用KMP算法,不然很容易超时,但在使用kmp算法时也要注意,我第一次将匹配成功的位置得到后,循环进入kmp算法,从前一个匹配到的位置开始算起,但是超时了.后来问完学长之后,清楚了,没必要循环进入kmp,直接一次可以搞定,每次模式串匹配到末尾时,都将计数+1,然后根据next[m],重新得到j继续与原串进行匹配直到进行到原串

N个任务掌握java系列之统计一篇文章中单词出现的次数

问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:value是数字类型,保存该单词出现的次数. (3)遍历(1)中得到的字符串数组,对于每一个单词,考察Map的key中是否出现过该单词,如果没出现过,map中增加一个元素,key为该单词,value为1(第一次出现): 如果,在map的key中发现了该单词,则通过key找到对应的value(单词出现的次数)