Paddle上手实战——NLP经典cls任务“推特文本情感13分类”

Paddle上手实战——NLP经典cls任务“推特文本情感13分类”

实战背景介绍

数据地址:https://www.heywhale.com/home/activity/detail/611cbe90ba12a0001753d1e9/content

Twitter推文具备多重特性,首要之处在于其与Facebook的显著区别——其完全基于文本形式,通过Twitter接口可轻松注册并下载,从而便于作为自然语言处理研究所需的语料库。此外,Twitter明确规定了每篇推文的长度上限为140个字符,实际推文的长短各异,但普遍偏短,部分推文甚至仅包含一个句子或短语,这增加了对其进行情感分类标注的复杂性和挑战性。再者,推文往往具有即兴性,内容中富含情感元素,口语化表达较为普遍,缩写和网络用语频繁出现,情绪符号、新词和俚语亦屡见不鲜,这使得其与正式文本存在显著区别。因此,若采用适用于正式文本的情感分类方法对Twitter推文进行情感分析,其效果往往不尽如人意。

公众情感在多个领域,如电影评论、消费者信心、政治选举以及股票走势预测等,正日益展现出其重要的影响力。针对公共媒体内容进行情感分析,已成为分析公众情感的一项基础性任务,其重要性不言而喻。

img

准备数据集

数据集基于推特用户发表的推文数据集,并且针对部分字段做出了一定的调整,所有的字段信息请以本练习赛提供的字段信息为准
字段信息内容参考如下:

  1. tweet_id string 推文数据的唯一ID,比如test_0,train_1024
  2. content string 推特内容
  3. label int 推特情感的类别,共13种情感

其中训练集train.csv包含3w条数据,字段包括tweet_id,content,label;测试集test.csv包含1w条数据,字段包括tweet_id,content。

tweet_id,content,label
tweet_1,Layin n bed with a headache  ughhhh...waitin on your call...,1
tweet_2,Funeral ceremony...gloomy friday...,1
tweet_3,wants to hang out with friends SOON!,2
tweet_4,"@dannycastillo We want to trade with someone who has Houston tickets, but no one will.",3
tweet_5,"I should be sleep, but im not! thinking about an old friend who I want. but he's married now. damn, & he wants me 2! scandalous!",1
tweet_6,Hmmm. 
http://www.djhero.com/ is down,4
tweet_7,@charviray Charlene my love. I miss you,1
tweet_8,cant fall asleep,3

加载数据集

加载数据集

在数据分析和机器学习的项目中,加载数据集是至关重要的一步。数据集的质量、格式和完整性直接影响到后续的分析和模型训练的效果。在本章节中,我们将详细讨论如何加载数据集,并对其进行初步的处理和检查。

一、数据集来源与选择

首先,我们需要明确数据集的来源。数据集可以来自公开的数据仓库、研究机构、商业平台或者通过爬虫等方式自行获取。在选择数据集时,需要考虑数据集的可靠性、时效性、相关性和规模。对于Twitter推文这样的文本数据,我们可能需要从Twitter API或者相关的第三方数据源获取。

二、数据加载方式

数据加载的方式取决于数据的存储格式和所使用的编程环境。对于文本数据,常见的存储格式包括CSV、JSON、TXT等。在Python环境中,我们可以使用pandas库来加载这些数据。

例如,对于CSV格式的数据,可以使用以下代码加载:

import pandas as pd  # 假设数据集名为'tweets.csv'  
data = pd.read_csv('tweets.csv')

对于JSON格式的数据,可以使用:

import pandas as pd  # 假设数据集名为'tweets.json'  
data = pd.read_json('tweets.json')

如果数据存储在数据库中,则需要使用相应的数据库连接和查询语句来加载数据。

三、数据初步处理

加载数据后,通常需要进行一些初步的处理,包括数据清洗、缺失值处理、异常值处理等。对于Twitter推文数据,可能需要去除无关字符、标点符号、停用词等,并进行文本编码转换。

例如,我们可以使用正则表达式来去除推文中的URL和特殊字符:

