IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于python的微博舆情分析与研究—以《北京冬奥会》为关键词 -> 正文阅读

[人工智能]基于python的微博舆情分析与研究—以《北京冬奥会》为关键词


创作不易,如果以下内容对你有帮助,记得三连呀,让更多的小伙伴能看到吧~~


1. 研究内容

  • 本课题研究的是基于Python的微博舆情热点分析与研究。在PyCharm、Jupiter Notebook开发环境下,首先利使用python的requests库对微博进行分时段多进程爬取,并利用lxml解析库对爬取到的数据解析并做简单的数据清洗且保存到数据库;然后,使用numpy、pandas等库对原始数据进行数据预处理;接着,对各特征做灰色关联分析,筛选对传播热度影响较大的特征;最后,利用python的matplotlib库可视化两官方媒体和自媒体在不同的时段、不同人群传播力度的变化等各种变化指标,并对微博的内容利用基于情感词典的方法进行文本情感分析,从而挖掘正面和负面信息。

2. 数据获取

  • 主要采用的是requests+lxml库进行数据爬取和数据解析,以下附上爬取的部分代码:
# 统一时间
def parse_time(datetime):
    if datetime is None:
        return datetime

    if re.match('\d+年\d+月\d+日.+', datetime):
        # time模块
        datetime = datetime
        datetime.replace("年","-")
        datetime.replace("月","-")
        datetime.replace("日","")

    if re.match('\d+月\d+日.+', datetime):
        # time模块
        datetime = datetime.replace("月","-").replace("日","")
        datetime = time.strftime('%Y-', time.localtime(time.time())) + datetime

    if re.match('\d+分钟前', datetime):
        minute = re.match('(\d+)', datetime).group(1)
        # time.localtime()为当前的时间戳,用time.time()当前的时间戳-已过的时间来获取发布时的时间戳(1970纪元后经过的浮点秒数)
        datetime = time.strftime('%Y-%m-%d %H:%M', time.localtime(time.time() - float(minute)*60))

    if re.match('\d+秒前', datetime):
        second = re.match('(\d+)', datetime).group(1)
        # time.localtime()为当前的时间戳,用time.time()当前的时间戳-已过的时间来获取发布时的时间戳(1970纪元后经过的浮点秒数)
        datetime = time.strftime('%Y-%m-%d %H:%M', time.localtime(time.time() - float(second)))

    if re.match('今天.*', datetime):
        temp = re.match("今天(\d+:\d+)",datetime).group(1)
        datetime = time.strftime('%Y-%m-%d ', time.localtime()) + temp
    return datetime
    
# 开启爬虫
def start_crawl(base_url,pages):
    headers = request_header_article()
    # 遍历搜索时间
    years = [2021,2022]
    for year in years:
        months = [*range(1,13)] if year != 2022 else list(1)
        days = [31,28,31,30,31,30,31,31,30,31,30,31]
        for num, month in enumerate(months):
            for day in range(1,days[num],7):
                day_end = day + 6 if day + 6 < 31 else 30
                print("Spider正在爬取{}-{}-{}至{}-{}-{}时间段!".format(year,month,day,year,month,day_end))
                time.sleep(1)
                for page in range(1, pages + 1):
                    url = base_url.format(year_start=year, month_start=month, day_start=day, year_end=year, month_end=month, day_end=day_end, page=page)
                    response = requests.get(url=url, headers=headers,timeout=(3,7))
                    if response.status_code == 200:
                        res = et.HTML(response.text)
                        print("Spider已完成第{}页爬取任务!".format(page))
                        yield res
                    else:
                        continue
# 将数据存入MongoDB
def save_mongoDB(base_url,pages):
    client = pymongo.MongoClient(host='localhost', port=27017)
    db = client.HotSpotBD
    table = db['HotSpotInfo']
    for insert_list in data_clean(base_url,pages):
        table.insert_many(insert_list)
        print("完成一页数据插入任务!")
    client.close()
  • 本项目主要采用MongoDB数据库作为存储介质,主要包括的字段有点赞数、评论数、转发数、媒体类型、发布时间、作者总获赞数、作者总发布文章数、作者年龄、作者性别等,以下为数据表的部分数据:

该部分数据用于数据分析
在这里插入图片描述

该部分数据用于文本情感分析
在这里插入图片描述

3. 数据预处理

  • 在这一部分主要是对原始数据进行数据缺失值填充、重复值去重、非法值替换等处理,以及特征编码,对某些特征进行数据类型转换,各特征间的相关性分析,最重要的是在这一部分通过文章的点赞,评论,转发数的权重定义出了文章的热度特征,以下是数据预处理后的部分数据:

在这里插入图片描述

4. 数据分析及可视化

  • 在这一部分主要是研究官方媒体和自媒体在不同的时段、不同人群传播力度的变化等各种变化指标,以下是数据分析后作可视化后的图形:

    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

5. 文本情感分析

文本预处理
  • 在做情感分析之前,需要对文本进行去除非中文字符、中文分词、去除停用词、词频统计等预处理,以下是对文本预处理后的部分数据:
    在这里插入图片描述

    词频统计后作出的词云图
    在这里插入图片

情感分析
  • 用于没有标记标签的训练集数据,所有没有采用贝叶斯分类模型进行分类,这里直接调用用百度已经训练好的模型接口进行情感分析的,以下是特定时间段内的情感趋势走向的分析:
    在这里插入图片描述
    在这里插入图片描述

源码分享

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-27 17:19:37  更:2022-05-27 17:20:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:22:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码