日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python文本词频统计是什么_python 大批量文本分词 以及词频统计 (高效处理案例)...

發布時間:2025/3/11 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python文本词频统计是什么_python 大批量文本分词 以及词频统计 (高效处理案例)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境:python3.6

庫:jieba,xlwt,xlwings,collections

前兩天有個需求要對一張表里的中文語句進行分詞,并統計每個詞語出現的次數。

表格1231.xlsx大致內容如下:

由于表格內容過大,約有100W條數據,普通讀取表格的方式效率非常慢,所以這次用的方法是xlwings,

xlwings是目前看來操作excel最快速、做的比較完善的一個庫,優化很好,調用方式非常靈活。對讀取大表格的有很高的效率

以下是完整的代碼:

import jieba

import xlwt, xlrd

import xlwings as xw

from collections import Counter

# 定義一個空列表

all_word_list = []

# 分詞

def trans_CN(text):

# 接收分詞的字符串

word_list = jieba.cut(text)

# 分詞后在單獨個體之間加上空格

result = " ".join(word_list)

# 轉換成list

result = result.split(" ")

return result

# 判斷詞是否為中文

def is_Chinese(word):

for ch in word:

if '\u4e00' <= ch <= '\u9fff':

return True

return False

start_row = 2 # 處理Excel文件開始行

end_row = 1000000 # 處理Excel結束行

# 指定不顯示地打開Excel,讀取Excel文件

app = xw.App(visible=False, add_book=False)

wb = app.books.open(r"./1231.xlsx") # 打開Excel文件

sheet = wb.sheets[9] # 選擇第0個表單

# 讀取Excel表單前1000000行的數據,讀取Excel表單前1000000行的數據

for row in range(start_row, end_row):

print(row)

row_str = str(row)

# 循環中引用Excel的sheet和range的對象,讀取C列的每一行的值

content_text = sheet.range('C' + row_str).value

# print(content_text)

if not content_text:

continue

if not isinstance(content_text, str):

continue

# 長度小于4的語句 過濾

if len(content_text) > 3:

word_list = trans_CN(content_text)

print("分詞后", word_list)

# 判斷列表元素是否為中文,將非中文詞移除

for s in word_list:

if not is_Chinese(s):

word_list.remove(s)

all_word_list += word_list

# 統計列表中元素出現的頻率

counter = Counter(all_word_list)

print("統計頻率完成")

# 將列表中的元素按照頻率大小排序

result_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)

# 將結果寫入表格

print("開始寫入表格")

myWorkbook = xlwt.Workbook()

mySheet = myWorkbook.add_sheet('Sheet1', cell_overwrite_ok=True)

rows = 0

for i in result_list:

mySheet.write(rows, 0, i[0])

mySheet.write(rows, 1, i[1])

rows += 1

myWorkbook.save('result.xls')

# 保存并關閉Excel文件

wb.save()

wb.close()

運行完成后,保存為result.xls,查看結果:

A列為分詞,B列為該詞出現的次數

總結

以上是生活随笔為你收集整理的python文本词频统计是什么_python 大批量文本分词 以及词频统计 (高效处理案例)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。