【NLP论文】03 基于 jiagu 的情感分析

news2024/11/30 6:35:26

本篇是NLP论文系列的最后一篇,主要介绍如何计算情感分析结果,并将其融入到XX评价体系和物流关键词词库,之前我已经写了两篇关于情感分析的文章,分别是 SnowNLP 和 Cemotion 技术,最终我才用了 jiagu 来写我的论文,因为 jiagu 准确率还行,并且写这个技术的毕竟少。 

目录

1 基于 Jiagu 的情感分析

1.1  Jiagu 介绍

1.2  情感分析计算

① 语料

② Jiagu 计算

③ xx 关键词匹配

2 XX评价体系结合情感分析


代码地址:nlp_yinyu

1 基于 Jiagu 的情感分析

Jiagu 和 SnowNLP + Cemotion 类似,均是情感分析技术之一,另外两种技术文章也在该专栏下,采用哪种看大家如何选择,本文主要介绍如何将情感分析技术融入到论文中。

1.1  Jiagu 介绍

Jiagu 情感分析是一种中文自然语言处理工具,用于识别和分析文本中的情感倾向,它可以根据文本的内容和语义,判断文本中的情感是积极的、消极的还是中性的。

它使用机器学习算法和自然语言处理技术来处理文本,并通过训练模型来识别情感。该工具可以应用于各种文本数据,如社交媒体评论、新闻文章、产品评论等。

Jiagu情感分析具有以下特点:高准确性、快速处理和多种应用场景。

1.2  情感分析计算

① 语料

语料依然是以之前爬取的京东网站上的 5000 条评论数据,可在文章顶部的代码仓库中下载!

② Jiagu 计算

主要分为以下三步:

  1. 引入语料 excel 数据
  2. 计算每条评论的情感值
  3. 生成【Jiagu情感分析原始结果_京东.xlsx】文件

代码如下:

import pandas as pd
import jiagu
from base_handle import BaseHandle  # 引入工具类

baseHandle = BaseHandle()  # 实例化

def jiagu_cal(url):
    '''计算每条评论的情感值'''
    df = pd.read_excel(url, sheet_name='Sheet1')
    # print(df)
    # 定义函数,批量处理所有的评论信息
    def get_sentiment_cn(text):
        return jiagu.sentiment(text)[1]  # jiagu的后边带positive或negative

    # 根据df里的“comments”列,将读取文本后的情感分析结果添加到新的一列,命名为“sentiment”
    df["sentiment"] = df['评论'].apply(get_sentiment_cn)
    # print(df)
    # 储存为表格。
    df.to_excel('Jiagu情感分析原始结果_京东.xlsx')


if __name__ == "__main__":
    jiagu_cal(baseHandle.get_file_abspath('语料库_京东_5000条评论.xlsx'))

最终输出【Jiagu情感分析原始结果_京东.xlsx】文件如下:

每条评论都给安排了一个情感值~

③ xx 关键词匹配

以物流关键词词库为例,将每个关键词的情感值计算出来,本文的计算逻辑:统计该关键词在多少条评论中存在,若存在,则这些评论的情感值加和。

步骤如下:

  1. 读取物流关键词词库
  2. 统计每个关键词的情感值大小
  3. 生成【jiagu情感分析匹配结果_京东.xlsx】文件
import pandas as pd
import jiagu
from base_handle import BaseHandle  # 引入工具类

baseHandle = BaseHandle()  # 实例化


def match_words_jiagu():
    '''匹配关键词和情感分析结果'''
    words = baseHandle.logistics_list
    items = []
    for word in words:
        row = handle_senti_result(word, "评论", "情感值")
        row.insert(0, word)
        items.append(row)
    dt = pd.DataFrame(items, columns=['关键词', '评论数量', '好评率', '情感值方差', '情感均值', '情感中值'])
    dt.to_excel("jiagu情感分析匹配结果_京东.xlsx")


