Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >LLM学习笔记02:两行Python代码,如何实现情感分析

LLM学习笔记02:两行Python代码,如何实现情感分析

原创
作者头像
叫我阿柒啊
修改于 2025-03-13 06:53:12
修改于 2025-03-13 06:53:12
12731
代码可运行
举报
运行总次数:1
代码可运行

前言

在上一篇文章LLM学习笔记:如何理解LLM中的Transformer架构中,我们了解了在GPT、stable diffusion以及情感分析等AI领域常见的 Transformer 架构,概括下来就是:Transformer 是一种用于处理和生成序列数据的深度学习架构,其内部的各种机制(例如 Self-Attention)使计算机能够更好地理解和生成自然语言

那么,对于开发者来说,该如何使用这种架构理论呢?答案就是 Python 的 Transformers 库。

Transformers

Hugging Face 在 Transformers 中封装了各种预训练的 Transformer 模型,让开发者无需从零开始训练,只需几行代码就能加载 BERT、GPT-2、T5 等模型,可以用于以下场景:

  1. 自然语言处理:文本分类、命名实体识别、问答、翻译、多项选择和文本生成等
  2. 机器视觉:图像分类、目标检测和语义分割
  3. 音频:自动语音识别和音频分类

同时,Transformers 支持 PyTorch、TensorFlow 和 JAX,在一个框架中训练一个模型,在另一个框架也可以使用加载,增加了互通性。

pipeline()

Transformers 中的 pipeline()封装了预训练模型,让用户可以直接来执行各种自然语言处理任务,而无需手动加载模型。下面是一些常见的pipeline:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 文本分类(情感分析)
pipeline("sentiment-analysis")
# 命名实体识别(NER)
pipeline("ner")
# 文本生成(如 GPT)
pipeline("text-generation")
# 翻译
pipeline("translation")
# 填空
pipeline("fill-mask")
# 语音转文本
pipeline("automatic-speech-recognition")
# 图片识别
pipeline("image-classification")

安装

在使用之前需要安装 transformers,也需要安装pytorch或者tenserflow框架,这里我们使用pytorch。

代码语言:bash
AI代码解释
复制
pip install transformers torch torchvision torchaudio

安装成功之后,就可以使用 transformers 了。

接下来我们就开始使用 pipeline 上面的示例:

镜像配置

我们使用一段情感分析的代码来测试一下 transformers。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
from transformers import pipeline

# 加载情感分析 pipeline
sentiment_pipeline = pipeline("sentiment-analysis")

# 进行情感分析
result = sentiment_pipeline("I love this movie!")
print(result)  # [{'label': 'POSITIVE', 'score': 0.99}]

上面代码调用了 pipeline("sentiment-analysis"),它自动加载合适的预训练模型(如 distilbert-base-uncased-finetuned-sst-2-english),然后对文本进行情感分析,输出正面(POSITIVE)或负面(NEGATIVE)的结果。

但是你在实际运行的时候,其实是报错的,因为需要的模型默认要在 huggingface 下载,国内是访问不了 huggingface 的,所以要想办法将模型下载下来,才能使用 transformers。

所以我们可以使用国内的镜像源 hf-mirror,最简单的方法就是在环境中设置镜像.首先,我们要在py程序中指定要使用的模型:

代码语言:python
代码运行次数:1
运行
AI代码解释
复制
classifier = pipeline("sentiment-analysis", model="uer/roberta-base-finetuned-jd-binary-chinese")

在这里我们使用的一个适用于京东商品评论的二分类(好评和差评)任务,这些模型可以在镜像源网站上搜索。然后配置环境变量:

代码语言:bash
AI代码解释
复制
export HF_ENDPOINT=https://hf-mirror.com

然后在交互行中,使用python手动运行你的py程序,这样模型就下载下来了。

情感分析

下次在IDE中运行py程序,就会自动使用下载好的模型。

如图,label的结果negative表示情感负面,star对应 1~3 星的评价,score表示模型对自己的判读有98%的可信度。如果想要批量对文本情感分析,在 classifier 中传入list即可。

工作流程

上面我们使用 pipeline() 完成了一个情感分析的demo,那么 pipeline 是如何工作的呢?

这张图展示了 文本情感分析(Sentiment Analysis) 的 处理流程,主要分为三个步骤:

1. Tokenizer(分词器)

Tokenizer 的作用是将原始文本转换为模型可以理解的 Input ID。如上图所示,输入文本:This course is amazing,经过分词器转换为:101, 2023, 2607, 2003, 6429, 999, 102

2. Model(模型)

然后就是将 Input ID 输入到我们在代码中指定的模型中,并生成 logits(对类别的预测分数)。图中输出 logits(模型的 raw scores):-4.3630, 4.6859其中,第一个值代表负面情绪的得分,第二个值代表正面情绪的得分。

