很簡單的乙個實現,當初以為很複雜。把附錄的檔案貼上就行
# -*- coding: utf-8 -*-
"""created on tue mar 5 14:29:02 2019
@author: psdz
"""#jieba庫是用來分詞的庫
import jieba
import jieba.analyse
#是用來進行計算機系統操作的庫
import io
import os
import os.path
import csv
from string import punctuation
#正規表示式庫
import re
import sys
#處理漢字的中文文字庫
from zhon.hanzi import punctuation
#這裡放著你要操作的資料夾名稱
root_path = '馮唐作品集'
#用來儲存統計好之後詞頻檔案存放的位置
csv_root = "馮唐作品詞頻統計"
#目錄下的檔名全部獲取儲存在files中
files = os.listdir(root_path)
#建立資料夾,用來儲存統計之後的詞頻,放到csv檔案裡面
if not os.path.exists(csv_root):
#建立資料夾
os.mkdir(csv_root)
#建立用來統計詞頻的csv檔案
def csv_create(name):
full_path = csv_root +"/"+ name + '.csv'
#建立檔案,已寫入的方式開啟,但是不寫,建立完畢之後就關閉檔案
file = open(full_path,'w')
#關閉檔案
file.close()
#返回csv檔案的路徑,獲取檔案路徑以便寫入
return full_path
#將資料夾中所有檔案名字進行讀取
for file in files :
#準確獲取乙個txt的位置,利用字串的拼接
file_path = root_path +"/"+ file
#開啟相應的txt檔案
text = open(file_path,"r", encoding='utf-8').read()
#去掉中文標點
text = re.sub("[{}]+".format(punctuation), "", text)
#使用jieba進行分詞,精確模式,返回列表
words=jieba.lcut(text)
counts={}
#建立對應文章的csv檔案
csv_path = csv_create(file)
out = open(csv_path , 'a',encoding='utf-8')
#設定寫入模式
csv_write = csv.writer(out,dialect='excel')
#將文章的詞彙進行分詞
for word in words:
counts[word]=counts.get(word,0)+1
#items轉list型別
items=list(counts.items())
#應該是按照出現的頻率進行排序功能,後期再查
items.sort(key=lambda x:x[1],reverse=true)
#開始寫入csv檔案
#for i in range(0, len(words) - word_str - 100):
for i in range(len(items)-1):
word,count=items[i]
#csv寫入具體內容
_str = word,count
csv_write.writerow(_str)
python學習筆記之利用jieba庫進行詞頻分析
jieba github倉庫位址 詞頻統計 import jieba 沒有安裝jieba庫可以在 使用命令列 pip install jieba 進行自動安裝 deffrequency 讀取檔案 txt open 檔案所在目錄.txt r encoding utf 8 read 這裡檔案路徑位置填寫...
python中jieba庫的使用
英語中我們可以通過.split 對字串進行分割,從而獲取到單詞的列表。比如如下 對哈姆雷特中前10英文單詞頻率進行了統計排序 calhamletv1.py def gettext txt open word frequency hamlet.txt r read txt txt.lower for ...
jieba庫的使用
jieba是優秀的中文分詞第三方庫 中文文字需要通過分詞獲得單個的詞語 jieba是優秀的中文分詞第三方庫,需要額外安裝 jieba庫提供三種分詞模式,最簡單只需掌握乙個函式 cmd命令列 pip install jieba jieba分詞依靠中文詞庫 利用乙個中文詞庫,確定漢字之間的關聯概率 漢字...