日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Kaggle] Sentiment Analysis on Movie Reviews(BERT)

發布時間:2024/7/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [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

總結

以上是生活随笔為你收集整理的[Kaggle] Sentiment Analysis on Movie Reviews(BERT)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。