3. Post Processing(后处理)

Post Processing 对 logits 进行 Softmax 归一化,将模型输出的 logits 转换成(0 - 1)的概率,然后给出最终的预测结果。

如图,模型输出的logits:-4.3630, 4.6859经过 softmax 转换后:POSITIVE(正面):99.89%,NEGATIVE(负面):0.11%,所以该文本 情感倾向为正面。

所以说 pipeline 简化了这些工作流程,如果没有 pipeline,我们需要下面这么多代码才能实现情感分析的demo:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

# 1. 加载 tokenizer 和模型
model_name = "uer/roberta-base-finetuned-jd-binary-chinese"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# 2. 输入文本
texts = "这家店的服务太差了!"

# 3. 对文本进行 tokenization
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt")

# 4. 使用pytorch进行推理
with torch.no_grad():
    outputs = model(**inputs)

# 5. 获取 logits(未归一化的得分)
logits = outputs.logits

# 6. 计算 softmax 归一化得分
probs = torch.nn.functional.softmax(logits, dim=-1)

# 7. 获取最高分的类别索引
predicted_labels = torch.argmax(probs, dim=1)

# 8. 映射到实际的情感类别
label_map = {0: "负面", 1: "正面"}

# 9. 打印结果
print(f"文本: {texts} | 情感类别: {label_map[predicted_labels.item()]} | 置信度: {probs[0, predicted_labels].item():.4f}")

运行代码,输入结果:

结语

