INNERSO

博主口癖一览

论文遇到文本识别词频统计我卖惨求换题,博客想做点年终统计我二话不说火速开动。

一开始只是想着年终了要不也做点什么博客总结,比如看看这一年的关键词是什么。用 python 又是 jieba 又是 wordcloud 筛选了两个字及以上的非数字、英文词语后发现根本没有啥关键词,只是口癖大赏罢了。(用的是建站以来所有的博文不单是 24 年的)

前十高频词全部都是习惯用语,引用毛象上看到的一条,“真的感觉没有真的感觉就不会说话了”,“真的特别喜欢用真的感觉”。倒是“没有”断层第一有点意料之外,居然会说得这么经常。十一至二十高频词开始有了一些主题,比如“眼睛”、“女性”、“女足”、“粉丝”、“猫咪”。第二十个词是“晚上”,晚起晚睡人士大概很多事情都是在晚上做的所以提到的次数多吧。

排名词语词频排名词语词频
1没有12111眼睛36
2最后5212女性35
3喜欢5113这种32
4现在4714需要30
5真的4615可能29
6特别4616女足29
7看到4317粉丝29
8感觉4318猫咪28
9很多4119感受27
10觉得3620晚上26

呈上词云(用了猫咪图片做遮罩,P2试了下用图片颜色做文字颜色):

wc1

wc2

代码
 1import os
 2import jieba
 3from wordcloud import WordCloud,ImageColorGenerator
 4import re
 5from collections import Counter
 6import imageio
 7
 8# 设置停用词,哈工大版 from github & 手工加了些词
 9
10stopwords_file = '/Users/joy/Desktop/hit_stopwords.txt'
11with open(stopwords_file, 'r', encoding='utf-8') as f:
12stopwords = set(f.read().splitlines())
13
14# 遍历指定文件夹下的所有 md 文件
15
16md_folder = '/Users/joy/Documents/hugoblog/content/posts'
17text = ''
18for root, dirs, files in os.walk(md_folder):
19for file in files:
20if file.endswith('.md'):
21filepath = os.path.join(root, file)
22with open(filepath, 'r', encoding='utf-8') as f:
23text += f.read()
24
25# 使用 jieba 进行分词
26
27words = jieba.lcut(text)
28
29# 过滤停用词、单个字母数字组合以及长度小于 2 的词
30
31words = [word for word in words if len(word) >= 2 and word.strip() and word not in stopwords and not re.match(r'^[a-zA-Z0-9]+$', word)]
32
33# 计算词频
34
35word_counter = Counter(words)
36
37top_words = word_counter.most_common(100)
38print("输入二个字及以上单词的词频:")
39for word, count in top_words:
40print(word, count)
41
42# 生成遮罩
43
44mask_image = '/Users/joy/Desktop/cat.png'
45mask = imageio.imread(mask_image)
46
47# 生成词云,mac 需要把字体定位到系统字体文件夹,不如中文会显示框框
48
49wc1 = WordCloud(font_path="/System/Library/fonts/PingFang.ttc", width=800, height=400, background_color='white',mask=mask).generate_from_frequencies(word_counter)
50
51# 保存词云图像
52
53wc1.to_file('wc1.png')
54
55# 生成遮罩
56
57color_image = '/Users/joy/Desktop/test.png'
58color=imageio.imread(color_image)
59
60# 提取颜色
61
62img_colors = ImageColorGenerator(color) #生成词云
63wc2 = WordCloud(font_path="/System/Library/fonts/PingFang.ttc", width=800, height=400, background_color='white',mask=color).generate_from_frequencies(word_counter) #修改字体颜色
64wc2.recolor(color_func=img_colors) #保存图像
65wc2.to_file('wc2.png')

<< Previous Post

|

Next Post >>

#HUGO #词云 #统计 #花里胡哨

x