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

本篇是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_listitems = []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:continueelse:continuef1 = pd.DataFrame(columns=['评论', '情感值'])f1['评论'] = b1f1['情感值'] = b2# print('分值之和:',f1['情感值'].sum())seti = f1['情感值']# 一些列数据row = [seti.count(), f1[seti >= 0.6]['情感值'].count() / seti.count(),seti.var(), seti.mean(), seti.median()]return rowif __name__ == "__main__":match_words_jiagu()

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

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

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

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

如图:

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MyBatis】操作数据库——入门

文章目录 为什么要学习MyBatis什么是MyBatisMyBatis 入门创建带有MyBatis框架的SpringBoot项目数据准备在配置文件中配置数据库相关信息实现持久层代码单元测试 为什么要学习MyBatis 前面我们肯定多多少少学过 sql 语言,sql 语言是一种操作数据库的一类语言&#x…

域名转移:将腾讯云转移至阿里云

当时注册域名时,腾讯域云相对便宜,但目前阿里云在业界更加成熟,因此将自己申请的域名由阿里云转移至阿里云,并记录转移过程。 一、域名转出 进入腾讯云,登陆后选择控制台,选择我的资源–域名注册–全部域名…

HarmonyOS4.0系统性深入开发11通过message事件刷新卡片内容

通过message事件刷新卡片内容 在卡片页面中可以通过postCardAction接口触发message事件拉起FormExtensionAbility,然后由FormExtensionAbility刷新卡片内容,下面是这种刷新方式的简单示例。 在卡片页面通过注册Button的onClick点击事件回调,…

按行依次处理数据的文件操作(C语言版)

按行依次处理数据的文件操作(C语言版) 这段代码的目的是处理多个文件,为每个文件创建一个新文件,将以 ‘r’ 开头的行添加 “./” 前缀,并将修改后的内容写入新文件。在main函数中,通过调用process函数,逐个处理了一系…

计算机网络——应用层与网络安全(六)

前言: 前几章我们已经对TCP/IP协议的下四层已经有了一个简单的认识与了解,下面让我们对它的最顶层,应用层进行一个简单的学习与认识,由于计算机网络多样的连接形式、不均匀的终端分布,以及网络的开放性和互联性等特征&…

使用ASP.NET MiniAPI 调试未匹配请求路径

本文将介绍如何在使用ASP.NET MiniAPI时调试未匹配到的请求路径。我们将详细讨论使用MapFallback方法、中间件等工具来解决此类问题。 1. 引言 ASP.NET MiniAPI是一个轻量级的Web API框架,它可以让我们快速地构建和部署RESTful服务。然而,在开发过程中如…

学习华为企业无线网络,有这篇文章就够了。

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! •以有线电缆或光纤作为传输介质的有线局域网应用广泛,但有线传输介质的铺设成本高,位置固定,移动性差。随着人们对…

固定本机在局域网中的 IP 地址

说明:以将 IP 地址固定为 192.168.1.107 为例 Step1、打开终端,输入以下命令查看网络信息: ipconfig -all 记住子网掩码、默认网关、DNS 服务器(首选和备用)信息,后面要用: Step2、进入 “控制…

分割数组的最大差值 - 华为OD统一考试

分割数组的最大差值 - 华为OD统一考试 OD统一考试 分值: 100分 题解: Java / Python / C 题目描述 给定一个由若干整数组成的数组nums ,可以在数组内的任意位置进行分割,将该数组分割成两个非空子数组(即左数组和右数组)&#xf…

小波理论与应用:理解小波

1 简介 来自源的信号通常处于时域。例如正弦信号、生物医学信号等。任何时域信号都可以使用数学变换进行处理或变换到频域(谱域)。傅里叶变换是一种流行或著名的变换,它将时域信号转换为频域信号,而不失一般性。 在绘制时域信号…

web:[BJDCTF2020]The mystery of ip(ssti模板注入、Smarty 模板引擎)

题目 进入页面显示如下 点击flag页面得到ip 点击hint页面 在hint.php的源代码页面中发现 由题目可以知道要从ip入手 这里尝试抓包加上X-Forwarded-For请求头修改为127.0.0.1 因为直接将127.0.0.1输出到页面,可以猜测是ssti模板注入 可以继续验证 这里发现输入什么…

动力学约束下的运动规划算法——Kinodynamic RRT*算法

一、RRT * 算法回顾 为了更好的理解Kinodynamic RRT*算法,我们先来回顾一下RRT * 算法 RRT * 先通过Sample函数随机选取一个点Xrand,然后通过Near函数找到当前树上距离Xrand最近的一个点Xnear,再通过Steer函数,沿着从Xnear到Xra…