def handle_senti_result(word, col1, col2):
    '''子方法—统计每个关键词的情感值大小'''
    df = pd.read_excel('Jiagu情感分析原始结果_京东.xlsx', sheet_name='Sheet1')
    b1 = []
    b2 = []
    for i in range(len(df)):
        comment = df.loc[i, col1]
        if word in comment:  # 判断关键词是否存在于某个字符串(str)中
            a1 = df.loc[i, col1]
            a2 = df.loc[i, col2]
            if not a1 in b1:  # col1:评论,col2:情感值,去掉重复的评论,也可不去掉
                b1.append(a1)
                b2.append(a2)
            else:
                continue
        else:
            continue
    f1 = pd.DataFrame(columns=['评论', '情感值'])
    f1['评论'] = b1
    f1['情感值'] = b2
    # print('分值之和:',f1['情感值'].sum())
    seti = f1['情感值']
    # 一些列数据
    row = [seti.count(), f1[seti >= 0.6]['情感值'].count() / seti.count(),
           seti.var(), seti.mean(), seti.median()]
    return row


if __name__ == "__main__":
    match_words_jiagu()

最终输出【jiagu情感分析匹配结果_京东.xlsx】文件如下:

如图,得到了每个关键词的情感分析详细数据,那么就可以拿这些数据来做些其他事情了~

2 XX评价体系结合情感分析

以物流评价体系为例,结合 TF-IDFJiagu 情感分析结果(本文只采用了它的情感均值)

如图:

这是一个比较粗略的统计结果,可以展示各维度他的重要程度以及情感值(或者说评分大小),不要忘了语料来自于网上在线评论。

以上还可以做更多研究,希望给大家提供帮助。因为毕业论文用到了这些技术,所以想着总结一下,最近终于有空把它更完了,纪念一下学生时代~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1348295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人中的数值优化之线性共轭梯度法

欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 本文ppt来自深蓝学院《机器人中的数值优化》 目录 1.无约束优化方法对比 2.Hessian-vec product 3.线性共轭梯度方法的步长​编辑 4.共轭梯度…

mac上使用Navicat Premium 在本地和生产环境中保持数据库同步

Navicat Premium 是一款功能强大的数据库管理和开发工具,支持多种数据库系统,如 MySQL、Oracle、SQL Server 等。作为程序员,我深知在开发过程中需要一款方便、高效的数据库管理工具来提升工作效率。而 Navicat Premium 正是这样一款不可多得…

Spring Boot学习随笔- Jasypt加密数据库用户名和密码以及解密

学习视频:【编程不良人】2021年SpringBoot最新最全教程 第十九章、Jasypt加密 Jasypt全称是Java Simplified Encryption,是一个开源项目。 Jasypt与Spring Boot集成,以便在应用程序的属性文件中加密敏感信息,然后在应用程序运行…

怎么解决 Nginx反向代理加载速度慢?

Nginx反向代理加载速度慢可能由多种原因引起,以下是一些可能的解决方法: 1,网络延迟: 检查目标服务器的网络状况,确保其网络连接正常。如果目标服务器位于不同的地理位置,可能会有较大的网络延迟。考虑使用…

从0到1快速入门ETLCloud

一、ETLCloud的介绍 ETL是将业务系统的数据经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程,目的是将企业中的分散、凌乱、标准不统一的数据整合到一起,为企…

【C#】知识点实践序列之Lock的输出多线程信息

大家好,我是全栈小5,欢迎来到《小5讲堂之知识点实践序列》文章。 2023年第2篇文章,此篇文章是C#知识点实践序列之Lock知识点,博主能力有限,理解水平有限,若有不对之处望指正! 本篇在Lock锁定代码…

【力扣题解】P700-二叉搜索树中的搜索-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P700-二叉搜索树中的搜索-Java题解🌏题目描述💡题解&#x1f…

D45D46|动态规划之子序列问题

300.最长递增子序列: 初始思路: 动态规划五部曲: 1)dp数组的定义,dp[i]表述数组第i个元素大于前面几个值; 2)dp数组的迭代,min nums[x]表示递增数组中的最后一个值,如…

Linux 安装 mysql【使用yum源进行安装】

配置yum 源 首先,去到mysql网站,找到它的rpm的资源包 “mysql80-community-release-el9-5.noarch.rpm” 我们将其下载下来,然后配置yum源(下面两种方式二选一即可) ① 使用xftp传输,然后配置yum源 rpm …

