【python】python新闻内容zhua取分析词云可视化(源码)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【python】python新闻内容获取分析词云可视化(源码)【独一无二】



一、设计要求

通过对搜狐新闻网页的内容进行获取和处理,提取其中的中文文本信息。然后利用正则表达式去除非中文字符,使用jieba库进行中文分词,并过滤停用词。接着统计各词语的词频并按照词频降序排序,最后输出词频最高的前50个词汇。同时,根据词频生成词云图,展示文本数据的可视化结果。

网站的内容如下:

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。👈👈👈

主要功能实现如下:

  1. 使用 requests 库发送请求并获取指定网页的内容。
  2. 使用 BeautifulSoup 库解析网页内容,提取文本信息。
  3. 使用正则表达式去除非中文字符,只保留中文文本内容。
  4. 使用 jieba 进行中文分词。
  5. 过滤停用词(如’的’、‘和’、'是’等),并对分词结果进行处理。
  6. 统计分词后各词语的词频,显示柱状图。
  7. 对词频进行降序排序,并输出词频最高的前50个词。
  8. 指定中文字体文件路径,生成词云图。
  9. 显示生成的词云图。

二、功能展示

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。👈👈👈

2.1. zhua取内容

在这里插入图片描述

2.2. 词频统计

工作: 10
报告: 10
发展: 10
政府: 8
生态环境: 5
一年: 5
江苏: 4
全文: 3
十三届: 3
全国人大: 3
五次: 3
会议: 3
新华社: 3
经济社会: 3
任务: 3
主要: 3
目标: 3
增长: 3
改善: 3
实施: 3
江苏省: 3
来源: 2
李克强: 2
总理: 2
代表: 2
国务院: 2
回顾: 2
二年: 2
总体: 2
要求: 2
政策: 2
取向: 2
三年: 2
指出: 2
统筹: 2
全年: 2
十四五: 2
今年: 2
左右: 2
城镇: 2
新增: 2
就业: 2
以上: 2
控制: 2
经济: 2
基本: 2
保持: 2
持续: 2
着力: 2
创新: 2

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。👈👈👈

使用柱状图展示词频前10名的字段。柱状图如下:

在这里插入图片描述

2.3. 词云展示

在这里插入图片描述


三、代码分析

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。👈👈👈

  1. 导入所需的库:

    import requests
    from bs4 import BeautifulSoup
    import jieba
    import matplotlib.pyplot as plt
    import re
    

    代码导入了执行任务所需的库:

    • requests:用于向网页发送HTTP请求。
    • BeautifulSoup:从bs4库,用于解析HTML和XML文档。
    • jieba:一个中文分词库,用于处理中文文本。
    • matplotlib.pyplot:用于数据可视化。
    • re:正则表达式库,用于文本处理。
  2. 获取网页内容:

    url = "源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。"
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    

    requests库获取指定URL的内容,然后使用BeautifulSoup解析HTML文档。

  3. 提取和处理文本内容:

    text_content = soup.get_text()
    text_content = re.sub(r"源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。", "", text_content)
    

    soup.get_text()从HTML中提取所有文本。接着用正则表达式删除非中文字符。

    👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻抓取分析 ” 获取。👈👈👈

  4. 分词和过滤停用词:

    words = jieba.cut(text_content)
    stop_words = set(['的', '和', '是', '在', '了', '等'])
    

    使用jieba.cut进行分词,然后过滤掉一些常见的停用词和单字词。

  5. 词频统计:

    word_freq = {}
    for word in filtered_words:
        if word in word_freq:
            word_freq[word] += 1
        else:
            word_freq[word] = 1
    

    对分词后的词进行频率统计,记录每个词出现的次数。

    👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻抓取分析 ” 获取。👈👈👈

  6. 选取前50个高频词汇:

    源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。
    

    将词频字典按频率降序排序,并选取前50个高频词。

  7. 绘制柱状图:

    words, freqs = zip(*sorted_word_freq)
    plt.figure(figsize=(10, 6))
    plt.bar(words, freqs)
    plt.xlabel('词语')
    plt.ylabel('词频')
    plt.xticks(rotation=45)
    plt.title('Top 10 Words Frequency Bar Chart')
    plt.show()
    

    使用matplotlib绘制柱状图,展示这十个词及其频率。

  8. 绘制词云图:

    👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。👈👈👈

    
    # 显示词云图
    plt.figure(figsize=(10, 5))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.show()
    

总体来说,这段代码通过抓取网页内容,提取中文文本,进行分词和词频统计,最后以柱状图的形式展现出最常见的10个词汇。这是一个结合了网络爬虫、自然语言处理和数据可视化的实用脚本。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 新闻分析 ” 获取。👈👈👈

非常感谢你的提问。我将通过以下步骤为您展示如何制作“创新创业”新闻词云图。 步骤1:收集新闻文本数据 首先,我们需要收集包含“创新创业”主题的新闻文章的文本数据。可以从新闻网站、社交媒体平台等渠道获。 步骤2:清理文本数据 文本数据收集后,需要进行清理和预处理。我们需要移除停用词(如“的”、“是”、“和”等),将所有单词转换为小写字母,并移除标点符号和数字等非文字字符。 步骤3:生成词云图 完成数据清理后,我们可以使用Python编程语言中的词云库来生成词云图。在生成词云图时,我们可以设置字体、颜色、形状等参数,以使结果更加美观。最终的词云图可以保存为图片格式,以供后续使用。 步骤4:添加艺术图片 为使结果更加美观,我们可以在生成的词云图中添加艺术图片。这可以通过使用Python的图像处理库来实现。我们可以将生成的词云图与艺术图片合并,以创建一个独特的视觉效果。 下面是一个示例代码,可以帮助您制作“创新创业”新闻词云图: ``` python # 导入所需库 from wordcloud import WordCloud import matplotlib.pyplot as plt import numpy as np from PIL import Image import jieba # 读文本文件 with open('news.txt', 'r', encoding='utf-8') as f: news_text = f.read() # 使用jieba分词进行中文分词 words = jieba.cut(news_text) words_list = list(words) # 移除停用词 stopwords = ['的', '是', '和', '等'] words_list = [word for word in words_list if word not in stopwords] # 将所有单词转换为小写字母 words_str = ' '.join(words_list).lower() # 创建形状为圆形的词云对象 mask_image = np.array(Image.open('art_image.png')) # 添加艺术图片 wordcloud = WordCloud(background_color='white', font_path='msyh.ttc', mask=mask_image) # 生成词云图 wordcloud.generate(words_str) # 显示词云图 plt.imshow(wordcloud) plt.axis("off") plt.show() # 保存词云图 wordcloud.to_file("wordcloud.png") ``` 请注意,上面的代码仅供参考,您需要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值