本篇文章是跟着 Hugging Face 推出的 NLP课程,学习了如何使用 transformers 实现简单的情感分析,同时也在学习过程中解决了模型无法下载的问题,其中的 pipeline() 降低了开发门槛,提高了易用性,有兴趣的小伙伴可以尝试一下。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
3 条评论
热度
最新
柒哥,赛道四选一。得加上标签啊哥哥。
柒哥,赛道四选一。得加上标签啊哥哥。
22点赞举报
故意没加,就等挺哥提醒的
故意没加,就等挺哥提醒的
回复回复点赞举报
做兄弟,在心中
做兄弟,在心中
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
AI在自然语言处理中的突破:从理论到应用
自然语言处理(Natural Language Processing,NLP)是人工智能(AI)的一个重要分支,旨在实现计算机与人类语言的交互。近年来,随着深度学习和大规模语言模型的发展,自然语言处理取得了显著突破,从理论研究到实际应用,推动了多个领域的进步。本文将介绍NLP的核心技术及其突破,并通过代码示例展示其应用。
Echo_Wish
2024/12/20
3530
AI在自然语言处理中的突破:从理论到应用
多模态AI系统:结合视觉、语言和声音的智能
随着人工智能技术的飞速发展,单一模态的人工智能应用已经逐渐无法满足日益复杂的需求。多模态AI系统,结合了视觉、语言和声音等多个感知模态,成为了研究的热点。通过整合这些不同的信息源,能够使AI系统更好地理解和生成与人类交流的内容。这种系统在自动驾驶、智能客服、医学影像分析等领域具有广泛的应用前景。
一键难忘
2025/03/22
90
Huggingface🤗NLP笔记3:Pipeline端到端的背后发生了什么
「Huggingface🤗NLP笔记系列-第3集」最近跟着Huggingface上的NLP tutorial走了一遍,惊叹居然有如此好的讲解Transformers系列的NLP教程,于是决定记录一下学
beyondGuo
2021/10/08
2.2K0
Transformers 4.37 中文文档(一)
下表表示库中对这些模型的当前支持,它们是否有 Python 分词器(称为“slow”)。由🤗 Tokenizers 库支持的“fast”分词器,它们是否在 Jax(通过 Flax)、PyTorch 和/或 TensorFlow 中有支持。
ApacheCN_飞龙
2024/06/26
1.1K0
Transformers 4.37 中文文档(一)
好评or坏评?AI用Hugging Face和PyTorch解码答案
huggingface的官网,一般都是打不开的状态。首先,我们来介绍一个huggingface的镜像:
Tom2Code
2024/02/22
2650
好评or坏评?AI用Hugging Face和PyTorch解码答案
【RLHF】想训练ChatGPT?先来看看强化学习(RL)+语言模型(LM)吧(附源码)
随着最近 ChatGPT 的大火,越来越多人开始关注其中用到的 RLHF(Reinforcement Learning from Human Feedback)这一核心思想。
汀丶人工智能
2023/10/11
8230
【RLHF】想训练ChatGPT?先来看看强化学习(RL)+语言模型(LM)吧(附源码)
【机器学习】—Transformers的扩展应用:从NLP到多领域突破
自从Google在2017年提出Transformer架构以来(论文《Attention is All You Need》),这一模型在NLP(自然语言处理)中引发了革命。从BERT到GPT,Transformer的性能在文本生成、分类、翻译等任务中大幅领先传统方法。然而,随着研究的深入,Transformer不再局限于NLP,它在计算机视觉(CV)、时间序列分析、多模态学习等领域的表现同样令人瞩目。
云边有个稻草人
2024/12/29
2000
【人工智能】Transformers之Pipeline(十七):文本分类(text-classification)
pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型
LDG_AGI
2024/09/12
4380
【人工智能】Transformers之Pipeline(十七):文本分类(text-classification)
大语言模型--- 不同种类Reward Model输出的代码分析;Seq. Classifier介绍;Seq. Classifier总体输出代码;代码分析
每一个种类输出代码都不同,本文主要详细讲解Seq. Classifiers(序列分类器)的输出代码。
非那雄胺消费者
2024/11/25
1140
借势AI系列:人工智能驱动的舆情分析与社交媒体监测【技术应用与实战示例】
随着社交媒体的广泛使用,舆情分析和社交媒体监测在企业、政府和媒体机构中变得至关重要。人工智能(AI)的进步为舆情分析提供了强大的技术支持,帮助分析和预测社交媒体平台上的趋势和情绪。本文将探讨如何使用AI技术实现有效的舆情分析,并提供相应的代码实例。
一键难忘
2024/11/01
1.2K1
深入解析情感分析技术:从篇章到属性
情感分析,也被称为情绪分析或意见挖掘,是自然语言处理(NLP)的一个分支,旨在识别和提取文本中的主观信息,如情感、情绪或意见。
TechLead
2023/10/21
7890
深入解析情感分析技术:从篇章到属性
Deepseek 实战全攻略,领航科技应用的深度探索之旅
想玩转 Deepseek?这攻略别错过!先带你了解它的基本原理,教你搭建运行环境。接着给出自然语言处理、智能客服等应用场景的实操方法与代码。还分享模型微调、优化技巧,结合案例加深理解,让你全面掌握,探索科技新可能!
用户11458826
2025/02/26
1760
transformer小白入门
transformer库是huggingface发布的1个框架,非常好用,很多外行看起来高大上的问题,用它都可以轻松解决,先来看1个小例子:
菩提树下的杨过
2023/08/21
6880
transformer小白入门
5分钟 NLP :Hugging Face 主要类和函数介绍 🤗
来源:Deephub Imba本文约2200字,建议阅读9分钟本文包含其主要类和函数的概述以及一些代码示例。可以作为该库的一个入门教程 。 主要包括Pipeline, Datasets, Metrics, and AutoClasses HuggingFace是一个非常流行的 NLP 库。本文包含其主要类和函数的概述以及一些代码示例。可以作为该库的一个入门教程 。 Hugging Face 是一个开源库,用于构建、训练和部署最先进的 NLP 模型。Hugging Face 提供了两个主要的库,用于模型的t
数据派THU
2022/03/14
4.2K0
2022搜狐校园 情感分析 × 推荐排序 算法大赛 baseline
比赛链接:https://www.biendata.xyz/competition/sohu_2022/
致Great
2022/05/13
9550
2022搜狐校园 情感分析 × 推荐排序 算法大赛 baseline
黑马博学谷 AI大模型训练营一期
黑马博学谷 AI大模型训练营,掌握大模型垂直业务领域知识问答、文生图、情感分析、虚拟试衣等业务场景的应用与开发能力。
百课优用户
2024/07/20
3030
深度解析BERT:从理论到Pytorch实战
在信息爆炸的时代,自然语言处理(NLP)成为了一门极其重要的学科。它不仅应用于搜索引擎、推荐系统,还广泛应用于语音识别、情感分析等多个领域。然而,理解和生成自然语言一直是机器学习面临的巨大挑战。接下来,我们将深入探讨自然语言处理的一些传统方法,以及它们在处理语言模型时所面临的各种挑战。
TechLead
2023/10/21
4.8K0
深度解析BERT:从理论到Pytorch实战
聊聊HuggingFace Transformer
一个完整的transformer模型主要包含三部分:Config、Tokenizer、Model。
Ryan_OVO
2023/10/19
8410
聊聊HuggingFace Transformer
pytorch实战---IMDB情感分析
在代码中设置日志的作用是记录程序的运行状态、调试信息和重要事件,以便在开发和生产环境中更轻松地诊断问题和了解程序的行为。设置日志有以下作用:
小馒头学Python
2024/04/28
6440
pytorch实战---IMDB情感分析
Transformer 模型实用介绍:BERT
在 NLP 中,Transformer 模型架构是一场革命,极大地增强了理解和生成文本信息的能力。
数据科学工厂
2023/08/10
5710
Transformer 模型实用介绍:BERT
推荐阅读
相关推荐
AI在自然语言处理中的突破:从理论到应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验