python数据获取与可视化分析

题目要求

实验目的:

  1. 熟练掌握数据获取的方法、数据预处理的方法。
  2. 熟练掌握 Python 常用的绘图方法。

实验内容:

  1. 用自己的姓名或学号新建一个文件夹,在文件夹中新建一个文本文件“111.txt”。

  2. 从网上复制网页中的文章( 网址因原因不能打出来,随便找篇文章也行)”中的文本内容保存到“111.txt”中。

  3. 将“111.txt”文件中的内容的中文提取到“222.txt”文档中(使用 re方法)。

  4. 使用 jieba 对提取的中文文档(222.txt)进行分词处理,并统计出现频率最高的前 100 个。

  5. 使用 wordcloud 和 matplotlib.pyplot
    方法对“222.txt”中的分词制作分词云图,并保存为“分词云图 1.png”。

  6. 使用“222.txt”中出现频率最高的前 10 个词语,制作条形图,X 轴对应10 个词语,y
    轴对应每个词语的频率值,保存成“条形图 2.png”。

(附:有余力的人可以将实验内容的第(1)(2)步换成爬取网页内容的操作。)

参考代码及实验结果:
(自己补全实验过程中的代码及实验结果)

先学会提取文字(中文)到txt文件

提取TXT文本中指定内容的一种方法
python利用正则表达式提取文本中特定内容

python re模块

自学网址:
python自己的
博客园的

Python正则表达式中的re.S,re.M,re.I的作用

菜鸟教程正则表达式
浅谈正则表达式

Python jieba库

博客园的
实例:
python jieba库的基本使用
基于python中jieba包的详细使用介绍

代码(By ZJQ)

#ZHANGDEDAIMA
import re
import jieba
import wordcloud
from matplotlib import pyplot as plt
import numpy as np
from PIL import Image

f=open('B:\\BaiduNetdiskDownload\\coding2021\\Python\\Python111.txt','r', encoding = 'utf-8')
count = f.read()


#提取中文
zh = u"([\u4e00-\u9fff]+)"  # 中文的正则标准
re_words = re.compile(zh)
results = re_words.findall(count)

new_file = "B:\BaiduNetdiskDownload\coding2021\Python\222.txt"
f = open(new_file, 'w')
f.writelines(results)
f.close()

#分词处理
#f=open(new_file,'r')
#txt=f.read()
#words=jieba.lcut(txt)
#f.close()
#f = open(new_file, 'w')
#f.writelines(words)
#f.close()
#统计词频
#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(100):
#    word, count = items[i]
#    print("{0:<5}{1:>5}".format(word, count))
#分词
text = open('B:\BaiduNetdiskDownload\coding2021\Python\222.txt', 'r', encoding = 'gbk').read()
cut_text = jieba.cut(text)
fc1 = ' '.join(cut_text)
#词云图
bg1 = np.array(Image.open('B:\BaiduNetdiskDownload\coding2021\Python\pingguo.jpg'))
#词云图初始化
cy1 = wordcloud.WordCloud(
    font_path = 'C:\Windows\Fonts\STXINGKA.TTF',
    background_color = 'white',
    width = 500,
    height = 400,
    max_font_size = 50,
    min_font_size = 10,
    mask = bg1
    )
cy1.generate(fc1)
plt.figure('词云图例')
plt.imshow(cy1)
plt.axis('off')
plt.show()

在这里插入图片描述

注:代码作者不是本人,我写了她名字的缩写,如侵权则改为只能自己看。

猜你喜欢

转载自blog.csdn.net/CSDN_YJX/article/details/121253137