目录
2.1 数据收集(以百度新闻搜索结果为例,实际需合法合规获取数据)
一、案例背景
全国两会一直是社会各界高度关注的焦点,在百度热搜中持续占据重要位置。两会期间,代表委员们围绕国计民生提出众多议案提案,涵盖医疗、教育、养老、就业等诸多领域,这些议题与广大民众的生活息息相关,引发了广泛的社会讨论。通过对两会民生热点舆情进行分析,能够深入了解民众的需求和关注点,为政府部门制定政策、企业调整战略以及社会各界把握发展方向提供有力参考。本案例将运用 Python 对两会相关舆情数据进行收集、清洗、分析和可视化,洞察民生热点趋势 。
二、代码实现
import requests
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from wordcloud import WordCloud
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.decomposition import LatentDirichletAllocation
2.1 数据收集(以百度新闻搜索结果为例,实际需合法合规获取数据)
# 模拟请求百度新闻搜索接口获取两会相关新闻数据
# 注意:实际使用需遵循百度API规则和相关法律法规
url = 'https://news.baidu.com/news?tn=bdapinew&word=两会 民生热点'
response = requests.get(url)
# 假设返回的是JSON格式数据,解析数据
data = response.json()
news_list = []
for item in data['result']:
news = {
'title': item['title'],
'content': item['content'],
'date': item['date']
}
news_list.append(news)
df = pd.DataFrame(news_list)
2.2 数据探索性分析
print('数据基本信息:')
df.info()
# 查看数据集行数和列数
rows, columns = df.shape
if rows < 1000:
# 小数据集(行数少于1000)查看全量数据信息
print('数据全部内容信息:')
print(df.to_csv(sep='\t', na_rep='nan'))
else:
# 大数据集查看数据前几行信息
print('数据前几行内容信息:')
print(df.head().to_csv(sep='\t', na_rep='nan'))
2.3 数据清洗
# 处理缺失值
df = df.dropna(subset=['title', 'content'])
# 去除重复新闻
df = df.drop_duplicates(subset=['title', 'content'])
# 文本预处理(去除标点符号、转换为小写等)
import re
def clean_text(text):
text = re.sub(r'[^\w\s]', '', text)
text = text.lower()
return text
df['clean_content'] = df['content'].apply(clean_text)
2.4 文本特征提取(TF-IDF)
vectorizer = TfidfVectorizer(stop_words='english')
X = vectorizer.fit_transform(df['clean_content'])