在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PyTorch教程-16.1. 情緒分析和數據集

jf_pJlTbmA9 ? 來源:PyTorch ? 作者:PyTorch ? 2023-06-05 15:44 ? 次閱讀

隨著在線社交媒體和評論平臺的激增,大量的意見數據被記錄下來,具有支持決策過程的巨大潛力。情感分析研究人們在其生成的文本中的情感,例如產品評論、博客評論和論壇討論。它在政治(例如,公眾對政策的情緒分析)、金融(例如,市場情緒分析)和市場營銷(例如,產品研究和品牌管理)等領域有著廣泛的應用。

由于情緒可以被分類為離散的極性或尺度(例如,積極和消極),我們可以將情緒分析視為文本分類任務,它將可變長度的文本序列轉換為固定長度的文本類別。在本章中,我們將使用斯坦福的大型電影評論數據集進行情感分析。它由一個訓練集和一個測試集組成,其中包含從 IMDb 下載的 25000 條電影評論。在這兩個數據集中,“正面”和“負面”標簽的數量相等,表明不同的情緒極性。

import os
import torch
from torch import nn
from d2l import torch as d2l

import os
from mxnet import np, npx
from d2l import mxnet as d2l

npx.set_np()

16.1.1。讀取數據集

首先,在路徑中下載并解壓這個 IMDb 評論數據集 ../data/aclImdb。

#@save
d2l.DATA_HUB['aclImdb'] = (d2l.DATA_URL + 'aclImdb_v1.tar.gz',
             '01ada507287d82875905620988597833ad4e0903')

data_dir = d2l.download_extract('aclImdb', 'aclImdb')

Downloading ../data/aclImdb_v1.tar.gz from http://d2l-data.s3-accelerate.amazonaws.com/aclImdb_v1.tar.gz...

#@save
d2l.DATA_HUB['aclImdb'] = (d2l.DATA_URL + 'aclImdb_v1.tar.gz',
             '01ada507287d82875905620988597833ad4e0903')

data_dir = d2l.download_extract('aclImdb', 'aclImdb')

Downloading ../data/aclImdb_v1.tar.gz from http://d2l-data.s3-accelerate.amazonaws.com/aclImdb_v1.tar.gz...

接下來,閱讀訓練和測試數據集。每個示例都是評論及其標簽:1 表示“正面”,0 表示“負面”。

#@save
def read_imdb(data_dir, is_train):
  """Read the IMDb review dataset text sequences and labels."""
  data, labels = [], []
  for label in ('pos', 'neg'):
    folder_name = os.path.join(data_dir, 'train' if is_train else 'test',
                  label)
    for file in os.listdir(folder_name):
      with open(os.path.join(folder_name, file), 'rb') as f:
        review = f.read().decode('utf-8').replace('n', '')
        data.append(review)
        labels.append(1 if label == 'pos' else 0)
  return data, labels

train_data = read_imdb(data_dir, is_train=True)
print('# trainings:', len(train_data[0]))
for x, y in zip(train_data[0][:3], train_data[1][:3]):
  print('label:', y, 'review:', x[:60])

# trainings: 25000
label: 1 review: Henry Hathaway was daring, as well as enthusiastic, for his
label: 1 review: An unassuming, subtle and lean film, "The Man in the White S
label: 1 review: Eddie Murphy really made me laugh my ass off on this HBO sta

#@save
def read_imdb(data_dir, is_train):
  """Read the IMDb review dataset text sequences and labels."""
  data, labels = [], []
  for label in ('pos', 'neg'):
    folder_name = os.path.join(data_dir, 'train' if is_train else 'test',
                  label)
    for file in os.listdir(folder_name):
      with open(os.path.join(folder_name, file), 'rb') as f:
        review = f.read().decode('utf-8').replace('n', '')
        data.append(review)
        labels.append(1 if label == 'pos' else 0)
  return data, labels

train_data = read_imdb(data_dir, is_train=True)
print('# trainings:', len(train_data[0]))
for x, y in zip(train_data[0][:3], train_data[1][:3]):
  print('label:', y, 'review:', x[:60])

