统计一篇英文文章中出现次数最多的10个单词

统计一篇英文文章中出现次数最多的前五个单词 #include #include //统计单词最大个数 #define MAX_WORD_COUNT 500 //保存单词及其出现的个数 typedef struct WordCount { char cWord[20]; int iCount; }T_WordCount; //统计单词个数并输入排名前五的单词 int CalcEachWord(const char *pTex 阅读详情

https://blog.youkuaiyun.com/u010512607/article/details/40005641

思路:

1.读入文件,按行将文字拼接成字符串str
2.用正则过滤字符串中的标点,再分割成str[]
3.用hashmap依次统计每个单词出现的次数(可以加黑名单过滤情态动词等)
4.对hashmap的值排序(利用Collections的sort,重写比较器Comparator的compare)
5.输出hashmap前10个单词

代码:

public class Main{
    public static void main(String[] args) throws IOException {
        readPaper();
}

    //统计一篇英文文章中出现次数最多的10个单词
    public static void readPaper() throws IOException{

        HashMap<String, Integer> wordMap = new HashMap<String, Integer>();

        File file = new File("e:/info.log");
        BufferedReader br=new BufferedReader(new FileReader(file));

        StringBuilder sb=new StringBuilder();
        String line=null;
        while((line=br.readLine())!=null){
            sb.append(line);
        }
        br.close();


        String words=sb.toString();// 全部的单词字符串
        String target=words.replaceAll("\\pP|\\pS", "");// 将标点替换为空
        //小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀
        //大写 P 表示 Unicode 字符集七个字符属性之一:标点字符
        //大写S:符号(比如数学符号、货币符号等);
        String[] single=target.split(" ");


        String[] keys={ "you", "i", "he", "she", "me", "him", "her", "it",
                "they", "them", "we", "us", "your", "yours", "our", "his",
                "her", "its", "my", "in", "into", "on", "for", "out", "up",
                "down", "at", "to", "too", "with", "by", "about", "among",
                "between", "over", "from", "be", "been", "am", "is", "are",
                "was", "were", "whthout", "the", "of", "and", "a", "an",
                "that", "this", "be", "or", "as", "will", "would", "can",
                "could", "may", "might", "shall", "should", "must", "has",
                "have", "had", "than" };

        // 将一部分常见的无意义的英语单词替换为字符 '#' 以便后面输出单词出现次数时的判断
//      for(int i=0;i<single.length;i++){
//          for(String str:keys){
//              if(str.equals(str)){
//                  single[i]="#";
//              }
//          }
//      }

        // 将单词以及其出现的次数关联起来
        for(int i=0;i<single.length;i++){
            if(wordMap.get(single[i])==null){
                wordMap.put(single[i],1);       
            }else{
                wordMap.put(single[i], wordMap.get(single[i])+1);
            }
        }

        //比较器,按值排序
        List<Entry<String,Integer>> list=new ArrayList
                <Entry<String,Integer>>(wordMap.entrySet());
        Collections.sort(list,new Comparator<Entry<String,Integer>>(){

            @Override
            public int compare(Entry<String, Integer> o1,
                    Entry<String, Integer> o2) {
                return o2.getValue()-o1.getValue();
            }

        }
            );


        //输出次数最多的单词
        int count=1;
        for(Map.Entry<String, Integer> entry:list){
            if(entry.getKey().equals("#")){
                continue;
            }
            System.out.println(entry.getKey()+":"+entry.getValue());
            count++;
            if(count==11){
                break;
            }
        }
    }
统计一篇英文文章中所有的单词以及出现的次数 这是CC视频的最后一道面试题,当时纯手写写的还不错,不过在匹配英文单词的时候大小写的情况没有统一([a-zA-Z]和toLowerCase()),回来之后重新写了。 阅读详情

相关推荐

统计文章单词频数(C语言)

统计文章单词频数一、引言1.1题目概述1.2题目分析二、解题过程2.1 单词存储2.2 分割字符串2.3 存放单词2.4 排序三、完整代码 一、引言 最近花了很多时间来处理老师给我们布置的这道作业题,感觉学习编程以来算是第一次接触这种比较复杂的题目。完整地做完之后收获颇丰,在这里写一篇blog记录一下所思所想,留待日后反省。第一次在优快云写博客,质量不佳请多宽待。 1.1题目概述 完成以下任务...

weixin_45973896的博客 5097

Python实现统计一篇英文文章内每个单词的出现频率的两种很好解法

有一道Python面试题: 用python实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数。文件的内容,就拷贝import this模块中的内容,文件名为: this.txt The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than im...

杰瑞的专栏 1万+

用python统计文本里的单词出现次数最多的10个

python入门教程至此已学习完毕,下面是结业脚本:(一部分是书里的源码,一部分是自己加的练习题) #写一个文本统计的脚本:计算并打印有关文本文件的统计数据,包括文件里包含多少个字符、行、单词数,以及前10个出现次数最多的单词按顺序排列 import time keep=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p

测试人生 1万+

python之统计文本中出现最多的单词

在很多情况下,会遇到这样的问题:对于一篇给 定文章,希望统计其中多次出现的词语,进而概 要分析文章的内容。这个问题的解决可用于对网 络信息进行自动检索和归档。 n 在信息爆炸时代,这种归档或分类十分有必要。 这就是“词频统计”问题。 说明:本文设txt为字符串 问题:文本词频统计 -统计一篇英文词频 方法: 第一步:分解并提取英文文章的单词 第二步:对每个单词进行计数 第三步:对单词的统计值从高到低进行排序 具体实现 第一步:分解并提取文章中的单词 通过txt.lower()函数将字母变成小写,排除原文

qq_43527713的博客 1万+

统计一篇英文中每个单词出现的次数

/*功能:统计一篇英文中每个单词出现的次数 *实现:用HashMap处理统计,用StringBuffer处理输出 *Date:2014-5-14 深夜 *Author:何龙 *QQ:471628912 */ import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import

代码人生 3534

python3学习笔记之三——统计英文文章中出现次数最多的单词前三

思路:英文文章中的标点符号的处理,单词大小写的处理,再将单词通过字典的统计出现次数,最后用sorted()排序#利用maketrans函数将标点符号映射为空格table = str.maketrans(',.!"?:[]-',' ')#打开需要统计的文件f = open(r'C:\Users\CryptFiend\Downloads\python\1.txt')file1 = f....

joey_2018_的博客 4977

统计文本中出现的数量最高的前5个单词

def read_file(): with open(‘C:/Users/84785/PycharmProjects/pythonProject/3.txt’, ‘r’, encoding=‘utf-8’) as f: word = [] # 空列表用来存储文本中的单词 # readlins为分行读取文本,且返回的是一个列表,每行的数据作为列表中的一个元素: for word_str in f.readlines(): # 去除原文中的逗号 双引号 word_str = word_str.replace(

zz_zss的博客 1801

简单的统计英文单词个数

给出一篇英文文章,现在需要统计文章中出现英文单词的数量。 输入格式: 第一行一个T,代表数据组数 对于每组数据,第一行一个n,代表文章中单词的个数,其后n行每行一个只包含小写字母的长度为1到10的字符串 输出格式: 每组数据输出若干行,每行输出单词以及它出现的次数(中间空格隔开),不同单词按单词字典序从小到大输出 保证单词出现的总次数<=1e5 输入样例: 1 8 it is a pen i...

weixin_44740740的博客 5751

Java面试题,读取一篇英文文章,输出其中出现单词的次数最多的5个

废话不多说,直接上代码:

zhb123GGGGGG的专栏 4139

统计英文文件中单词出现的次数,按照出现次数降序输出(前10)

代码如下 import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util...

qq_42217486的博客 2250

如何在iPhone上本地运行SmolVLM?5亿参数模型实战指南(附Swift代码)

本文详细介绍了如何在iPhone上本地部署和运行轻量高效的SmolVLM多模态模型。通过实战指南,分享了使用Swift和MLX框架进行环境配置、模型加载、内存优化以及实现实时图像分析与文本生成的完整流程,帮助开发者在移动端高效运行AI视觉语言模型。

echo99的专栏 654

实现对一个列表元素统计重复元素的多种方法(counter方法的应用)

应用1: # 对['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']该列表的数据进行计数统计 # 使用dict  ---->复杂度是最低的,这个一般面试会问到 some_data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z'] count = dict() for item in s...

daruan1111的博客 459

手把手讲解RTX5操作系统在GD32F407上的移植

然后将GD32F4xx_Demo_Suites_V2.6.4\GD32407V_START_Demo_Suites\Projects\01_GPIO_Running_LED下面的main函数复制到我们的项目文件夹中;打开对应GD32407V_START_Demo_Suites的文件夹下面的Utilities,复制gd32f407v_start.c和gd32f407v_start.h文件到一开始项目保存的文件夹下面;为了验证我们的操作系统是否被正确添加,是否能够正确运行,我们需要添加示例文件;

Praguejing的博客 1862

统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数...

统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数 from collections import Counter import re with open('a.txt', 'r', encoding='utf-8') as f: txt = f.read() c = Counter(re.split('\W+',txt)) #取出每个单词...

weixin_34304013的博客 851

别再只接个放大器了!压电传感器测量电路(电压/电荷放大器)的5个实战配置要点

本文深入解析压电传感器测量电路中的5个关键实战配置要点,包括电缆长度选择、输入阻抗匹配、过载保护设计、低频噪声抑制及放大器选型策略。特别针对电压放大器和电荷放大器的应用场景差异提供工程实践建议,帮助工程师有效解决信号失真、噪声干扰等常见问题,提升测量精度和系统可靠性。

weixin_26869081的博客 302

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 347

python统计单词个数算法_统计一篇英文文章单词个数,取出出现频次前10的单词(Python实现)...

题目: 用python实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数。常规解法怎么判定单词?1 不是字母的特殊字符作为分隔符分割字符串 (避免特殊字符的处理不便,全部替换成””)2 正则分割3 遍历字符串,取每个word4 正则匹配怎么统计个数?将wordlist的word和word的个数放入dict,排序import rewith open('1.txt'...

weixin_39876739的博客 1336

PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)

##2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 ...

小鱼波波波 6万+

统计文件里出现次数前10的单词

统计” The_Holy_Bible_Res.txt “ 中字符的个数,行数,单词的个数,统计单词的词频并打印输出词频最高的前 10 个单词及其词频 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXKEY 10000 #define SWAP(a,b) {pInfo_t t=a;a=b;b=t;} int h.

qq_43496435的博客 932

芒果YOLO11改进44:主干Backbone篇之MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

包括YOLOv5、YOLOv7、YOLOv8等模型改进 370

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

算法大师! 3057

【C语言】英文文章出现次数最多的单词

问题描述: 在当前目录中存在文件名为“case14.in”的文本文件,其内容为一篇英文文章(以EOF作为结束标志)。现要求读取该文本文件内容,统计文章中每个单词出现的次数,并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,不足5个单词时,按顺序输出全部单词)。

weixin_47135547的博客 6163

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python实现统计文本当中单词的数量,

这是阿里巴巴2016年的一道面试题: 统计英文文章中单词出现的次数,并且输出出现次数的前10个单词 文本如下: Accessing Text from the Web and from Disk Electronic Books A small sample of texts from Project Gutenberg appears in the NLTK

qq_31518899的博客 4万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python 统计一篇英语文章中每个单词出现的次数

""" 统计一篇英语文章中每个单词出现的次数 """ import string def get_dict_word_times(file): """构建字典{单词: 次数}""" list_word_with_punctuation = file.read().split() # 去掉标点,不区分大小写 list_word = [word.strip(st...

crisonpupil的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: hashmap 遍历
下一篇: 对整型数组中所有单个数字排序输出数字
ka_ko
博客等级 码龄11年 168粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值