用 AI 读懂网友的健康情绪:搭建你自己的舆情分析助手

在这里插入图片描述

网罗开发 (小红书、快手、视频号同名)

  大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
📣 公众号“Swift社区”,每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。
💬 微信端添加好友“fzhanfei”,与我直接交流,不管是项目瓶颈的求助,还是行业趋势的探讨,随时畅所欲言。
📅 最新动态:2025 年 3 月 17 日
快来加入技术社区,一起挖掘技术的无限潜能,携手迈向数字化新征程!


摘要

公共健康话题在社交媒体上随时都有“爆点”,但靠人工去追踪这些动态实在太慢了。有没有可能用 AI 来帮我们盯着这些内容,自动分析情绪、提取话题,还能画趋势图看看“热”在哪儿?这篇文章就来带你一步步用 LangChain + OpenAI(或 DeepSeek)搭建一个“AI 舆情雷达”,快速识别微博、公众号等平台上的健康相关话题,感知情绪走向,还能自动可视化趋势变化。

引言

做公益或者公共服务类项目时,常常会需要了解群众对某个健康议题的看法,比如“疫苗副作用”、“心理健康问题”、“癌症治疗骗局”等等。但是想要快速分析这些话题,不但需要收集数据,还要分析这些评论到底是正向的、负向的,甚至要判断有没有造谣、偏激言论。

这时候 AI 就可以派上大用场了,我们可以用自然语言处理模型加一点点逻辑和脚本,让它像个小助手一样,帮我们扫清这些杂乱无章的舆情信息。

整体方案设计

我们要实现的目标是:

  • 自动抓取社交媒体上的健康话题内容(可用模拟文本或调用平台 API)

  • 用大模型做话题提取、情感分析

  • 整理分析结果并用图表可视化

  • 最终输出一份“健康舆情简报”

我们会使用的技术栈包括:

  • Python 3.10+

  • LangChain

  • OpenAI 或 DeepSeek(API 接入)

  • Matplotlib(数据可视化)

  • Pandas(数据处理)

  • Streamlit(可选,用来快速部署成 Web 页面)

搭建项目环境

安装依赖

pip install langchain openai pandas matplotlib streamlit

如果你用的是 DeepSeek,可以替换 openai 部分,接入它的 API 即可。

核心功能实现

模拟数据抓取(或调用真实微博/公众号 API)

# mock_social_posts.py
mock_posts = [
    "今天看到一个关于疫苗后遗症的帖子,好担心!",
    "我觉得现在的心理咨询机构有点坑人……",
    "最近频繁看到关于HPV疫苗的宣传,有点反感了",
    "刚做完体检,医生说要注意高血压问题,吓到我了",
    "癌症防治宣传周感觉还挺有意义的,希望大家重视"
]

调用大模型提取话题+情感

# ai_analysis.py
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from mock_social_posts import mock_posts

llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo")  # 或 deepseek-chat

template = """
你是一名公共健康舆情分析专家。请帮我从下面的社交媒体内容中:
1\. 提取出提到的“健康话题”;
2\. 判断整体情感(积极、中立、消极);
3\. 简要说明理由。

内容如下:{content}
"""

prompt = ChatPromptTemplate.from_template(template)

def analyze_post(content):
    chain = prompt | llm
    result = chain.invoke({"content": content})
    return result.content

批量处理并结构化结果

# batch_analysis.py
import pandas as pd
from ai_analysis import analyze_post
from mock_social_posts import mock_posts

results = []

for post in mock_posts:
    output = analyze_post(post)
    print("原文:", post)
    print("AI分析结果:", output)
    results.append({"原文": post, "AI分析": output})

df = pd.DataFrame(results)
df.to_csv("舆情分析结果.csv", index=False)

情感趋势图表可视化

# visualize.py
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("舆情分析结果.csv")

# 简单根据关键词判断情绪(实际可用 LLM 输出结果分类)
def get_sentiment(text):
    if "积极" in text:
        return "Positive"
    elif "消极" in text:
        return "Negative"
    else:
        return "Neutral"

df["情绪倾向"] = df["AI分析"].apply(get_sentiment)

sentiment_counts = df["情绪倾向"].value_counts()

sentiment_counts.plot(kind="bar", title="健康话题情感分布")
plt.xlabel("情感类别")
plt.ylabel("帖子数量")
plt.tight_layout()
plt.savefig("sentiment_chart.png")
plt.show()

可视化部署(可选)

用 Streamlit 可以把整个过程变成一个在线小工具,几行代码就能搞定:

# app.py
import streamlit as st
import pandas as pd

df = pd.read_csv("舆情分析结果.csv")

st.title("AI 健康舆情分析小工具")
st.write(df)

st.image("sentiment_chart.png", caption="情感趋势图")

运行命令:

streamlit run app.py

QA 环节

Q:可以接入真实微博 API 吗?

A:当然可以!可以使用 新浪微博开放平台 或爬虫抓取,文章中用的是模拟数据主要是为了简单演示逻辑。

Q:大模型调用会不会很慢?

A:如果只分析几十条内容是没问题的,超过几百条建议异步处理或批量发送。如果你是用 DeepSeek,也支持并发请求。

Q:怎么让分析更准确?

A:可以把 prompt 拆成两个阶段:先提话题,再提情绪;或者加 few-shot 示例让模型学得更好。

总结

这篇文章咱们从最初的“社交平台太吵,信息抓不住”,一步步搭出了一个 AI 帮忙做舆情分析的小工具,能分析情绪、提取话题,还能画趋势图。虽然只是一个小项目,但它的可扩展性很强,不管是要做公益传播、媒体监控、公共健康响应,它都能派上用场。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

网罗开发

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

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

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

打赏作者

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

抵扣说明:

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

余额充值