当前位置: 首页 > news >正文

基于开源模型对文本和音频进行情感分析

应用场景

  1. 从商品详情页爬取商品评论,对其做舆情分析;
  2. 电话客服,对音频进行分析,做舆情分析;

通过开发相应的服务接口,进一步工程化;

模型选用

  • 文本,选用了通义实验室fine-tune的structBERT 模型,基于大众点评的评论数据进行训练,使用预训练模型进行推理,CPU 能跑,支持模型微调,基本上不用微调了,因为他是基于电商领域的数据集进行训练的,基本够用,可本地部署;

参考论文:

title: Incorporating language structures into pre-training for deep language understanding
author:Wang, Wei and Bi, Bin and Yan, Ming and Wu, Chen and Bao, Zuyi and Xia, Jiangnan and Peng, Liwei and Si, Luo
journal:arXiv preprint arXiv:1908.04577,
year:2019

版本依赖:

modelscope-lib 最新版本

推理代码:

semantic_cls = pipeline(Tasks.text_classification, 'damo/nlp_structbert_sentiment-classification_chinese-base')comment0 = '非常厚实的一包大米,来自遥远的东北,盘锦大米,应该不错的,密封性很好。卖家的服务真是贴心周到!他们提供了专业的建议,帮助我选择了合适的商品。物流速度也很快,让我顺利收到了商品。'
result0 = semantic_cls(input=comment0)
if result0['scores'][0] > result0['scores'][1]:print("'" + comment0 + "',属于" + result0["labels"][0] + "评价")
else:print("'" + comment0 + "',属于" + result0["labels"][1] + "评价")comment1 = '食物的口感还不错,不过店员的服务态度可以进一步改善一下。'
result1 = semantic_cls(input=comment1)
if result1['scores'][0] > result1['scores'][1]:print("'" + comment1 + "',属于" + result1["labels"][0] + "评价")
else:print("'" + comment1 + "',属于" + result1["labels"][1] + "评价")comment2 = '衣服尺码合适,色彩可以再鲜艳一些,客服响应速度一般。'
result2 = semantic_cls(input=comment2)
if result2['scores'][0] > result2['scores'][1]:print("'" + comment2 + "',属于" + result2["labels"][0] + "评价")
else:print("'" + comment2 + "',属于" + result2["labels"][1] + "评价")comment3 = '物流慢,售后不好,货品质量差。'
result3 = semantic_cls(input=comment3)
if result3['scores'][0] > result3['scores'][1]:print("'" + comment3 + "',属于" + result3["labels"][0] + "评价")
else:print("'" + comment3 + "',属于" + result3["labels"][1] + "评价")comment4 = '物流包装顺坏,不过客服处理速度比较快,也给了比较满意的赔偿。'
result4 = semantic_cls(input=comment4)
if result4['scores'][0] > result4['scores'][1]:print("'" + comment4 + "',属于" + result4["labels"][0] + "评价")
else:print("'" + comment4 + "',属于" + result4["labels"][1] + "评价")comment5 = '冰箱制冷噪声较大,制冷慢。'
result5 = semantic_cls(input=comment5)
if result5['scores'][0] > result5['scores'][1]:print("'" + comment5 + "',属于" + result5["labels"][0] + "评价")
else:print("'" + comment5 + "',属于" + result5["labels"][1] + "评价")comment6 = '买了一件刘德华同款鞋,穿在自己脚上不像刘德华,像扫大街的。'
result6 = semantic_cls(input=comment6)
if result6['scores'][0] > result6['scores'][1]:print("'" + comment6 + "',属于" + result6["labels"][0] + "评价")
else:print("'" + comment6 + "',属于" + result6["labels"][1] + "评价")

运行结果:

'非常厚实的一包大米,来自遥远的东北,盘锦大米,应该不错的,密封性很好。卖家的服务真是贴心周到!他们提供了专业的建议,帮助我选择了合适的商品。物流速度也很快,让我顺利收到了商品。',属于正面评价
'食物的口感还不错,不过店员的服务态度可以进一步改善一下。',属于正面评价
'衣服尺码合适,色彩可以再鲜艳一些,客服响应速度一般。',属于正面评价
'物流慢,售后不好,货品质量差。',属于负面评价
'物流包装顺坏,不过客服处理速度比较快,也给了比较满意的赔偿。',属于正面评价
'冰箱制冷噪声较大,制冷慢。',属于负面评价
'买了一件刘德华同款鞋,穿在自己脚上不像刘德华,像扫大街的。',属于负面评价

  • 音频,选用了通义实验室 fine-tune的emotion2vec微调模型,CPU 能跑,可本地部署;

参考论文:

