본문 바로가기

pyTorch6

yelp 리뷰 감성 분석 (3) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 훈련 반복 첫번째 for문 : epoch 수 만큼 반복 (전체 데이터셋) 두번째 for문 : batch 수 만큼 반복 train 데이터에 대해 param 학습 후 val 데이터로 검증 accuracy, loss 정보 저장 epoch_bar = tqdm.notebook.tqdm(desc='training routine', total=args.num_epochs, position=0) dataset.set_split('train') train_bar = tqdm.notebook.tqdm(desc='split=train', total=dataset.get_num_batches(args.batch_siz.. 2023. 3. 30.
yelp 리뷰 감성 분류 (2) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 퍼셉트론 분류기 완전연결(FC1) 계층 하나를 가진 퍼셉트론 분류기 손실 계산에서 BCEWithLogitsLoss()를 사용하도록 sigmoid를 거치지 않은 채 출력 class ReviewClassifier(nn.Module): """ 간단한 퍼셉트론 기반 분류기 """ def __init__(self, num_features): """ 매개변수: num_features (int): 입력 특성 벡터의 크기 """ super(ReviewClassifier, self).__init__() self.fc1 = nn.Linear(in_features=num_features, out_features=1).. 2023. 3. 30.
yelp 리뷰 감성 분류 (1) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. yelp 레스토랑 리뷰 데이터셋 리뷰 텍스트(review)와 그에 맞는 평가 레이블(rating)를 준비하고, train, valid, test (0.7, 0.15, 0.15)로 분류 from argparse import Namespace from collections import Counter import json import os import re import string import numpy as np import pandas as pd import torch import torch.nn as nn import torch.nn.functional as F import torch.optim .. 2023. 3. 30.
파이토치 신경망 구성하기 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 1. 퍼셉트론 구현 y = f(wx + b) x : 입력 w : 가중치 b : 편향, 절편 y : 출력 f(): 활성화 함수 선형 함수 표현인 wx + b 는 아핀 변환(affine transform)이라고 불린다. class Perceptron(nn.Module): """ 퍼셉트론은 하나의 선형 층입니다 """ def __init__(self, input_dim): """ 매개변수: input_dim (int): 입력 특성의 크기 """ super(Perceptron, self).__init__() self.fc1 = nn.Linear(input_dim, 1) def forward(self, x.. 2023. 3. 24.
자연어처리(NLP) 기본 용어 정리 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 1. 말뭉치(corpus) : 텍스트 데이터와 그와 연관된 메타데이터를 원소로 하는 집합 2. 메타데이터: 식별자, 레이블, 타임스탬프 등 텍스트와 관련된 부가정보 3. 샘플, 데이터 포인트: 메타데이터가 붙은 텍스트 4. 샘플의 모음: 말뭉치, 데이터셋 5. 토큰화: 텍스트를 토큰으로 나누는 과정. 의미있는 단위로 토큰을 설정하고 토큰을 기준으로 corpus를 나눈다. ex) Tweet 텍스트 토큰화 하기 from nltk.tokenize import TweetTokenizer tweet = u"Snow White and the Seven Degrees #MakeMovieCold@midnight.. 2023. 3. 21.
파이토치(Pytorch) 기본 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 샘플(텍스트)의 인코딩one-hot vector 만들기from sklearn.feature_extraction.text import CountVectorizercorpus = ['Time flies like an arrow.', 'Fruit flies like a banana.']one_hot_vectorizer = CountVectorizer(binary=True)one_hot = one_hot_vectorizer.fit_transform(corpus).toarray() TF-IDFTF (Term Frequency) : 특정 단어가 특정 문서에서 등장한 횟수'Time flies like an .. 2023. 3. 19.