【数据结构】栈和队列(队列的基本操作和基础知识)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​ 目录 前言 队列 队列的概念和结构 队列的…

王道考研计算机网络——应用层

如何为用户提供服务? CS/P2P 提高域名解析的速度:local name server高速缓存:直接地址映射/低级的域名服务器的地址 本机也有告诉缓存:本机开机的时候从本地域名服务器当中下载域名和地址的对应数据库,放到本地的高…

FDM3D打印系列——RX-78-2高达胸像打印

https://v.youku.com/v_show/id_XNjI4OTQ2NjkyNA.html   大家好,我是阿赵。   2024年的第一篇博客,做一个3D打印作品,RX-78-2高达胸像打印。 成年男人是很少收得到礼物的,所以礼物都要自己准备。这个模型,就算是我…

Javaweb之Mybatis入门程序的详细解析

1.2 入门程序实现 1.2.1 准备工作 1.2.1.1 创建springboot工程 创建springboot工程&#xff0c;并导入 mybatis的起步依赖、mysql的驱动包。 项目工程创建完成后&#xff0c;自动在pom.xml文件中&#xff0c;导入Mybatis依赖和MySQL驱动依赖 <!-- 仅供参考&#xff1a;只…

数据库——建立ER模型及关系模型转换

​ 【实验内容及要求】 使用画图工具或MySQL Workbench等建模工具设计出相应的ER图&#xff0c;将局部ER图合并为一个整体ER模型&#xff0c;在ER模型中填加多样性约束&#xff0c;建立显示主键的ER模型&#xff0c;标识实体的属性&#xff0c;确认主键、外键。将上述ER图转化…

基于 LightGBM 的系统访问风险识别

基于 LightGBM 的系统访问风险识别 文章目录 基于 LightGBM 的系统访问风险识别一、课题来源二、任务描述三、课题背景四、数据获取分析及说明&#xff08;1&#xff09;登录https://www.datafountain.cn并获取相关数据&#xff08;2&#xff09;数据集文件说明&#xff08;3&a…

pycharm python环境安装

目录 1.Python安装 2.PyQt5介绍 3.安装pyuic 4.启动designer.exe 5.pyinstaller(打包发布程序) 6.指定源安装 7.PyQt5-tools安装失败处理 8.控件介绍 9.错误记录 1.NameError: name reload is not defined 10.开发记录 重写报文输出和文件 ​编辑 1.Python安装 点…

linux用户态与内核态通过字符设备交互

linux用户态与内核态通过字符设备交互 简述 Linux设备分为三类&#xff0c;字符设备、块设备、网络接口设备。字符设备只能一个字节一个字节读取&#xff0c;常见外设基本都是字符设备。块设备一般用于存储设备&#xff0c;一块一块的读取。网络设备&#xff0c;Linux将对网络…

Django Cookie和Session使用(十一)

一、Cookie Cookie具体指一小段信息&#xff0c;它是服务器发送出来存储在浏览器上的一组键值对&#xff0c;下次访问服务器时浏览器会自动携带这些键值对&#xff0c;以便服务器提取有用信息。 Cookie的特性 1、服务器让浏览器进行设置的 2、保存在浏览器本地&#xff0c;…

2024的十大技术趋势预测

&#x1f4a1; 大家好&#xff0c;我是可夫小子&#xff0c;《小白玩转ChatGPT》专栏作者&#xff0c;关注AIGC、读书和自媒体。 2024年&#xff0c;科技圈还会有什么样的新鲜新发生&#xff1f;techradar的记者Lance Ulanoff预测了科技圈的2024十大趋势&#xff0c;包括AI、…

flutter学习-day20-使用SafeArea组件处理各机型的安全距离

文章目录 1. 介绍2. 解析3. 示例和效果图4. 特殊情况 1. 介绍 安全区域&#xff0c;指的是移动端设备的可视窗口范围。处于安全区域的内容不受圆角、刘海屏、iPhone 小黑条、状态栏等的影响&#xff0c;也就是说&#xff0c;我们要做好适配&#xff0c;必须保证页面可视、可操…