统计一篇英文文章中出现次数最多的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

Burp靶场实战:JWT签名绕过漏洞分析与利用

本文通过Burp Suite靶场实战,深入剖析了JWT签名绕过漏洞的多种攻击手法,包括签名未验证、alg:none攻击、弱密钥爆破、JWK/JKU头注入、KID路径遍历及算法混淆攻击。文章详细演示了利用过程,并提供了关键的防御指南,帮助开发和安全人员加固JWT实现,确保认证安全。

weixin_29325515的博客 594

实现对一个列表元素统计重复元素的多种方法(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

保姆级教程:用ESP32和SPH0645麦克风做个无线录音笔(附Python服务端实时播放)

本文提供了一份详细的ESP32无线录音笔开发指南,涵盖从硬件搭建到Python服务端实时回放的全过程。通过SPH0645麦克风采集高质量音频数据,利用ESP32的I2S接口和WiFi功能实现无线传输,并结合Python服务端实现实时播放和WAV文件保存,适合远程音频监控和创意交互装置开发。

weixin_30700099的博客 641

统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前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

VConsole动态加载

// 移动端真机调试工具 vconsole import VConsole from "vconsole"; import Vue from "vue"; // 动态使用VConsole if(process.env.NODE_ENV==='production'){ if(process.env.VUE_APP_BASEURL.includes('test')||process.env.VUE_APP_BASEURL.includes('pre')){ Vue.prototype

aliven1的博客 1041

2026年ComfyUI一键部署指南:秋叶整合包安装与API批量任务实战

节点式工作流是AI图像生成领域实现高度定制化和流程自动化的核心技术范式。其原理在于将图像生成的各个步骤(如提示词编码、模型加载、采样解码等)模块化为可连接、可配置的独立节点,用户通过可视化连线构建专属生成管线。这种架构的技术价值在于突破了固定界面的限制,提供了极致的灵活性与可重复性,尤其适合复杂工作流编排和批量生产任务。在应用场景上,它广泛应用于需要精细控制生成过程的研究、定制化内容创作以及自动化图像生成流水线。本文聚焦于ComfyUI这一代表性工具,详细解析如何通过秋叶整合包实现快速本地部署,并深入演示其

weixin_29056781的博客 540

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

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

weixin_39876739的博客 1336

深入解析π型滤波电路:RC与LC滤波器的实战选型指南

本文深入解析了π型滤波电路的工作原理与实战选型。重点对比了RC型与LC型滤波器的核心差异:RC型成本低、体积小,但存在压降与能耗,适用于小电流场景;LC型效率高、滤波性能好,但成本与体积较大,适合中到大电流及高纹波抑制需求。文章提供了基于不同应用场景的选型指南与设计要点,帮助工程师做出精准决策。

weixin_29291069的博客 655

统计文件里出现次数前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

用74LS190和555定时器复刻经典交通灯:一个电子工程新手的实战避坑记录

本文记录了使用74LS190和555定时器复刻经典交通灯的实战过程,详细介绍了元件选型、电路搭建与调试的关键步骤。特别分享了555定时器参数设置、74LS190级联技巧以及状态机设计的避坑经验,为电子工程新手提供实用参考。

weixin_42629671的博客 306

Amesim应用篇-电芯等效电路模型标定

为了使计算模型更加准确,在有电芯实验测试数据的情况下,依据现有的实验数据对Amesim中的电池等效电路模型进行标定。标定的目的是为了获得更加符合项目实际情况的电芯等效电路模型,标定完的电芯可以用于搭建PACK模型,也可以用于其他虚拟实验。本文以充电标定为例,进行介绍。放电标定与充电一致。

2201_75375391的博客 1213

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

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

weixin_47135547的博客 6163

YOLOv11改进 - C3k2融合 | C3k2融合融合WDBB宽度多样分支模块(Width Diverse Branch Block)通过多尺度分支增强特征表征能力

本文着眼于灰度图像目标检测所面临的挑战,提出了增强型目标检测网络 YOLO - MIF,该网络整合了多种多信息融合策略以对 YOLOv8 网络进行改进。文章开篇介绍了一种可创建伪多通道灰度图像的技术,此技术能增加网络的通道信息,同时缓解潜在的图像噪声与虚焦模糊问题。随后运用网络结构重新参数化技术,在不增加推断时间的情况下提升网络的检测性能。此外,引入了一种新颖的解耦式检测头,增强了模型处理灰度图像时的表现能力。

魔改工程师的博客 770

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万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

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

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

crisonpupil的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值