天天看點

python做詞雲做文本處理_Python學習第六天學習彙總(python檔案處理和詞雲的使用)...

一、檔案的使用

檔案處理分為三個步驟:

檔案的打開

對打開的檔案的操作

關閉檔案

原理流程圖:

python做詞雲做文本處理_Python學習第六天學習彙總(python檔案處理和詞雲的使用)...

1.1 檔案的打開

​使用open方法

python做詞雲做文本處理_Python學習第六天學習彙總(python檔案處理和詞雲的使用)...

注:

​檔案路徑和名稱:"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")

運作結果:

python做詞雲做文本處理_Python學習第六天學習彙總(python檔案處理和詞雲的使用)...

執行個體二:

# 導入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的檔案的使用、文本詞頻統計分析和詞雲的制作。python檔案的使用是一個比較重點的東西,因為以後程式設計是需要和檔案之間進行互動的,而掌握這個知識點,對我們的之後做項目等都非常有幫助。而文本詞頻統計,就是對之前學習的東西和檔案的一種結合使用的小案例,幫助我們更深的去了解和學習python的具體知識點。而詞雲就是一個比較好玩的東西,用來做一些自己感興趣的東西也是非常不錯的呢。