统计一段文章的单词频率,取出频率最高的5个单词和个数(python)
练习题:统计一段英语文章的单词频率,取出频率最高的5个单词和个数(用python实现)
先全部转为小写再判定 lower()
怎么判定单词?
1 不是字母的特殊字符作为分隔符分割字符串 (避免特殊字符的处理不便,全部替换成'-')
2 正则分割
3 遍历字符串,取每个word
4 正则匹配 怎么统计个数?
将wordlist的word和word的个数放入dict,排序
'''
dinghanhua
2018-11-11
练习:一段英文文章,统计每个单词的频率,返回出现频率最高的5个单词和次数
''' import re art = ' If we want to" run Locust \ / distributed on multiple machines we would also have to specify the master host when starting the slaves (this is not needed when running Locust distributed on a single machine, since the master host defaults to 127.0.0.1):' '''
怎么判定单词?
1 不是字母的特殊字符作为分隔符分割字符串
2 遍历字符串,取每个word
3 正则匹配 怎么统计个数?
将wordlist的word和word的个数放入dict,排序
'''
word_dict = {} #用于统计 word:个数
word_list = [] #用于存放所有单词
# 找出所有不是字母的字符替换成统一的字符,split()分割之后便是单词
pattern = r'[^a-z]+'
art_new = re.sub(pattern,'-',art.lower()) #所有的非字母替换成-
word_list = art_new.split('-') #转成小写分隔单词
wordlist = list(filter(lambda x : x != '',word_list)) #去掉空串 print('所有的单词列表:',wordlist)
#正则表达式分隔
pattern = r'[^a-z]+' #非字母
word_list = re.split(pattern,art.lower()) #还要去除空串
print(word_list)
# 遍历字符串,获取每个word追加到wordlist (不好)
word =''
word_list2 = [] for letter in art.lower():
if letter.isalpha(): #如果是字母,追加到word
word += letter
else:
if word != '':
word_list2.append(word) #不是字母,word不为空的话追加wordlist
word = '' # word置空
print(word_list2)
# 正则表达式匹配单词
pattern = r'[a-z]+'
word_list3 = re.findall(pattern,art.lower())
print(word_list3)
最后的统计的代码:
#统计
for word in set(word_list):
word_dict[word] = word_list.count(word) #key=单词,value=单词在list里的count #取最多的前五个
print(sorted(word_dict.items(),key = lambda x:x[1],reverse=True)[0:5]) #dict根据value倒序,取前5个
word_dict = {}.fromkeys(word_list) #先用list生成dict的keys
for word in word_dict.keys():
word_dict[word] = word_list.count(word)
the end!
统计一段文章的单词频率,取出频率最高的5个单词和个数(python)的更多相关文章
- 统计输入任意的字符中中英文字母,空格和其他字符的个数 python
这里用到了三个函数: #判断是否为数字:str.isdigit()#是否为字母:str.isalpha()#是否为空格:str.isspace() def tongji(str): alpha = 0 ...
- 统计一段文字中出现频率最高的10个单词(c语言)
注:这次使用C语言做的这个程序.个别不懂的地方和算法部分是请教的其他同学,交流并吸收,所以收获颇多! 在程序中每一个地方我都做了注释,方便同学之间交流.也让老师容易看.程序也有很多不足的地方,但限于本 ...
- 使用PHP的strstr()函数来统计一段字符串中元音字母的个数(区分大小写)
<?php/**练习:统计一段字符串中所有元音字母的个数(区分大小写)*/$str='This is a test file.'; //原始字符串echo $str.'<br>'; ...
- OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】
/*================================================== 单词倒排 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一段英文 ...
- 实验:输入一篇英文新闻,以“#”结束,统计其中a-z这26个字母各出现的次数和总字符个数。(不区分大小写)
代码如下: #include <iostream> using namespace std; int main() { char ch; char s_letter[26]={'a','b ...
- 程序一 用记事本建立文件src.dat,其中存放若干字符。编写程序,从文件src.dat中读取数据,统计其中的大写字母、小写字母、数字、其它字符的个数,并将这些数据写入到文件test.dat中。
用记事本建立文件src.dat,其中存放若干字符.编写程序,从文件src.dat中读取数据,统计其中的大写字母.小写字母.数字.其它字符的个数,并将这些数据写入到文件test.dat中. #inclu ...
- java算法面试题:编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- 三道习题(1、将单词表中由相同字母组成的单词归成一类,每类单词按照单词的首字母排序,并按 #每类中第一个单词字典序由大到小排列输出各个类别。 #输入格式:按字典序由小到大输入若干个单词,每个单词占一行,以end结束输入。)
#coding=gbk ''' 1.将单词表中由相同字母组成的单词归成一类,每类单词按照单词的首字母排序,并按 #每类中第一个单词字典序由大到小排列输出各个类别. #输入格式:按字典序由小到大输入若干 ...
- C++统计一段文字中各单词出现的频率
#include <iostream> using namespace std; /* run this program using the console pauser or add y ...
随机推荐
- drf序列化器的实例
应用目录结构: views.py from django.shortcuts import render # Create your views here. from django.views imp ...
- fixed
之前我们见的fixed就是固定在低端.后来我遇到一个问题 如果 这样写: div{ position: fixed; left: 0; bottom: 0; } 内容吧div撑开,有多少算多少 di ...
- 025-quartz之spring部分配置模板
版本一: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...
- QQ会员2018春节红包抵扣券项目背后的故事
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 1. 活动数据 截止3月1日手Q运动红包会员礼包发放核销数据 参与红包活动用户数:2亿+ 发券峰值:52w/min 2. 需求背景 2.1 ...
- 一个典型案例为你解读TDSQL 全时态数据库系统
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯技术工程官方号发表在腾讯云+社区 经典案例 增量抽取.增量计算等都是T-TDSQL的经典案例.如下以增量计算为例,来分析T-TDS ...
- 腾讯毛华:智能交互,AI助力下的新生态
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 演讲人:毛华 腾讯云语音云总经理 背景:5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广 ...
- List< >泛型集合
//一旦你确定了泛型的类型,集合里的元素已经有了确切的定义 List<int> list = new List<int>(); //创建泛型集合的对象 list.Add(); ...
- C# 创建一个WCF服务
做代码统计,方便以后使用: app.config配置文件设置: <configuration> <system.serviceModel> <bindings> & ...
- (0!=0)==true? 记一个匪夷所思的问题
最近换了份工作,公司的开发框架是基于SSH自己搭建的.这个问题是我在解决一个需求的时候遇到的,其实解决这个疑惑的过程也就是读框架源码的过程,特此记录一下. 问题:ba.getState()!=CbBa ...
- Spring学习笔记:Spring概述,第一个IoC依赖注入案例
一.Spring的优点 企业及系统: 1.大规模:用户数量多.数据规模大.功能众多 2.性能和安全要求高 3.业务复杂 4.灵活应变 Java技术:高入侵式依赖EJB技术框架-->Spring框 ...