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绘图相关推荐

  1. python文本分析和提取_python文本分析和提取 Python 文本内容指定字段提取

    使用python对txt文本进行分析和提取 首先,打开计算机上的pycharm编辑器,如下图所示,然后进入下一步. 开学以后,小编没有碰过电脑,第一次,这就说明了开学是多么的可怕 其次,完成上述步骤后 ...

  2. python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法

    本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplo ...

  3. python画图为什么运行不出来_PyCharm中Matplotlib绘图不能显示UI效果的问题解决

    问题描述 我们利用了Matplotlib的类Cursor,向图形添加一组纵横交叉的直线,从而实现图形界面中任何位置的数值定位的可视化效果. 但使用PyCharm,绘图结果在右侧的部分: 这固然是需要绘 ...

  4. 用java统计英文文本的单词个数_统计文本英文单词总个数,并列出每个单词的个数...

    package test; /* * Task :统计文本英文单词总个数,并列出每个单词的个数 * * Date:2014.02.26 * *Author:璀若星辰 * */ import java. ...

  5. python统计单词出现次数最多的5个单词_【Python】统计文本中单词的出现次数前十的单词...

    代码: # 读取一个文本,并且统计文本中单词的出现次数 def read_file(): # 在windows环境中的编码问题,指定utf-8 with open('F:/python源码/实验区/0 ...

  6. python中英文字频率_python实现统计文本中单词出现的频率详解

    本文实例为大家分享了python统计文本中单词出现频率的具体代码,供大家参考,具体内容如下 #coding=utf-8 import os from collections import Counte ...

  7. python单词个数统计_Python 统计文本中单词的个数

    1.读文件,通过正则匹配 def statisticWord(): line_number = 0 words_dict = {} with open (r'D:\test\test.txt',enc ...

  8. python实现统计文本当中单词数量

    title: python实现统计文本当中单词数量 date: 2018-6-30 15:12:43 categories: Python tags: - python 关于用实现统计文本当中单词数量 ...

  9. linux awk统计文本单词,shell统计文本中单词的出现次数

    Ubuntu14.04 给定一个文本,统计其中单词出现的次数 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.txt # ...

最新文章

  1. flutter报错Could not connect to lockdownd, error code -
  2. 思科将在网络中融入人工智能和机器学习
  3. http服务器 如何传输文件,http服务器 如何传输文件
  4. linux 双网卡浮动ip,Linux 双网卡绑定一个IP原理及实现
  5. Python 基础教程:两个list合并成一个字典的两种方法
  6. std::make_unique<T>和std::make_shared<T>
  7. hc sr04流程图_HC-SR04超声模块示例代码/原理图/说明书等全套资料
  8. Jenkins-安装jenkins2.7.1版本
  9. linux双向重定向之tee命令
  10. script标签的for属性和event属性
  11. Meshlab快捷键与菜单功能翻译
  12. 正则表达式校验手机号
  13. 从USB获得高效的双轨电源
  14. 微信小程序appid的修改方法
  15. [poj 1741]Tree 点分治
  16. Python 爬虫:抓取豆瓣top250电影数据
  17. 清华“天机芯”团队再发重磅研究!以全新类脑计算系统实现通用人工智能
  18. java人事管理系统
  19. 【DirectX 12】在Win10 10074上开启DirectX 12的调试功能
  20. linux摄像头拍照程序,Android开发:Camera初探——控制摄像头拍照

热门文章

  1. 【项目】在线OJ的项目,快进到自己造题刷
  2. python 正则 re.match_python正则表达式re.match()匹配多个字符方法的实现
  3. 美团饿了么陷《偷听门》,你被“偷听”过吗?
  4. panabit自动分析域名并添加解析后的IP
  5. kubesphere 随笔
  6. Android 弧形列表转盘的实现(一),弧形列表;
  7. Python爬虫爬取-爬取某个网页的精美壁纸
  8. 数据库面试题:Mysql如何进行死锁检测
  9. CSDN编辑器排版技巧/教程
  10. Android安卓进阶之——相比 Groovy 脚本, KTS 性能到底怎么样?