# trainings: 25000
label: 1 review: Henry Hathaway was daring, as well as enthusiastic, for his
label: 1 review: An unassuming, subtle and lean film, "The Man in the White S
label: 1 review: Eddie Murphy really made me laugh my ass off on this HBO sta

16.1.2。預處理數據集

將每個單詞視為一個標記并過濾掉出現次數少于 5 次的單詞,我們從訓練數據集中創建了一個詞匯表。

train_tokens = d2l.tokenize(train_data[0], token='word')
vocab = d2l.Vocab(train_tokens, min_freq=5, reserved_tokens=[''])

train_tokens = d2l.tokenize(train_data[0], token='word')
vocab = d2l.Vocab(train_tokens, min_freq=5, reserved_tokens=[''])

標記化后,讓我們繪制以標記為單位的評論長度直方圖。

d2l.set_figsize()
d2l.plt.xlabel('# tokens per review')
d2l.plt.ylabel('count')
d2l.plt.hist([len(line) for line in train_tokens], bins=range(0, 1000, 50));

pYYBAGR9PJGAVpMAAADxspcG71s604.svg

d2l.set_figsize()
d2l.plt.xlabel('# tokens per review')
d2l.plt.ylabel('count')
d2l.plt.hist([len(line) for line in train_tokens], bins=range(0, 1000, 50));

pYYBAGR9PJGAVpMAAADxspcG71s604.svg

正如我們所料,評論的長度各不相同。為了每次處理一小批此類評論,我們將每個評論的長度設置為 500,并進行截斷和填充,這類似于第 10.5 節中機器翻譯數據集的預處理 步驟。

num_steps = 500 # sequence length
train_features = torch.tensor([d2l.truncate_pad(
  vocab[line], num_steps, vocab['']) for line in train_tokens])
print(train_features.shape)

torch.Size([25000, 500])

num_steps = 500 # sequence length
train_features = np.array([d2l.truncate_pad(
  vocab[line], num_steps, vocab['']) for line in train_tokens])
print(train_features.shape)

(25000, 500)

16.1.3。創建數據迭代器

現在我們可以創建數據迭代器。在每次迭代中,返回一小批示例。

train_iter = d2l.load_array((train_features, torch.tensor(train_data[1])), 64)

for X, y in train_iter:
  print('X:', X.shape, ', y:', y.shape)
  break
print('# batches:', len(train_iter))

X: torch.Size([64, 500]) , y: torch.Size([64])
# batches: 391

train_iter = d2l.load_array((train_features, train_data[1]), 64)

for X, y in train_iter:
  print('X:', X.shape, ', y:', y.shape)
  break
print('# batches:', len(train_iter))

X: (64, 500) , y: (64,)
# batches: 391

16.1.4。把它們放在一起

最后,我們將上述步驟包裝到函數中load_data_imdb。它返回訓練和測試數據迭代器以及 IMDb 評論數據集的詞匯表。

#@save
def load_data_imdb(batch_size, num_steps=500):
  """Return data iterators and the vocabulary of the IMDb review dataset."""
  data_dir = d2l.download_extract('aclImdb', 'aclImdb')
  train_data = read_imdb(data_dir, True)
  test_data = read_imdb(data_dir, False)
  train_tokens = d2l.tokenize(train_data[0], token='word')
  test_tokens = d2l.tokenize(test_data[0], token='word')
  vocab = d2l.Vocab(train_tokens, min_freq=5)
  train_features = torch.tensor([d2l.truncate_pad(
    vocab[line], num_steps, vocab['']) for line in train_tokens])
  test_features = torch.tensor([d2l.truncate_pad(
    vocab[line], num_steps, vocab['']) for line in test_tokens])
  train_iter = d2l.load_array((train_features, torch.tensor(train_data[1])),
                batch_size)
  test_iter = d2l.load_array((test_features, torch.tensor(test_data[1])),
                batch_size,
                is_train=False)
  return train_iter, test_iter, vocab