import re  # 定义一个函数来清洗推文  
def clean_tweet(tweet):  tweet = re.sub(r'http\S+', '', tweet)  # 去除URL  tweet = re.sub(r'[^\w\s]', '', tweet)  # 去除特殊字符  return tweet  # 应用清洗函数到数据集中的每一行  
data['clean_tweet'] = data['tweet'].apply(clean_tweet)

四、数据检查

加载并初步处理数据后,我们需要对数据进行检查,以确保数据的完整性和准确性。这包括检查数据的行数和列数、检查是否有缺失值、检查数据的分布情况等。

# 检查数据集的形状(行数和列数)  
print(data.shape)  # 检查缺失值  
print(data.isnull().sum())  # 查看数据分布(例如,查看某个字段的唯一值数量)  
print(data['column_name'].nunique())

通过这些检查,我们可以对数据的整体情况有一个大致的了解,并为后续的分析和建模工作做好准备。

综上所述,加载数据集是数据分析和机器学习项目中的关键步骤。通过选择合适的数据源、使用适当的加载方式、进行初步的数据处理和检查,我们可以确保数据的质量和可用性,为后续的工作奠定坚实的基础。

本数据集实战代码

tweet_idcontentlabel
0tweet_0@tiffanylue i know i was listenin to bad habi...0
1tweet_1Layin n bed with a headache ughhhh...waitin o...1
2tweet_2Funeral ceremony...gloomy friday...1
3tweet_3wants to hang out with friends SOON!2
4tweet_4@dannycastillo We want to trade with someone w...3
def read(pd_data):for index, item in pd_data.iterrows():       yield {'text': item['content'], 'label': item['label'], 'qid': item['tweet_id'].strip('tweet_')}
# 分割训练集、测试机
from paddle.io import Dataset, Subset
from paddlenlp.datasets import MapDataset
from paddlenlp.datasets import load_datasetdataset = load_dataset(read, pd_data=train,lazy=False)
dev_ds = Subset(dataset=dataset, indices=[i for i in range(len(dataset)) if i % 5 == 1])
train_ds = Subset(dataset=dataset, indices=[i for i in range(len(dataset)) if i % 5 != 1])
for i in range(5):print(train_ds[i])
# 在转换为MapDataset类型
train_ds = MapDataset(train_ds)
dev_ds = MapDataset(dev_ds)
print(len(train_ds))
print(len(de

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

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

相关文章

微软大中华区商业应用事业部高级产品经理张诗源,将出席“ISIG-低代码/零代码技术与应用发展峰会”

3月16日,第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导,企智未来科技(LowCode低码时代、RPA中国、AIGC开放社区)主办。大会旨在聚合每一位产业成员的力量,深入探索低…

JavaWeb实验 JSP 基本语法(续

实验目的 掌握JSP基本语法;掌握JSP常见用法。 实验内容 【1】创建index.jsp、first.jsp和second.jsp三个jsp文件,页面的内容分别显示“This is my JSP page of index.jsp.”、“This is my JSP page of first.jsp.”和“This is my JSP page of secon…

什么是AI智能答题?

AI智能答题是指利用人工智能(AI)技术,尤其是自然语言处理(NLP)和机器学习(ML)算法,来理解、分析并回答用户提出的问题的过程。这种技术可以应用于各种场合,包括在线教育平…

【Proteus仿真】【STM32单片机】井盖安全检测装置设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602液晶显示模块、WIFI模块、蜂鸣器、LED按键、ADC PCF8591、角度/可燃气检测传感器等。 主要功能: 系统运行后,LC…

如何制作一份精美的数据分析可视化报告?详细教程

在数据可视化分析的最后阶段,所有的分析、研究、推导以及得出的结论,都汇总成了一份详实的报告。这份报告不仅是对整个数据分析旅程的总结,更是向读者展示这段旅程所取得的成果。 那么,数据分析报告该如何制作呢?不用…

python--宣传篇--personal-qrcode个性二维码

文章目录 准备代码效果 准备 代码 from MyQR import myqr import osdef get_img_qrcode(words, save_name, picture, colorizedTrue):if save_name[-3:] in ["jpg", "png", "gif"]:if picture[-3:] in ["png", "jpg", &qu…

nicegui学习使用

https://www.douyin.com/shipin/7283814177230178363 python轻量级高自由度web框架 - NiceGUI (6) - 知乎 python做界面,为什么我会强烈推荐nicegui 秒杀官方实现,python界面库,去掉90%事件代码的nicegui python web GUI框架-NiceGUI 教程…

C# 用 System.Xml 读 Freeplane.mm文件,生成测试用例.csv文件

Freeplane 是一款基于 Java 的开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能,比如数学公式、节点属性面板等。 编写 read_Xml.cs 如下 using System; using System.IO…

kmc密钥管理的基本功能是什么

KMC(密钥管理中心)在公钥基础设施中占据着举足轻重的地位,它是专门负责为CA(证书授权)系统提供一系列密钥服务的核心组件。这些服务包括但不限于密钥的生成、保存、备份、更新、恢复以及查询等,旨在解决分布式企业应用环境中大规模密码技术应用所带来的密…

R语言:多值提取到点

ArcGIS中有相关工具实现多值提取到点的功能&#xff0c;在这里&#xff0c;我将使用R语言进行操作&#xff1a; library(dplyr) library(readxl) library(sf) library(raster)setwd("D:/Datasets") Bio <- stack(paste0("D:/Datasets/Data/worldclim2_1km/…

DEYO: DETR with YOLO for End-to-End Object Detection论文翻译

DEYO&#xff1a;DETR与YOLO用于端到端目标检测 摘要 DETR的训练范式在很大程度上取决于在ImageNet数据集上预训练其骨干。然而&#xff0c;由图像分类任务和一对一匹配策略提供的有限监督信号导致DETR的预训练不充分的颈部。此外&#xff0c;在训练的早期阶段匹配的不稳定性会…

web接入海康相机视屏流 注意事项 - 编码H264

视屏编码&#xff08;主码流和子码流都改&#xff09;必须是H264&#xff0c;H265编码webrtc解析不了编码修改后&#xff0c;先使用vlc播放器&#xff0c;播放视屏编码修改后&#xff0c;重启相机&#xff0c;重启视屏录像机&#xff08;如果相机是挂在视屏录像机上的&#xff…

3.7 FreeRTOS day2

思维导图&#xff1a; 1.使用ADC采样光敏电阻数值&#xff0c;如何根据这个数值调节LED灯亮度。 配置ADC以读取光敏电阻的电压值&#xff0c;配置PWM以控制LED的亮度。使用ADC读取光敏电阻的电压值。这个值将随着环境光线的变化而变化。将ADC读取的原始值映射到一个更易于处理…

Django高级之-缓存

Django高级之-缓存 一 缓存介绍 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务…

.Net6使用JWT认证和授权

文章目录 目的实现案例一.项目所需包&#xff1a;二.配置项目 appsettings.json 文件&#xff1a;三.创建Model文件夹&#xff0c;添加AppConfig类和UserRole类1.AppConfig类获取appsettings.json文件中的值2.UserRole类用于区分用户信息和权限 四.主体代码案例&#xff1a;1.L…

centos离线安装 k8s (实操可用)

全部安装包rpm下载&#xff08;已整理好k8s和docker&#xff09;&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1ATv8BPijhvIKWz4hMnkx6Q?pwdt5db 提取码&#xff1a;t5db 将文件下载以后&#xff0c;解压到服务器 #执行所有docker-rpm包 yum -y localinstall *.rpm…

OpenCV开发笔记(七十六):相机标定(一):识别棋盘并绘制角点

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/136535848 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子(红模仿…

阿珊比较Vue和React:两大前端框架的较量

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【你也能从零基础学会网站开发】Web建站之HTML+CSS入门篇 常用HTML标签(3)

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 HTML框架集…

Linux环境下使用interrupt方式操作UART

目录 概述 1 Linux环境下UART设备 2 轮询方式操作UART功能实现 2.1 打开串口函数&#xff1a;usr_serial_open 2.2 关闭串口函数&#xff1a; usr_serial_close 2.3 发送数据函数&#xff1a; usr_serial_sendbytes 2.4 接收数据函数&#xff1a; usr_serial_readinterr…