Python文本处理:单词提取和统计,借助matplotlib绘图
Python文本处理:单词提取和统计,借助matplotlib绘图
1、首先安装matplotlib绘图库
在电脑运行窗口输入cmd,右击命令提示符,以管理员身份运行。
在窗口输入:pip install matplotlib 回车
然后等待加载完成,出现successfully,则安装完成。
2、文件操作
打开(导入)文件 open()函数,并返回文件对象,形式:
<变量名>=open(file,mode=‘r’)#file为文件名:“文件.txt”,mode文件打开模式;
文件操作:读取、写入、定位…;
关闭文件 close()
打开模式 | 执行操作 |
---|---|
‘r’ | 以只读方式打开文本(默认))如果文件不存在,返回异 常FileNotFoundError |
‘w’ | 以写入的方式打开文件,文件不存在则创建,会覆盖已 存在的文件 |
‘a’ | 以写入模式打开,文件不存在则创建,如果文件存在, 则在末尾追加写入 |
‘x’ | 打开一个新文件来写数据。文件不存在则创建,如果数 据已经存在则返回异常FileExistsError |
‘b’ | 以二进制模式打开文件 |
‘t’ | 以文本模式打开(默认) |
‘+’ | 可读写模式(可添加到其它模式中使用) |
模式可以组合应用:如‘wb’表示写二进制数据,‘rt’表示读入文本文件方式;
读写文件内容的方法:
方法 | 功能 |
---|---|
file.readall | 读入整个文件内容,返回一个字符串或字节流 |
file.readline(size=-1) | 从文件中读入一行内容,如果给出参数,读入该行前 size长度的字符串或字节流 |
file.readline(hint=-1) | 从文件中读入所有行,以每行为元素形成一个列表, 如果给出参数,读入hint行 |
file.read(size=-1) | 从文件读取size个字符,当未给定size或给定负值的 时候,读取剩余的所有字符,文件指针指向文件末尾 |
file.write(str) | 将字符串str写入文件 |
file.writelines(lines) | 将一个元素为字符串的列表写入文件 |
file.seek(offset,from) | 改变当前文件操作指针的位置,从from(0代表文件起 始位置,1代表当前位置,2代表文件末尾)偏移offset 个字节 |
示例:将文本文件逐行打印输出
reading=open("file name","rt")
for line in reading.readlines():print(line)
reading.close
如果打开有编码的文件,如中文,需要使用codecs模块,设置编码方式:
import codecs
例:
f1=codecs.open('hongloumeng'.txt,"r","utf-8") #此处不能用t
3、matplotlib绘图
matplotlib是Python的一个2D绘图库,可生成绘图,直方图、散点图等,简单方便。
示例:
#导入matplotlib
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,100,10)
y=x/2
plt.figure()
plt.plot(x,y)
plt.xlabel('x') #设置纵坐标名称
plt.ylabel('y') #设置纵坐标名称
plt.title("y=x/2") #设置图的标题
plt.show() #现在图像
matplotlib的函数可在官网查看全部:
https://matplotlib.org/api/pyplot_summary.html
4、实例:文本单词提取并统计各个单词出现的次数,验证zipf定律
import matplotlib.pyplot as plt
import numpy as np#读入文章
f=open("GeorgeR.R.Martin.txt","rt")
all=f.read()
al1=f.read()
f.close()#创建一个字典,单词为键,单词出现的个数为相应的键值
count_word={}
#利用split()函数按空格划分单词,用lower()把单词的大写字母变成小写
for w in all.split():w_lowercase=w.lower()count_word[w_lowercase]=\count_word.get(w_lowercase,0)+1#用for索引获取字典的键值对,并用sort()函数排序
result=[(v,k) for k,v in count_word.items()]
result.sort()#创建一个新列表,并按大到小储存每个单词出现的次数
count=[]
for v,k in result[::-1]:count.append(v)print(f"Word{k}, occurs {v} times")#此语句用于打印各个单词出现的次数,由于太多了所以注释了#画zipf图,y轴为单词出现的次数,x轴为名次
y=count
x=range(1,len(y)+1)
plt.figure()
plt.loglog(x,y) #.loglog(x,y)函数在x轴和y轴上绘制具有对数比例的图
plt.xlabel('rank')
plt.ylabel('coutn')
plt.title("Zip")
plt.show()
Python文本处理:单词提取和统计,借助matplotlib绘图相关推荐
- python文本分析和提取_python文本分析和提取 Python 文本内容指定字段提取
使用python对txt文本进行分析和提取 首先,打开计算机上的pycharm编辑器,如下图所示,然后进入下一步. 开学以后,小编没有碰过电脑,第一次,这就说明了开学是多么的可怕 其次,完成上述步骤后 ...
- python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法
本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplo ...
- python画图为什么运行不出来_PyCharm中Matplotlib绘图不能显示UI效果的问题解决
问题描述 我们利用了Matplotlib的类Cursor,向图形添加一组纵横交叉的直线,从而实现图形界面中任何位置的数值定位的可视化效果. 但使用PyCharm,绘图结果在右侧的部分: 这固然是需要绘 ...
- 用java统计英文文本的单词个数_统计文本英文单词总个数,并列出每个单词的个数...
package test; /* * Task :统计文本英文单词总个数,并列出每个单词的个数 * * Date:2014.02.26 * *Author:璀若星辰 * */ import java. ...
- python统计单词出现次数最多的5个单词_【Python】统计文本中单词的出现次数前十的单词...
代码: # 读取一个文本,并且统计文本中单词的出现次数 def read_file(): # 在windows环境中的编码问题,指定utf-8 with open('F:/python源码/实验区/0 ...
- python中英文字频率_python实现统计文本中单词出现的频率详解
本文实例为大家分享了python统计文本中单词出现频率的具体代码,供大家参考,具体内容如下 #coding=utf-8 import os from collections import Counte ...
- python单词个数统计_Python 统计文本中单词的个数
1.读文件,通过正则匹配 def statisticWord(): line_number = 0 words_dict = {} with open (r'D:\test\test.txt',enc ...
- python实现统计文本当中单词数量
title: python实现统计文本当中单词数量 date: 2018-6-30 15:12:43 categories: Python tags: - python 关于用实现统计文本当中单词数量 ...
- linux awk统计文本单词,shell统计文本中单词的出现次数
Ubuntu14.04 给定一个文本,统计其中单词出现的次数 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.txt # ...
最新文章
- flutter报错Could not connect to lockdownd, error code -
- 思科将在网络中融入人工智能和机器学习
- http服务器 如何传输文件,http服务器 如何传输文件
- linux 双网卡浮动ip,Linux 双网卡绑定一个IP原理及实现
- Python 基础教程:两个list合并成一个字典的两种方法
- std::make_unique<T>和std::make_shared<T>
- hc sr04流程图_HC-SR04超声模块示例代码/原理图/说明书等全套资料
- Jenkins-安装jenkins2.7.1版本
- linux双向重定向之tee命令
- script标签的for属性和event属性
- Meshlab快捷键与菜单功能翻译
- 正则表达式校验手机号
- 从USB获得高效的双轨电源
- 微信小程序appid的修改方法
- [poj 1741]Tree 点分治
- Python 爬虫:抓取豆瓣top250电影数据
- 清华“天机芯”团队再发重磅研究!以全新类脑计算系统实现通用人工智能
- java人事管理系统
- 【DirectX 12】在Win10 10074上开启DirectX 12的调试功能
- linux摄像头拍照程序,Android开发:Camera初探——控制摄像头拍照
热门文章
- 【项目】在线OJ的项目,快进到自己造题刷
- python 正则 re.match_python正则表达式re.match()匹配多个字符方法的实现
- 美团饿了么陷《偷听门》,你被“偷听”过吗?
- panabit自动分析域名并添加解析后的IP
- kubesphere 随笔
- Android 弧形列表转盘的实现(一),弧形列表;
- Python爬虫爬取-爬取某个网页的精美壁纸
- 数据库面试题:Mysql如何进行死锁检测
- CSDN编辑器排版技巧/教程
- Android安卓进阶之——相比 Groovy 脚本, KTS 性能到底怎么样?