#@save
def load_data_imdb(batch_size, num_steps=500):
  """Return data iterators and the vocabulary of the IMDb review dataset."""
  data_dir = d2l.download_extract('aclImdb', 'aclImdb')
  train_data = read_imdb(data_dir, True)
  test_data = read_imdb(data_dir, False)
  train_tokens = d2l.tokenize(train_data[0], token='word')
  test_tokens = d2l.tokenize(test_data[0], token='word')
  vocab = d2l.Vocab(train_tokens, min_freq=5)
  train_features = np.array([d2l.truncate_pad(
    vocab[line], num_steps, vocab['']) for line in train_tokens])
  test_features = np.array([d2l.truncate_pad(
    vocab[line], num_steps, vocab['']) for line in test_tokens])
  train_iter = d2l.load_array((train_features, train_data[1]), batch_size)
  test_iter = d2l.load_array((test_features, test_data[1]), batch_size,
                is_train=False)
  return train_iter, test_iter, vocab

16.1.5。概括

情感分析研究人們在其生成的文本中的情感,這被認為是將變長文本序列轉換為固定長度文本類別的文本分類問題。

預處理后,我們可以將斯坦福的大型電影評論數據集(IMDb 評論數據集)加載到帶有詞匯表的數據迭代器中。

16.1.6。練習

我們可以修改本節中的哪些超參數來加速訓練情緒分析模型?

