用KNIME进行情感分析 | 上

简介:

这个案例展示了如何利用KNIME对社交媒体数据进行情感分析。

用KNIME进行情感分析 | 上

案例中的数据抓取的是Slashdot网站首页内容,由FundaciónBarcelona Media4提供。Slashdot是1997年成立一家非常受欢迎的科技新闻站。Slashdot网站首页的主要内容就是网友发布的新闻以及网友在评论区展开的讨论。案例使用的数据共包含约41337条评论,这些评论主要是11000多名Slashdot用户对163篇政治报道的讨论。

用KNIME进行情感分析 | 上
图1

研究思路

我们的研究目的是区分不同用户的情感取向。我们将通过对用户撰写的评论和文章的词语进行分析、做出用户情感取向判断。也就是说,我们通过测量用户(非匿名)撰写的评论和文章时使用的正面的情感、态度、观点词汇的数量以及负面情感、态度和观点词汇的数量,来判定该用户情感取向。用户使用正面词汇越多,其情感取向偏向正面,反之亦然。

此处涉及到标记词汇极性的问题,在这里我们使用MPQA主观词库来标记词汇的极性。MPQA是一个公开的词库,其中包含了关于词汇极性的数据。

研究流程

用KNIME进行情感分析 | 上
图2

首先读取从Slashot上获取的数据,选取报道主题为“interviews”的评论,删除匿名文章和匿名评论。然后将剩下的非匿名评论转化为文档方便之后的分析。与此同时,另外一边首先读取MPQA主观词汇,提取出词汇和极性,并且拆分为正面词汇和负面词库方便之后的标记。最后,DictionaryTagger节点将每个情感标记到评论中每个词语上。

用KNIME进行情感分析 | 上
图3

现在所有评论中的词汇都被标记成了正面或负面,我们就可以开始计算工作。我们要计算每个评论中的正面或负面词汇数量和每个用户共使用的正面或负面词汇数量。通过user id我们可以整合每个用户不同评论中的正面词汇和负面词汇。在流程图中对应的是Documentscoring和User scoring。最后,我们为不同情感取向的用户标注颜色,整理数据并制成散点图。

结果展示

下图是用户使用词汇的散点图,纵坐标是正面词汇,横坐标是负面词汇。绿色的用户情感取向正面;灰色代表用户情感取向既不是正面,也不是负面;红色代表情感取向负面。

用KNIME进行情感分析 | 上
图4

左上角红箭头指的用户是Duc Ruby,他是情感取向最正面的用户,也是经常在Slashdot上发表评论的用户。他使用的正面词汇数量是51,负面词汇数量是10,我们用正面词汇数量减去负面词汇数量得出其情感指数是40,即情感取向最正面的用户。

右下角红箭头指的用户是whytakemine,他是情感取向最负面的用户,也是经常在Slashdot上发表评论的用户。他使用的正面词汇数量是16,负面词汇数量是25,我们用正面词汇数量减去负面词汇数量得出其情感指数是-9,即情感取向最负面的用户。

左下角圆圈部分代表了大部分中立用户,他们在Slashdot上发表的评论很少,这也是无法判断其情感取向的可能原因。

总体而言,本次案例介绍的是如何利用社交媒体UGC内容对用户进行情感分析。其实,情感分析只是对用户进行了归类,它主要还是用于后续的其他研究,如结合社会网络,对其中的Leader和Follower做进一步分析。


本文作者:沈浩

来源:51CTO

相关文章
|
8月前
|
人工智能 语音技术 iOS开发
25.9K star!AI一键生成高清短视频,这个开源神器让内容创作起飞!
"MoneyPrinterTurbo 是基于AI大模型的全自动短视频生成工具,只需输入主题,3分钟即可生成包含智能脚本、AI配音、专业字幕和流畅画面的高清视频
388 1
|
9月前
|
人工智能 自然语言处理 关系型数据库
不写一行代码,用MCP+魔搭API-Inference 搭建一个本地数据助手! 附所有工具和清单
还在为大模型开发的复杂技术栈、框架不兼容和工具调用问题头疼吗?MCP(Model Context Protocol servers)来拯救你了!它用统一的技术栈、兼容主流框架和简化工具调用的方式,让大模型开发变得简单高效。
2024 1
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
1041 5
|
JSON C语言 数据格式
C语言与lua通过json对象交互
C语言与lua通过json对象交互
306 1
|
存储 网络协议 安全
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
653 0
|
Arthas 监控 Java
深入解析与解决高并发下的线程池死锁问题
在高并发的互联网应用中,遇到线程池死锁问题导致响应延迟和超时。问题源于库存服务的悲观锁策略和线程池配置不当。通过以下方式解决:1) 采用乐观锁(如Spring Data JPA的@Version注解)替换悲观锁,减少线程等待;2) 动态调整线程池参数,如核心线程数、最大线程数和拒绝策略,以适应业务负载变化;3) 实施超时和重试机制,减少资源占用。这些改进提高了系统稳定性和用户体验。
702 2
|
消息中间件 数据可视化 Java
SpringBoot3集成Kafka
SpringBoot3集成KafkaKafka是一个开源的分布式事件流平台,常被用于高性能数据管道、流分析、数据集成和关键任务应用,基于Zookeeper协调的处理平台,也是一种消息系统,具有更好的吞吐量、内置分区、复制和容错。
1217 0
|
缓存 关系型数据库 MySQL
mysql用in查询大量数据的方法
在MySQL中使用 IN 子句来查询大量数据时,性能可能会成为一个问题
1095 0
|
编解码 网络协议 网络性能优化
RTP/RTCP 协议讲解
RTP/RTCP 协议讲解
2907 0
|
移动开发 安全 Java
Spring Security 配置多WebSecurityConfigurerAdapter
Spring Security 配置多WebSecurityConfigurerAdapter
2796 0