본문 바로가기

Python/자연어처리

Python(48)- PLM을 이용한 실습 *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*1. NLI(Natural Language Inference) 실습두 개의 문장(전제와 가설) 사이의 논리적 관계를 결정하는 자연어처리 문제!pip install transformers# pipeline: 자연어 처리 작업을 간단한 코드로 여러 작업을 한번에 지원# AutoTokenizer: 자동으로 적절한 토크나이저를 선택하여 모델의 토큰화를 지원from transformers import pipeline, AutoTokenizerclassifier = pipeline( 'text-classification', model = 'Huffon/klue-roberta-base-nli', return_al.. 더보기
Python(47)- 자연어처리를 위한 모델 학습 *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*1. 사전 학습(Pre-training)원하는 자연어처리 작업을 수행하는 데이터셋으로 모델을 학습시키기 이전에 일반적인 데이터에 먼저 학습을 시키는 것사전학습은 대량의 자연어 코퍼스를 미리 학습하여, 자연어 코퍼스 안에 포함된 일반화된 언어 특성들을 모델의 파라미터 안에 함축하는 방법사전학습한 모델의 parameter를 이용해서 모델을 초기화한 뒤 (Pre-training) 사전학습된 모델을 실제 풀려고 하는 문제의 데이터에 fine-tuning하면 임의로 초기화된 parameter를 가진 모델을 처음부터 학습시키는 것보다 더 높은 성능을 가짐예) 컴퓨터 비전에서 엄청난 크기의 이미지 데이터인 ImageNet에 pr.. 더보기
Python(46)- 문장 임베딩 *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*1. 문장 임베딩2017년 이전의 임베딩 기법들은 대부분 단어 수준의 모델단어 수준 임베딩 기법은 자연어의 특성인 모호성, 동음이의어를 구분하기 어렵다는 한계가 있음2017년 이후에는 ELMo(Embeddings from Language Models)와 같은 모델이 발표되고 트랜스포머와 같은 언어 모델에서 문장 수준의 언어 모델링을 고려하면서 한계점들이 해결됨2. seq2seq 배경seq2seq 모델이 등장하기 전에 DNN(Deep Neural Network) 모델은 사물인식, 음성인식 등에서 꾸준히 성과를 내고 있었음(예 : CNN, RNN, LSTM, GRU ...)단점 : 모델 입/출력의 크기가 고정된다는 한계.. 더보기
Python(45)- LSTM과 GRU *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*데이터 전처리import torchimport torch.nn as nnimport torch.optim as optimimport numpy as npfrom sklearn.preprocessing import LabelEncoder # 원핫인코딩 이전 라벨인코딩(문자->숫자) 모듈from sklearn.feature_extraction.text import CountVectorizer # # 텍스트를 벡터화from torch.utils.data import DataLoader, Datasetfrom sklearn.datasets import fetch_20newsgroupsfrom sklearn.model_sel.. 더보기
Python(44)- CNN 분류 *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*데이터 전처리 과정 : 이전 cbow 분류 전처리와 동일더보기import urllib.requestimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport torchimport torch.nn as nnimport torch.optim as optimimport torch.nn.functional as F # 파이토치 functional 추가from copy import deepcopyfrom torch.utils.data import Dataset, DataLoaderfrom tqdm.auto import tqdm# 깃허브에 올라온 파일을.. 더보기
Python(43)- cbow 분류 *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*import urllib.requestimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport torchimport torch.nn as nnimport torch.optim as optimfrom copy import deepcopyfrom torch.utils.data import Dataset, DataLoaderfrom tqdm.auto import tqdm# 깃허브에 올라온 파일을 가져오기 위해선, filename = ''설정해줘야 함.urllib.request.urlretrieve('https://raw.githubusercont.. 더보기
Python(42)- RNN 기초 *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*1. 순환 신경망(Recurrent Neural Network, RNN)시계열 또는 자연어와 같은 Sequence 데이터를 모델링하는데 강력한 신경망, 시계열 데이터나 시퀀스 데이터를 잘 처리예) 주식 가격, 텍스트 데이터, 오디오 데이터Sequence : 단어의 문장, 연결되어 있는 정보예를들어 물건만드는 공장에서 3년동안 특정물건을 만든것에 대해, 1095개중 흐름예측(Regression)이 아닌, 구간을 정해서 패턴예측을 하면 가까운 시일내로 예측할 수 있음. 하나의 블록(구간, Sequence)을 정해서 Sequence간격마다 예측하면 더 세밀하게 예측하지 않을까? -> 나옴1-1. RNN 동작방식은닉층의 노.. 더보기
Python(41)- 워드 임베딩 시각화 *이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*1. 네이버 영화 리뷰 데이터셋총 200,000개의 리뷰로 구성된 데이터로 영화 리뷰를 긍/부정으로 분류하기 위해 만들어진 데이터셋 리뷰가 긍정인 경우 1, 부정인 경우 0으로 표시한 레이블로 구성되어 있음!sudo apt-get install -y fonts-nanum!sudo fc-cache -fv!rm ~/.cache/matplotlib -rfimport urllib.requestimport pandas as pd# 깃허브에 올라온 파일을 가져오기 위해선, filename = ''설정해줘야 함.urllib.request.urlretrieve('https://raw.githubusercontent.com/e9t/.. 더보기