python做词云做文本处理

编程入门 行业动态 更新时间:2024-10-09 18:21:22

python做词云做<a href=https://www.elefans.com/category/jswz/34/1771357.html style=文本处理"/>

python做词云做文本处理

一、文件的使用

文件处理分为三个步骤:

文件的打开

对打开的文件的操作

关闭文件

原理流程图:

1.1 文件的打开

​使用open方法

注:

​文件路径和名称:"D:/PYE/f.txt" 或 "D:\PYE\f.txt"

​源文件同目录可省路径:"./PYE/f.txt" 或 "f.txt"

1.2 文件的操作

文件的打开模式

描述

'r'

只读模式,默认值,如果文件不存在,返回FileNotFoundError

'w'

覆盖写模式,文件不存在则创建,存在则完全覆盖

'x'

创建写模式,文件不存在则创建,存在则返回FileExistsError

'a'

追加写模式,文件不存在则创建,存在则在文件最后追加内容

'b'

二进制文件模式

't'

文本文件模式,默认值

'+'

与r/w/x/a一同使用,在原功能基础上增加同时读写功能

文本形式、只读模式、默认值:f = open("f.txt")

文本形式、只读模式、同默认值:f = open("f.txt", "rt")

文本形式、覆盖写模式:f = open("f.txt", "w")

文本形式、追加写模式+ 读文件:f = open("f.txt", "a+")

文本形式、创建写模式:f = open("f.txt", "x")

二进制形式、只读模式:f = open("f.txt", "b")

二进制形式、覆盖写模式:f = open("f.txt"):f = open("f.txt", "wb")

1.3 文件的关闭

<变量名>.close() # 变量名为文件句柄

1.4 文件使用案例

# 文件的读取

f = open(r'F:\shpython11\pycharmwork\first_project\file\file.py','r')

data = f.read()

print(data)

f.close()

# 文件的编辑(覆盖写入,清空文件后写入)

fw = open(r'F:\shpython11\pycharmwork\first_project\file\file.py','w+')

fw.writelines(r'abc=new file')

f.close()

二、文本词频统计

​文本词频统计

需求:一篇文章,出现了哪些词?哪些词出现得最多?

该怎么做呢?

2.1 英文词频统计

程序代码:

# 1.首先先打开要统计的文件

f = open(r'F:\shpython11\pycharmwork\first_project\file\hamlet.txt','r',encoding='utf8')

# 把数据读取出来并且讲所有字符转为小写字母

data = f.read().lower()

# 用一个字符串接收所有 可能在文本中出现的 标点符号和其他字符

zf = r'!"#$%&()*+,-.'+"'"+r'/:;<=>?@[\\]^_‘{|}~'

# 去除文本中的多余的字符和标点符号

for i in data:

if i in zf:

data = data.replace(i," ")

# 对读取的内容进行切分成序列

data_split = data.split()

# 创建一个用来存储的字典

data_dict = {}

# 循环序列将重复的单词,计数后放入字典中

for i in data_split:

if i not in data_dict:

data_dict[i] = 1

else:

data_dict[i] += 1

# 将字典转为序列 进行计数排序

list_data = list(data_dict.items())

# 定义一个取值函数

def find_values(i):

return i[1]

list_data.sort(key=find_values,reverse=True)

# 循环输出出现次数最多的是个单词

for i in list_data[:10]:

print(f'{i[0]:^9} {i[1]:^5}')

运行结果:

the 953

and 856

to 657

of 581

i 519

you 498

a 471

my 447

in 388

hamlet 366

2.2 中文词频的使用

程序代码:

# # 中文词频统计

# 导入jieba库

import jieba

# 创建一个字典 用来

data_dict = {}

excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此","商议","如何","丞相","主公",

"军士","左右","军马","引兵","次日","大喜"}

f = open(r'F:\shpython11\pycharmwork\first_project\file\threekingdoms.txt','r',encoding='utf8')

data = jieba.lcut(f.read())

for word in data:

if len(word) == 1:

continue

if word in excludes:

continue

if '曰' in word:

word = word.replace('曰',"")

if word in data_dict:

data_dict[word] += 1

else:

data_dict[word] = 1

def find_values(i):

return i[1]

list_data = list(data_dict.items())

list_data.sort(key=find_values,reverse=True)

for i in list_data[:10]:

print(f'{i[0]:^8} {i[1]:^5}')

运行结果:

孔明 1226

玄德 975

曹操 953

关公 510

张飞 358

吕布 300

赵云 278

刘备 277

云长 265

孙权 264

三、词云的使用

3.1 基本分析

基本思路

步骤1:读取文件、分词整理

步骤2:设置并输出词云

步骤3:观察结果,优化迭代

3.2 具体实现

实例:

### 制作词云

# 导入wordcloud云库模块

import wordcloud

# 导入jieba模块库

import jieba

# 制作一个简单的词云

# 要制作成云库的文本内容

txt = "刘梦是这个世界最漂亮的女孩没有之一"

# 设置云库的背景颜色,字体,宽度,高度等

w = wordcloud.WordCloud(background_color="white",font_path=r"C:\Windows\Fonts\FZLTCXHJW.TTF",width=400,height=400)

# 将内容 放入云库中

w.generate(" ".join(jieba.lcut(txt)))

# 将制作好的云词导出来

w.to_file("test.png")

运行结果:

实例二:

# 导入wordcloud云库模块

import wordcloud

# 导入jieba库

import jieba

# # 词云进阶

# 打开文本文件

f = open(r'F:\shpython11\pycharmwork\first_project\file\threekingdoms.txt','r',encoding='utf8')

# 将文本内容放大 data 变量中 存储为等下要制作的云库内容

data = " ".join(jieba.lcut(f.read()))

# 设置云库的背景颜色,字体,宽度,高度等

w = wordcloud.WordCloud(background_color="white",font_path=r"C:\Windows\Fonts\FZLTCXHJW.TTF",width=1000,height=800)

w.generate(data)

w.to_file("test2.png")

运行结果:

今天的课后练习实例题

总结

今天的上课学习的是python的文件的使用、文本词频统计分析和词云的制作。python文件的使用是一个比较重点的东西,因为以后编程是需要和文件之间进行交互的,而掌握这个知识点,对我们的之后做项目等都非常有帮助。而文本词频统计,就是对之前学习的东西和文件的一种结合使用的小案例,帮助我们更深的去了解和学习python的具体知识点。而词云就是一个比较好玩的东西,用来做一些自己感兴趣的东西也是非常不错的呢。

更多推荐

python做词云做文本处理

本文发布于:2024-02-28 02:41:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767673.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文本   python   做词云做

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!