title: Self-Supervised Pre-Training for Speech Emotion Representation
author:Ma, Ziyang and Zheng, Zhisheng and Ye, Jiaxin and Li, Jinchao and Gao, Zhifu and Zhang, Shiliang and Chen, Xie
journal:arXiv preprint arXiv:2312.15185
year:2023

开源地址:

Official PyTorch code for extracting features and training downstream models with emotion2vec: Self-Supervised Pre-Training for Speech Emotion Representation

版本依赖:

modelscope >= 1.11.1

funasr>=1.0.5

推理代码:

from funasr import AutoModelmodel = AutoModel(model="iic/emotion2vec_base_finetuned", model_revision="v2.0.4")wav_file = f"{model.model_path}/example/test.wav"
res = model.generate(wav_file, output_dir="./outputs", granularity="utterance", extract_embedding=False)
print(res)scores = res[0]["scores"]max_score = 0
max_index = 0
i = 0
for score in scores:if score > max_score:max_score = scoremax_index = ii += 1print("音频分析后,情感基调为:" + res[0]["labels"][max_index])

运行结果

rtf_avg: 0.263: 100%|██████████| 1/1 [00:02<00:00,  2.64s/it]
[{'key': 'rand_key_2yW4Acq9GFz6Y', 'labels': ['生气/angry', '厌恶/disgusted', '恐惧/fearful', '开心/happy', '中立/neutral', '其他/other', '难过/sad', '吃惊/surprised', '<unk>'], 'scores': [0.06824027001857758, 0.030794354155659676, 0.20301730930805206, 0.09666425734758377, 0.12219445407390594, 0.06753909587860107, 0.13648174703121185, 0.11873088777065277, 0.1563376784324646]}]


音频分析后,情感为:恐惧/fearful

Process finished with exit code 0

相关文章:

基于开源模型对文本和音频进行情感分析

应用场景 从商品详情页爬取商品评论&#xff0c;对其做舆情分析&#xff1b;电话客服&#xff0c;对音频进行分析&#xff0c;做舆情分析&#xff1b; 通过开发相应的服务接口&#xff0c;进一步工程化&#xff1b; 模型选用 文本&#xff0c;选用了通义实验室fine-tune的st…...

SQL中为什么不要使用1=1

最近看几个老项目的SQL条件中使用了11&#xff0c;想想自己也曾经这样写过&#xff0c;略有感触&#xff0c;特别拿出来说道说道。 编写SQL语句就像炒菜&#xff0c;每一种调料的使用都可能会影响菜品的最终味道&#xff0c;每一个SQL条件的加入也可能会影响查询的执行效率。那…...

python 几种常见的音频数据读取、保存方式

1. soundfile 库的使用 soundfile库是一个Python库&#xff0c;主要用于读取和写入音频文件。它支持多种音频格式&#xff0c;包括WAV、AIFF、FLAC和OGG等。通过soundfile库&#xff0c;用户可以方便地将numpy数组存储到音频文件或者将音频文件加载到numpy数组中。此外&#x…...

关于msvcr120.dll丢失怎样修复的详细解决步骤方法分享,msvcr120.dll文件的相关内容

在电脑使用过程中&#xff0c;我们经常遇到各种系统错误&#xff0c;其中msvcr120.dll丢失是一个常见问题。msvcr120.dll文件是Visual C Redistributable for Visual Studio 2015/2017的一个组件&#xff0c;主要用于支持某些应用程序的正常运行。当电脑出现msvcr120.dll丢失情…...

简单几步通过DD工具把云服务器系统Linux改为windows

简单几部通过DD安装其他系统&#xff0c;当服务器的web控制台没有我们要装的系统&#xff0c;就需要通过DD&#xff08;Linux磁盘&#xff09;工具来更改系统&#xff0c;&#xff08;已知支持KVM系统&#xff09; 本文如何简单的更换系统&#xff0c;不通过web控制台来更换&a…...

使用 package.json 配置代理解决 React 项目中的跨域请求问题

使用 package.json 配置代理解决 React 项目中的跨域请求问题 当我们在开发前端应用时&#xff0c;经常会遇到跨域请求的问题。为了解决这个问题&#xff0c;我们可以通过配置代理来实现在开发环境中向后端服务器发送请求。 在 React 项目中&#xff0c;我们可以使用 package…...

生成 Let‘s Encrypt 免费证书

文章目录 1. 安装 acme.sh2. 添加云服务商安全访问密钥并授权管理DNS记录3. 当前 Shell 添加安全访问密钥变量4. 生成证书5. 拷贝证书6. 清理安全访问密钥变量7. 打开脚本自动更新 代码仓库地址&#xff1a;https://github.com/Neilpang/acme.sh 1. 安装 acme.sh yum -y insta…...

int128的实现(基本完成)

