[Kaggle] Sentiment Analysis on Movie Reviews(BERT)

文章目录

    • 1. 预训练模型下载
    • 2. 数据集
    • 3. 加载预训练模型
    • 4. 提交结果

练习地址:https://www.kaggle.com/c/sentiment-analysis-on-movie-reviews
相关博文:
[Kaggle] Spam/Ham Email Classification 垃圾邮件分类(BERT)

本文使用 huggingface 上的预训练模型,在预训练模型的基础上,使用kaggle任务的数据集,进行训练 finetune,在kaggle提交测试结果

1. 预训练模型下载

下载地址 https://huggingface.co/bert-base-uncased/tree/main

模型下载很慢的话,我传到 csdn了,可以免费下载

存放在目录如./bert-base-uncased

2. 数据集

  • 数据集切分
train_csv = pd.read_csv("./train.tsv", sep='\t')
test_csv = pd.read_csv("./test.tsv", sep='\t')
train_csv.head(50)
# %%
test_csv.head()
# %%# 切分出一些验证集,分层抽样
from sklearn.model_selection import StratifiedShuffleSplitsplt = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=1)
for train_idx, valid_idx in splt.split(train_csv, train_csv['Sentiment']):train_part = train_csv.loc[train_idx]valid_part = train_csv.loc[valid_idx]y_train = train_part['Sentiment']
y_valid = valid_part['Sentiment']
X_train = train_part['Phrase']
X_valid = valid_part['Phrase']X_test = test_csv['Phrase']
y_test = [0] * len(X_test)  # 测试集没有标签,这么处理方便代码处理
y_test = torch.LongTensor(y_test)  # 转成tensor

3. 加载预训练模型

from transformers import AutoTokenizer, BertForSequenceClassificationtokenizer = AutoTokenizer.from_pretrained("./bert-base-uncased")# num_classes = 5 , 5种情绪
pretrain_model = BertForSequenceClassification.from_pretrained("./bert-base-uncased", num_labels=num_classes)
  • 编写自定义模型
class myModel(nn.Module):def __init__(self):super(myModel, self).__init__()self.pretrain_model = pretrain_modelfor param in self.pretrain_model.parameters():param.requires_grad = Truedef forward(self, x):context = x[0]mask = x[2]out = self.pretrain_model(context, attention_mask=mask)# out 的 size [batch_size, num_classes]out = torch.softmax(out.logits, 1) # 归一化 维度 1 为概率return out

注:其余数据处理、训练等代码跟前一篇完全一样

本文完整代码

4. 提交结果

我的得分:0.69174

排行榜最高得分: 0.76526

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

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

相关文章

Qt利用avilib实现录屏功能_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...

内容概览1.openlayers6结合geoserver利用WFS服务实现图层编辑功能2.源代码demo下载效果图如下:本篇主要是参照openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)基础上实现的,openlayers6通过调用geoserver发布的地图服务WFS来达到图层编…

LeetCode DD-2020006. 简单游戏(前缀和)

文章目录1. 题目2. 解题1. 题目 给出一个长度为 n 的数组 a&#xff0c;你需要在这个数组中找到一个长度至少为 m 的区间&#xff0c;使得这个区间内的数字的和尽可能小。 输入描述: 第一行包含一个正整数 n&#xff0c;m,表示数组的大小和所选区间的最小长度。(1<n<1…

【转载】OpenStack Swift学习笔记

免责声明&#xff1a; 本文转自网络文章&#xff0c;转载此文章仅为个人收藏&#xff0c;分享知识&#xff0c;如有侵权&#xff0c;请联系博主进行删除。 原文作者&#xff1a;崔炳华 原文地址&#xff1a;http://blog.csdn.net/i_chips/article/details/17787017 1 概…

Android Studio 选项菜单和动画结合_Android 应用与iOS 应用之间的设计差异对比!

同一个App&#xff0c;为什么iOS 和Android 的交互操作有那么大的区别&#xff1f;本文将用大量原生设计案例&#xff0c;为你一一说明它们为什么应该这样做&#xff0c;赶紧学起来&#xff01;了解并适当结合平台规范与优势&#xff0c;才能做到最佳的用户体验。为了创建最佳的…

图片操作案例:python 批量更改图像尺寸到统一大小的方法

一、需求&#xff1a; 批量修改该图片长与宽尺寸 二、素材&#xff1a; 三、代码&#xff1a; from PIL import Image import os.path import globdef convertjpg(jpgfile,outdir,width512,height512):imgImage.open(jpgfile)try:new_imgimg.resize((width,height),Image.BI…

LeetCode 753. 破解保险箱(DFS)

文章目录1. 题目2. 解题1. 题目 有一个需要密码才能打开的保险箱。 密码是 n 位数, 密码的每一位是 k 位序列 0, 1, …, k-1 中的一个 。 你可以随意输入密码&#xff0c;保险箱会自动记住最后 n 位输入&#xff0c;如果匹配&#xff0c;则能够打开保险箱。 举个例子&#x…

windows副本不是正版怎么解决_解决Windows沙盒怎么联网问题

windows 沙盒简单来讲就是一款沙盒虚拟化的Windows系统&#xff0c;而最近还蛮多小伙伴来问小编说&#xff0c;Windows沙盒能够联网吗&#xff1f;Windows沙盒怎么联网&#xff1f;针对这个问题&#xff0c;接下来小编就来和大家好好的说说关于windows沙盒的情况吧。1、首先我们…

