使用深度学习模型进行情感分析!!!

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
简介: 本文介绍了如何使用深度学习模型进行中文情感分析。首先导入了必要的库,包括`transformers`、`pandas`、`jieba`和`re`。然后定义了一个`SentimentAnalysis`类,用于处理数据、加载真实标签和评估模型准确性。在主函数中,使用预训练的情感分析模型对处理后的数据进行预测,并计算模型的准确性。

[TOC]

使用深度学习模型进行情感分析

1. 导入库

from transformers import pipeline
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import pandas as pd
import jieba
import re

CopyInsert

  • transformers库中的pipeline用于便捷地创建和使用预训练的模型进行任务(如情感分析)。
  • pandas用于数据处理和分析。
  • jieba是一个中文分词程序,用于对中文文本进行分词。
  • re是Python的正则表达式库,用于处理文本的清理和格式化。

2. 定义情感分析类

class SentimentAnalysis:
    def __init__(self):
        self.path = './weibo_senti_100k.csv'

CopyInsert

  • 定义一个SentimentAnalysis类,构造函数中初始化self.path变量,存储数据文件的路径。

3. 数据处理

def data_process(self):
    index = 0
    review_result = []
    df = pd.read_csv(self.path)
    review = df['review'].tolist()
    for sentence in review:
        sentence = re.sub('@.*?', '', sentence)
        sentence = re.sub('@.*?:', '', sentence)
        sentence = re.sub('@.*?:', '', sentence)
        sentence = re.sub(r'\w+', '', sentence)
        cut = jieba.lcut(sentence)
        segResult = []
        for word in cut:
            if ('\u4e00' <= word <= '\u9fa5'):
                segResult.append(word)
        review_result.append(' '.join(segResult))
        index += 1
    return review_result

CopyInsert

  • 首先读取CSV文件并将评论数据加载到review列表中。
  • 对每条评论进行清洗处理:
    • 移除@提及的用户(例如:@用户)。
    • 用正则表达式移除所有非中文字符(如数字、英文字母等)。
  • 使用jieba.lcut进行分词,对分词结果进行过滤,仅保留中文字符。
  • 将处理后的结果加入到review_result列表中,最终返回这个列表。

4. 评估模型准确性

def evaluate(self, guess_label, real_label):
    real_index = 0
    fake_index = 0
    for index in range(len(real_label)):
        if real_label[index] == guess_label[index]:
            real_index += 1
        else:
            fake_index += 1
    return real_index/(real_index + fake_index)

CopyInsert

  • 该方法接收两个列表:guess_label(模型预测标签)和real_label(真实标签)。
  • 通过循环比较两个标签列表,计算正确预测的数量与总预测数量的比率,返回这个比率作为准确性。

5. 加载真实标签

def load_data(self):
    df = pd.read_csv(self.path)
    real_label = df['label'].tolist()
    return real_label

CopyInsert

  • 读取CSV文件并获取'事件'列的真实标签。

6. 主函数部分

if __name__ == '__main__':
    classifier = pipeline('sentiment-analysis')
    sa = SentimentAnalysis()
    results = classifier(sa.data_process())
    guess_label = []
    for result in results:
        if result['label'] == 'POSITIVE':
            guess_label.append(1)
        else:
            guess_label.append(0)
        print(f'label: {result["label"]}, with score: {round(result["score"], 4)}')
    real_label = sa.load_data()
    ratio = sa.evaluate(guess_label, real_label)
    print(ratio)

CopyInsert

  • 检查是否在主模块中运行。
  • 使用pipeline创建情感分析模型。
  • 初始化SentimentAnalysis类实例。
  • 调用data_process()方法处理数据,并传入情感分析模型进行分析。
  • 根据模型输出生成预测标签(1表示正向情感,0表示负向情感)。
  • 打印每个预测结果及其分数。
  • 加载真实标签并通过evaluate()方法评估模型准确性,最后打印准确性。
相关文章
|
2月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
293 27
|
1月前
|
机器学习/深度学习 数据可视化 算法
深度学习模型结构复杂、参数众多,如何更直观地深入理解你的模型?
深度学习模型虽应用广泛,但其“黑箱”特性导致可解释性不足,尤其在金融、医疗等敏感领域,模型决策逻辑的透明性至关重要。本文聚焦深度学习可解释性中的可视化分析,介绍模型结构、特征、参数及输入激活的可视化方法,帮助理解模型行为、提升透明度,并推动其在关键领域的安全应用。
210 0
|
11天前
|
机器学习/深度学习 存储 PyTorch
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
Neural ODE将神经网络与微分方程结合,用连续思维建模数据演化,突破传统离散层的限制,实现自适应深度与高效连续学习。
51 3
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
|
2月前
|
机器学习/深度学习 人工智能 PyTorch
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
本文以 MNIST 手写数字识别为切入点,介绍了深度学习的基本原理与实现流程,帮助读者建立起对神经网络建模过程的系统性理解。
290 15
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI 基础知识从 0.3 到 0.4——如何选对深度学习模型?
本系列文章从机器学习基础出发,逐步深入至深度学习与Transformer模型,探讨AI关键技术原理及应用。内容涵盖模型架构解析、典型模型对比、预训练与微调策略,并结合Hugging Face平台进行实战演示,适合初学者与开发者系统学习AI核心知识。
275 15
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
451 3
|
3月前
|
机器学习/深度学习 存储 PyTorch
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
本文通过使用 Kaggle 数据集训练情感分析模型的实例,详细演示了如何将 PyTorch 与 MLFlow 进行深度集成,实现完整的实验跟踪、模型记录和结果可复现性管理。文章将系统性地介绍训练代码的核心组件,展示指标和工件的记录方法,并提供 MLFlow UI 的详细界面截图。
132 2
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
|
7月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
9月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
389 73
|
8月前
|
机器学习/深度学习 存储 人工智能
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
MNN 是阿里巴巴开源的轻量级深度学习推理框架,支持多种设备和主流模型格式,具备高性能和易用性,适用于移动端、服务器和嵌入式设备。
1890 18
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式