最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

使用 ChatGPT 做詞頻統(tǒng)計&詞云圖

2023-03-03 20:36 作者:翻譯技術點津  | 我要投稿

任務描述

請用Python撰寫一個中文文本分析的代碼,進行詞頻統(tǒng)計、繪制詞云圖。<br>
分析的數據是csv文件,過程使用pandas、pyecharts、jieba等庫。<br>
代碼生成后,按照數據導入、數據清洗、數據分析、結果展示四個章節(jié)部分對代碼進行中文講解,格式為markdown。

說明

- 以下內容,80%左右內容為chatGPT生成,大鄧工作主要是準備實驗數據,調試代碼,編輯章節(jié)。
- 實驗環(huán)境chatGPT PLUS,今天剛剛花了20美元,使用全局網絡模式下,chatGPT響應更穩(wěn)定快速。
- chatGPT PLUS雖然很強,結果依然有問題,最初生成的詞云圖是基于wordcloud庫,
該庫不支持中文,繪制的圖片是亂碼的。這里指導ta改為pyecharts制作詞云圖。

教程(國內信用卡不支持,綁定需要國外的信用卡), 可以私信大鄧 372335839, 備注【姓名-學校-專業(yè)


一、數據導入

首先需要導入需要的庫:pandas、jieba、pyecharts等。如果電腦沒有相應的庫,可以命令行中執(zhí)行以下安裝命令

pip3 install pyecharts
pip3 install jieba

讀取csv文件,使用pandas庫的read_csv函數:

import pandas as pd
import jieba
import matplotlib.pyplot as plt
from pyecharts import options as opts
from pyecharts.charts import Bar, WordCloud


df = pd.read_csv('data.csv', encoding='utf-8')
df.head()

Run



二、數據清洗

清洗數據是文本分析的第一步,這里需要對數據進行去重、去除空值、去除停用詞等操作。

# 去重
df = df.drop_duplicates()

# 去除空值
df = df.dropna()

# 加載停用詞表
stopwords = []
with open('stopwords.txt', 'r', encoding='utf-8') as f:
for line in f:
stopwords.append(line.strip())

# 分詞,并去除停用詞
text = ''
for content in df['desc']:
seg_list = jieba.cut(content)
for word in seg_list:
if word not in stopwords:
text += word + ' '

#查看text部分內容
text[:200]
Building prefix dict from the default dictionary ...
Dumping model to file cache /var/folders/y0/4gqxky0s2t94x1c1qhlwr6100000gn/T/jieba.cache
Loading model cost 0.460 seconds.
Prefix dict has been built successfully.

Run

'唐天寶 十四年 長安城 小吏 李善德 突然 接到 一個 任務 貴妃 誕日 之前 嶺南 運來 新鮮 荔枝 荔枝 “ 一日 色變 兩日 香變 三日 味變 ” 嶺南 長安 五千余里 山水 迢 ... ◆ 編輯 推薦 ★ 〇 一年 國際 布克獎 美國 國家圖書獎 短 名單 作品 ★ 入選 〇 二一 年度 紐約時報 書評 周刊 十大 好書 ★ 入選 奧巴馬 〇 一年 夏季 閱讀 書單 ★ .'

三、數據分析

使用jieba庫對文本進行分詞處理,然后統(tǒng)計每個詞語的出現頻率。這里使用Python的字典數據結構進行計數。

# 分詞
seg_list = jieba.cut(text)

# 統(tǒng)計詞頻
word_count = {}
for word in seg_list:
if len(word) >= 2: # 只統(tǒng)計長度大于等于2的詞語
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1

word_count

Run

{'唐天寶': 4,
'十四年': 2,
'長安城': 4,
'小吏': 2,
'李善德': 2,
'突然': 5,
'接到': 2,
......
'文筆': 1,
'行云流水': 1,
'醫(yī)學': 1,
'研究生': 1,
'大為': 1,
'空懷': 1,
'壯志': 1,
'無職無權': 1,
'時來運轉': 1,
'有名': 2,
'有利': 1,
'真切': 1,
'旅程': 1,
'困擾': 1,
'傅真': 1,
'暌違': 1,
'七年': 1,
...}

四、結果展現

接下來,根據統(tǒng)計結果繪制詞云圖和柱狀圖。

4.1 詞云圖

繪制詞云圖,使用pyecharts的WordCloud庫:


import pyecharts.options as opts
from pyecharts.charts import WordCloud


wordfreqs = [(w, str(f)) for w,f in word_count.items()]


(
WordCloud()
.add(series_name="", data_pair=wordfreqs, word_size_range=[20, 100])
.set_global_opts(
title_opts=opts.TitleOpts(title="詞頻分析", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
.render("詞云圖.html") #存儲位置
)
'/Users/deng/Desktop/2023-02-11-chatgpt-plus-for-text-mining/詞云圖.html'

4.2 柱狀圖

繪制柱狀圖



#
top_n = 20
word_count_sorted = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
word_top_n = word_count_sorted[:top_n]

bar = Bar()
bar.add_xaxis([w[0] for w in word_top_n])
bar.add_yaxis("詞頻", [w[1] for w in word_top_n])
bar.set_global_opts(title_opts=opts.TitleOpts(title="詞頻統(tǒng)計"), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)))
bar.render("word_count.html")

'/Users/deng/Desktop/2023-02-11-chatgpt-plus-for-text-mining/word_count.html'


轉載來源:大鄧和他的Python

使用 ChatGPT 做詞頻統(tǒng)計&詞云圖的評論 (共 條)

分享到微博請遵守國家法律
固原市| 桐庐县| 石门县| 莆田市| 祁连县| 荃湾区| 商南县| 娄烦县| 方正县| 辽阳县| 平乡县| 墨竹工卡县| 尖扎县| 深圳市| 调兵山市| 贵溪市| 景泰县| 儋州市| 永嘉县| 丰镇市| 丘北县| 邵武市| 普洱| 伊川县| 高尔夫| 郸城县| 丹江口市| 梁河县| 尼木县| 夏津县| 阳曲县| 龙川县| 新泰市| 阿鲁科尔沁旗| 武乡县| 兰州市| 天水市| 武义县| 云阳县| 扎兰屯市| 旌德县|