python实战(十三)——基于Bert+HDBSCAN的微博热搜数据挖掘

一、任务目标

        众所周知,微博热搜几乎是许多网友的主要新闻来源,上面实时更新着当前最新的社会消息,其时效性甚至比每天晚上播出的新闻联播还要强。这篇文章,我们使用来自Kaggle的《MicroBlog-Hot-Search-Labeled》数据集,对其中的热搜词条文本进行探索性分析,不考虑源数据集中每条文本所带有的标签,通过无监督的方式挖掘一下热搜文本中所包含的有效信息。这一任务需求类似于我们工作中所碰到的各种除了文本之外没有任何其他的辅助信息的数据集,而NLP技术则给了我们能力在这样的数据中去挖掘出有价值的东西。例如在这个微博热搜词条数据中,我们可以进行热点挖掘的工作,在如此多条热搜数据中挖掘一些热点主题。

二、建模流程

1、数据集读取

        首先,我们读取数据集看看数据长什么样。

import pandas as pd

df = pd.read_csv('weibo-hot-searchlabeled/weibo-hot-search-labeled.csv')
print('数据量:', len(df))
print(df.info())
df.head()

f4f898a923e44b4c94af21cd595bbef7.png

        可以看到,数据整体上没有空值,总共是6000多条词条。下面的实验我们只需要使用“热搜词条”列的所有文本数据。

2、数据可视化分析

        对于一份完全未知的文本数据集,要想通过数据分析方法来深度了解它,我们可以展开以下思路的探索:(1)统计文本长度信息,如最大/最小/平均长度以及长度分布图;(2)对文本进行分词并制作词云图;(3)如果是跨语种数据集,还可以进行语种分布的可视化分析

(1)文本长度信息

        这里,我们对文本长度信息进行可视化。透过可视化结果可以看到,大部分热搜词条的长度都在8-12个汉字之间。可以预见的是,这种长度的文本还是能够挖掘出不少语义信息的,如果大量的文本长度都在2-3个字,那么这样的文本数据集几乎很难得出什么有用的结论。

import matplotlib.pyplot as plt
import collections

length = [len(li) for li in text]
print('Max length:', max(length))
print('Min length:', min(length))
print('Mean length:', sum(length)/len(length))
# 对不同的长度值进行计数统计
counter = collections.Counter(length)
counter = list(counter.items())
counter.sort(key=lambda x: x[0])
# 每一个长度值
counter_length = [li[0] for
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值