西瓜视频(头条)解析并利用IDM工具下载

一、西瓜视频网址解析完整代码&#xff1a; import requests import urllib3 urllib3.disable_warnings() import re import json import base64cookie你的cookie headers{"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like…

天池 在线编程 寻找字母(计数)

文章目录1. 题目2. 解题1. 题目 给定一个字符串str&#xff0c;返回字符串中字母顺序最大的而且同时在字符串中出现大写和小写的字母。 如果不存在这样的字母&#xff0c;返回‘~‘。 please return uppercase |str|<1000示例 例 1&#xff1a; 输入:"aAbBcD" 输…

电脑硬件检测_【学无止境】电脑硬件维修测试学习资料(附送各类PC检修资源)...

大橙子资源驿站『 电脑硬件维修测试学习资料』多年的PC硬件检修工具和资料&#xff0c;都是本人一年年亲测积累起来的&#xff0c;安全无毒。打包上传分享给大家。—— 资源分享者语关于『 电脑硬件维修学习资料 』这是甛橙从论坛搬运的&#xff0c;因为看着评分挺高&#xff0…

加速国内 Github 访问,下载的9种方案!

1、GitHub 镜像访问 ​​​​​​​这里提供两个最常用的镜像地址&#xff1a; https://github.com.cnpmjs.org https://hub.fastgit.org 也就是说上面的镜像就是一个克隆版的Github&#xff0c;你可以访问上面的镜像网站&#xff0c;网站的内容跟Github是完整同步的镜像&…

天池 在线编程 三等分(模拟)

文章目录1. 题目2. 解题1. 题目 给定一个由 0 和 1 组成的数组 A&#xff0c;将数组分成 3 个非空的部分&#xff0c;使得所有这些部分表示相同的二进制值。 如果可以做到&#xff0c;请返回任何 [i, j]&#xff0c;其中 i1 < j&#xff0c;这样一来&#xff1a; A[0], A…

Python设计模式之模板方法模式实例详解

1、模板方法模式定义 定义一个操作中的算法的框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。 子类实现的具体方法叫作基本方法&#xff0c;实现对基本方法高度的框架方法&#xff0c;叫作模板方…

小米2s自带rec刷root_刷Magisk模块开机卡Logo了怎么办?两种方法教你轻松解决

虽然&#xff0c;Magisk由于工作原理的不同&#xff0c;其模块对系统的兼容性相比较于此前的Xposed框架模块要好得多&#xff0c;但是依旧有可能出现刷了模块之后&#xff0c;卡Logo&#xff0c;无法开机的情况。今天&#xff0c;小编就提供两种方式解决刷Magisk模块卡开机Logo…

proteus如何添加stm32_电路仿真软件详谈(六),Proteus电路仿真软件的超级应用

一款优秀的电路仿真软件&#xff0c;可帮助用户更好实现相应功能&#xff0c;而Proteus电路仿真软件便是这样一款利器。本文中&#xff0c;将讲解基于Proteus电路仿真软件的SPI接口的设计与实现。通过本文&#xff0c;希望大家对Proteus电路仿真软件的应用具备深层次的理解。1、…

LeetCode 803. 打砖块(并查集)

文章目录1. 题目2. 解题1. 题目 有一个 m x n 的二元网格&#xff0c;其中 1 表示砖块&#xff0c;0 表示空白。 砖块 稳定&#xff08;不会掉落&#xff09;的前提是&#xff1a; 一块砖直接连接到网格的顶部&#xff0c;或者至少有一块相邻&#xff08;4 个方向之一&#x…

python设计模式之享元模式

一、享元模式定义&#xff1a; 享元模式是一种用于解决资源和性能压力时会使用到的设计模式&#xff0c;它的核心思想是通过引入数据共享来提升性能。 在开发3D游戏时&#xff0c;例如有成千上万的士兵或者有成千上万棵树&#xff0c;如果一个3D地带的每个对象都单独创建&…

allegro多版本安装_Homebrew 安装旧版本软件包马克

大家好我叫乌图米&#xff0c;我会在这里陆续跟大家分享一些有的没的数码体验、软件技巧、系统知识&#xff0c;欢迎大家留言与我交流&#xff5e;如果你喜欢文章的内容&#xff0c;可以在文末点个赞 &#xff0c;你的支持就是我最大的动力 &#xff01;这篇文章介绍一下 Homeb…

利用Python实现PDF转文本,就是如此简单!

一、前言 对很多人来说&#xff0c;将PDF转换为可编辑的文本是个刚需&#xff0c;却苦于没有简单的方法。发现 pdf 幻灯片&#xff0c;效果还不错。 传统的讲座通常伴随有很多pdf幻灯片。一般来说&#xff0c;想要对自己的讲座做笔记&#xff0c;需要从pdf复制、补充大量内容…

LeetCode 1725. 可以形成最大正方形的矩形数目

文章目录1. 题目2. 解题1. 题目 给你一个数组 rectangles &#xff0c;其中 rectangles[i] [li, wi] 表示第 i 个矩形的长度为 li 、宽度为 wi 。 如果存在 k 同时满足 k < li 和 k < wi &#xff0c;就可以将第 i 个矩形切成边长为 k 的正方形。 例如&#xff0c;矩形…