你能實現一個函數來將亞馬遜評論的數據集加載到數據迭代器和標簽中以進行情感分析嗎?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據集
    +關注

    關注

    4

    文章

    1222

    瀏覽量

    25247
  • pytorch
    +關注

    關注

    2

    文章

    809

    瀏覽量

    13738
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    高階API構建模型和數據使用

    了TensorFlow2.0Beta版本,同pytorch一樣支持動態執行(TensorFlow2.0默認eager模式,無需啟動會話執行計算圖),同時刪除了雜亂低階API,使用高階API簡單地構建復雜神經網絡模型,本文主要分享用高階API構建模型和數據
    發表于 11-04 07:49

    在機智云上創建項目和數據

    一、基于STM32+ESP8266+機智云的物聯網demo1、在機智云上創建項目和數據2、WIFI模塊燒寫固件3、移植到MCU上①、在STM32上移植②、在IMX6ULL上移植1、在機智云上創建
    發表于 08-03 07:45

    Rough和數據挖掘應用于案件綜合分析

    在檢察機關中,對大量同類案件進行綜合分析并挖掘出有益知識,這對有效預防同類案件的發生具有重要的現實意義。簡要介紹了Rough 理論和數據挖掘的基本概念和相關技術;
    發表于 01-15 14:26 ?8次下載

    基于PLSA模型的群體情緒演進分析

    針對群體情緒演進分析中話題內容挖掘及其對應群體情緒分析兩個層面的難題,提出了一種基于概率潛在語義分析(PLSA)模型的群體
    發表于 12-30 17:16 ?0次下載
    基于PLSA模型的群體<b class='flag-5'>情緒</b>演進<b class='flag-5'>分析</b>

    利用Python和PyTorch處理面向對象的數據

    本篇是利用 Python 和 PyTorch 處理面向對象的數據系列博客的第 2 篇。 如需閱讀第 1 篇:原始數據和數據
    的頭像 發表于 08-25 15:30 ?3156次閱讀

    利用 Python 和 PyTorch 處理面向對象的數據(2)) :創建數據對象

    本篇是利用 Python 和 PyTorch 處理面向對象的數據系列博客的第 2 篇。我們在第 1 部分中已定義 MyDataset 類,現在,讓我們來例化 MyDataset 對象,此可迭代對象是與原始
    的頭像 發表于 08-02 17:35 ?1121次閱讀
    利用 Python 和 <b class='flag-5'>PyTorch</b> 處理面向對象的<b class='flag-5'>數據</b><b class='flag-5'>集</b>(2)) :創建<b class='flag-5'>數據</b><b class='flag-5'>集</b>對象

    PyTorch教程4.2之圖像分類數據

    電子發燒友網站提供《PyTorch教程4.2之圖像分類數據.pdf》資料免費下載
    發表于 06-05 15:41 ?0次下載
    <b class='flag-5'>PyTorch</b>教程4.2之圖像分類<b class='flag-5'>數據</b><b class='flag-5'>集</b>

    PyTorch教程10.5之機器翻譯和數據

    電子發燒友網站提供《PyTorch教程10.5之機器翻譯和數據.pdf》資料免費下載
    發表于 06-05 15:14 ?0次下載
    <b class='flag-5'>PyTorch</b>教程10.5之機器翻譯<b class='flag-5'>和數據</b><b class='flag-5'>集</b>

    PyTorch教程14.6之對象檢測數據

    電子發燒友網站提供《PyTorch教程14.6之對象檢測數據.pdf》資料免費下載
    發表于 06-05 11:23 ?0次下載
    <b class='flag-5'>PyTorch</b>教程14.6之對象檢測<b class='flag-5'>數據</b><b class='flag-5'>集</b>

    PyTorch教程14.9之語義分割和數據

    電子發燒友網站提供《PyTorch教程14.9之語義分割和數據.pdf》資料免費下載
    發表于 06-05 11:10 ?0次下載
    <b class='flag-5'>PyTorch</b>教程14.9之語義分割<b class='flag-5'>和數據</b><b class='flag-5'>集</b>

    PyTorch教程15.9之預訓練BERT的數據

    電子發燒友網站提供《PyTorch教程15.9之預訓練BERT的數據.pdf》資料免費下載
    發表于 06-05 11:06 ?0次下載
    <b class='flag-5'>PyTorch</b>教程15.9之預訓練BERT的<b class='flag-5'>數據</b><b class='flag-5'>集</b>

    PyTorch教程16.1情緒分析和數據

    電子發燒友網站提供《PyTorch教程16.1情緒分析和數據.pdf》資料免費下載
    發表于 06-05 10:54 ?0次下載
    <b class='flag-5'>PyTorch</b>教程<b class='flag-5'>16.1</b>之<b class='flag-5'>情緒</b><b class='flag-5'>分析</b><b class='flag-5'>和數據</b><b class='flag-5'>集</b>

    PyTorch教程16.4之自然語言推理和數據

    電子發燒友網站提供《PyTorch教程16.4之自然語言推理和數據.pdf》資料免費下載
    發表于 06-05 10:57 ?0次下載
    <b class='flag-5'>PyTorch</b>教程16.4之自然語言推理<b class='flag-5'>和數據</b><b class='flag-5'>集</b>

    PyTorch教程-16.4。自然語言推理和數據

    16.4。自然語言推理和數據? Colab [火炬]在 Colab 中打開筆記本 Colab [mxnet] Open the notebook in Colab Colab [jax
    的頭像 發表于 06-05 15:44 ?711次閱讀

    PyTorch如何訓練自己的數據

    PyTorch是一個廣泛使用的深度學習框架,它以其靈活性、易用性和強大的動態圖特性而聞名。在訓練深度學習模型時,數據是不可或缺的組成部分。然而,很多時候,我們可能需要使用自己的數據
    的頭像 發表于 07-02 14:09 ?3225次閱讀
    主站蜘蛛池模板: 欧美性喷潮 | 刺激第一页720lu久久 | 在线观看免费视频国产 | 午夜视频免费在线播放 | 四虎最新永久在线精品免费 | 日本高清免费aaaaa大片视频 | 2019天天操夜夜操 | 国产三级精品三级在线观看 | 国产亚洲精品美女久久久 | 免费国产成人午夜私人影视 | 亚洲伊人久久大香线蕉综合图片 | 色综合狠狠操 | 狠狠躁夜夜躁人人躁婷婷视频 | 国产精品yy9299在线观看 | 欧美另类亚洲一区二区 | 国产伦精一区二区三区 | 日本大片在线看 | 天天操夜夜骑 | 久久99精品久久久久久牛牛影视 | 四虎www成人影院免费观看 | 中文字幕在线观看日剧网 | 国产男人午夜视频在线观看 | 狠狠色噜噜狠狠狠狠2018 | 国产成人啪精品午夜在线播放 | 骚黄视频| 日本亚洲黄色 | 最新午夜宅男 | 亚洲乱码一区二区三区在线观看 | 最近最新视频中文字幕4 | 亚洲成人高清在线 | 国内精品久久久久影院免费 | 免费国产成高清人在线视频 | 高清国产一区二区三区 | 国产成年美女毛片80s | 国产看午夜精品理论片 | 日本永久免费 | 成年人黄色大片大全 | 夜夜做夜夜爽 | 欧美色爱综合 | 国产婷婷| 国产一卡二卡3卡4卡四卡在线视频 |