Python 制作信息科技新课标词云

1、课标pdf转txt

        网上有很多网络应用可以转,但要Q,我用АББYY FineReader转换的,用些问题,手工校正了一下,也可以用adobe Acrobat XI Pro来转,但效果没前者好。

2、自建用户字典mydict.txt

如下一行一个单词

数据
算法
网络
信息处理
信息安全
信息隐私
信息意识
计算思维
数字化学习与创新
信息社会责任
数字素养
信息素养
核心素养
原始创新
原创精神
自主可控技术
人工智能
创新
国家安全
网络安全
数据安全
跨学科主题
物联网
互联网
共享
在线学习
在线社会
在线平台
信息科技
真实性学习
科学原理
数字时代
在线社会
数字设备
解决问题
科技伦理
体验过程
控制的场景

3、用结巴分词

'''
用结巴分词,统计词频,定义了一个常用词词典
'''
import jieba

file = 'newkebiao.txt'
file_userdict = 'mydict.txt'
jieba.load_userdict(file_userdict)
f = open(file, 'r', encoding='UTF-8').read()
words = jieba.cut(f, cut_all=False, HMM=True)
counts = {}
for word in words:
    if len(word) == 1:
        continue
    else:
        counts[word] = counts.get(word, 0) + 1

items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(len(items)):
    word, count = items[i]
    print("{0:<12}{1:>3}".format(word, count))


程序运行结果:

D:\Python10\python.exe D:/PythonDemo/demo3.py
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Bobo\AppData\Local\Temp\jieba.cache
Loading model cost 0.428 seconds.
Prefix dict has been built successfully.
学生          276
学习          248
数据          139
信息          132
通过          126
问题          120
信息科技        119
生活          115

...(省略若干行)

个人观点          1
有序            1
自立自强          1

4、制作云图

由于用些词无需显示,用第三步得到的词与词频做了一个停用词表stopwords.txt

from wordcloud import WordCloud, ImageColorGenerator, STOPWORDS
import matplotlib.pyplot as plt
from matplotlib.pyplot import imread
import jieba

file = 'newkebiao.txt'
file_userdict = 'mydict.txt'
jieba.load_userdict(file_userdict)
text = ""
with open(file, 'r', encoding='UTF-8') as f:
    for line in f.readlines(): #按行读文件
        # print(line)
        words = jieba.cut(line, cut_all=False, HMM=True)
        # print("/".join(words))
        counts = {}
        for word in words:
            if len(word) == 1:
                continue
            else:
                counts[word] = counts.get(word, 0) + 1
        keys = [k for k, v in counts.items()]
        text += " ".join([k for k in keys])

list_text = list(text.split())  # 将空格分隔的字符串转为列表

text = " ".join(i for i in list_text)

backg_pic = imread('mask.jpg')  # 读入背景图片

# 加载停用词表
stopwords_file = 'stopwords.txt'
with open(stopwords_file, "r", encoding='UTF-8') as words:
    stopwords = [i.strip() for i in words]

# 设置词云样式
wc = WordCloud(
    background_color='white',
    stopwords=stopwords,
    mask=backg_pic,
    font_path='simhei.ttf',
    max_words=30,
    max_font_size=200,
    random_state=30, scale=1.8)

wc.generate_from_text(text)
image_colors = ImageColorGenerator(backg_pic)
plt.imshow(wc)
plt.axis('off')
plt.show()
wc.to_file("wordcloud.png")

5、最后生成的词云图

将课标分词后试着用网上的“微词云”来做,对于网上免费的东西,他们都是一个套套,只好放弃。

资源有新课标文本、自定义词典、停用词典

说明:以下资源仅做学习研究之用,侵权请删除!!!

资源链接:链接:https://pan.baidu.com/s/1lwNw4z6SP4bKCV8UIbs84A?pwd=148r 
提取码:148r 
 

猜你喜欢

转载自blog.csdn.net/chinagaobo/article/details/124756588