虽然有一个声明叫_int128但是这并不是C标准&#xff1a; long long 不够用&#xff1f;详解 __int128 - FReQuenter - 博客园 (cnblogs.com) 网络上去找int128的另类实现方法&#xff0c;发现几乎都是在介绍_int128的 然后我就自己想了个办法&#xff0c;当时还没学C&#xf…...

【linux】使用 acme.sh 实现了 acme 协议生成免费的SSL 证书

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书. 主要步骤: 安装 acme.sh生成证书copy 证书到 nginx/apache 或者其他服务更新证书更新 acme.sh出错怎么办, 如何调试 下面详细介绍. 1. 安装 acme.sh 安装很简单, 一个命令: curl https://get.acme.sh | sh…...

MACOS上面C/C++获取网卡索引,索引获取网卡接口名

依赖函数&#xff1a; if_nametoindex IF名字 to IF索引 if_indextoname IF索引 to IF名字 MACOS 10.7 版本支援&#xff08;就是2011年发不OSX的第一个面向用的系统版本&#xff09; int GetInterfaceIndex(const ppp::string& ifrName) noexcept{if (ifrName.empt…...

解决SSH远程登录开饭板出现密码错误问题

输入“adduser Zhanggong回车”&#xff0c;使用adduser命令创建开发板用户名为Zhanggong 输入密码“123456” 输入密码“123456”...

什么时候用ref和reactive

在Vue 3中&#xff0c;ref和reactive都是用于创建响应式数据的工具&#xff0c;但它们的使用场景有所不同。 使用ref的情况&#xff1a; 基本数据类型&#xff1a;当你需要响应式地处理基本数据类型&#xff08;如数字、字符串、布尔值&#xff09;时&#xff0c;应该使用ref…...

Java实战:Spring Boot实现邮件发送服务

本文将详细介绍如何在Spring Boot应用程序中实现邮件发送服务。我们将探讨Spring Boot集成邮件发送服务的基本概念&#xff0c;以及如何使用Spring Boot和第三方邮件服务提供商来实现邮件发送。此外&#xff0c;我们将通过具体的示例来展示如何在Spring Boot中配置和使用邮件发…...

重磅!MongoDB推出Atlas Stream Processing公共预览版

日前&#xff0c;MongoDB宣布推出Atlas Stream Processing公共预览版。 在Atlas平台上有兴趣尝试这项功能的开发者都享有完全的访问权限&#xff0c;可前往“阅读原文”链接点击了解更多详细信息或立即开始使用。 开发者喜欢文档型数据库的灵活性、易用性以及Query API查询方…...

dell戴尔电脑灵越系列Inspiron 15 3520原厂Win11系统中文版/英文版

Dell戴尔笔记本灵越3520原装出厂Windows11系统包&#xff0c;恢复出厂开箱预装OEM系统 链接&#xff1a;https://pan.baidu.com/s/1mMOAnvXz5NCDO_KImHR5gQ?pwd3nvw 提取码&#xff1a;3nvw 原厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office办公软件、MyD…...

k8s(3)

目录 一.K8S的三种网络 flannel的三种模式: 在 node01 节点上操作&#xff1a; calico的 三种模式&#xff1a; flannel 与 calico 的区别&#xff1f; 二.CoreDNS 在所有 node 节点上操作&#xff1a; 在 master01 节点上操作&#xff1a; ​编辑 DNS 解析测试&#…...

Java多线程并发学习

一、Java 中用到的线程调度 1. 抢占式调度&#xff1a; 抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制&#xff0c;系统控制指的是在系统某种运行机制下&#xff0c;可能每条线程都分同样的执行时间片&#xff0c;也可能是某些线程执行的时间片较长&#xff0…...

Curfew e-Pass 管理系统存在Sql注入漏洞 附源代码

免责声明&#xff1a;本文所涉及的信息安全技术知识仅供参考和学习之用&#xff0c;并不构成任何明示或暗示的保证。读者在使用本文提供的信息时&#xff0c;应自行判断其适用性&#xff0c;并承担由此产生的一切风险和责任。本文作者对于读者基于本文内容所做出的任何行为或决…...

记阿里云mysql丢表丢数据的实践记录

第一时间挂工单&#xff0c;联系工程师指引&#xff0c;现在回过来想&#xff0c;第一时间要确认发生时间。 1.通过性能视图&#xff08;马后炮的总结&#xff0c;实际凭记忆恢复了三四次才找到数据&#xff09; 2.先恢复数据 通过Navicat工具&#xff0c;结构同步&#xff0…...

自然语言转SQL的应用场景探索

自然语言转SQL的应用场景探索 1. 自然语言转sql有哪些解决方案2. 自然语言转sql有哪些应用场景3. 自然语言转sql在智能制造领域有哪些应用场景 1. 自然语言转sql有哪些解决方案 自然语言转SQL&#xff08;NL2SQL&#xff09;是一个涉及自然语言处理&#xff08;NLP&#xff09…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...