전체 글 11

[Naver Sentiment Movie Corpus] 영화 리뷰 학습을 통한 감정 예측 구현

0. 사용할 말뭉치(Corpus) 이번 구현에 사용할 말뭉치는 Naver Sentiment Movie Corpus v1.0(이하 NSMC)이다. 네이버 영화 리뷰에서 스크랩한 데이터이며, 모두 140자 미만의 길이고, 0(Negative)과 1(Positive)로 라벨링 되어있다. 자세한 정보는 아래 링크를 통해 확인할 수 있다. # Naver sentiment movie corpus v1.0 1. 데이터 전처리 데이터를 학습시키기 이전에 데이터 전처리를 할 것이다. 우선 NSMC 데이터를 불러온다. def load_data(filename): with open(filename, 'r', encoding='UTF8') as f: id, document, label = [list() for _ in ran..

NLP/구현 2021.01.03

[Pytorch] 모델 저장 방법, 그리고 전체 저장과 state_dict 저장의 차이

모델 저장의 방법 Pytorch에서는 학습된 모델을 저장할 때 torch.save(object, file) 함수를 사용하게 된다. # object : 저장할 모델 객체, file : 저장할 위치 및 파일 이름 # Case 1 torch.save(model, 'model.pt') # Case 2 torch.save(model.state_dict(), 'model.pt') Pytorch 모델 파일은 확장자가 pt이다. 모델을 저장할 때는 두 가지 방법 중 한 방법을 선택할 수 있는데, 모델 전체를 저장하는 방법과 모델의 state_dict만 저장하는 것이다. 모델 전체 저장 모델 전체를 저장한다는 것의 의미는 모델 파라미터 뿐만 아니라, 옵티마이저(Optimizer), 에포크, 스코어 등 모든 상태를 저장한..

프로그래밍 2021.01.03

[기초정리] 3. 자연어 처리 파이프라인 - 품사 태깅 ~ 불용어 제거 (NLTK Part-of-speech tag list 포함)

1. 품사 태깅 (Part-of-Speech Tagging) 품사 태깅(Part-of-Speech Tagging, POS Tagging)이란 단어 토큰화(Word Tokenization)를 거친 토큰(Token)들에게 품사를 붙여주는 작업을 뜻한다. 구현 코드 import nltk test_text = ['All', 'rights', 'reserved', '.'] def POS_tagging(token_list): POS_list = list() for sentence in token_list: POS_list.append(nltk.pos_tag(sentence)) return POS_list print(POS_tagging(test_text)) 결과 [[('All', 'DT'), ('rights', '..

[기초정리] 2. 자연어 처리 파이프라인 - 문장 분할(Sentence Segmentation), 단어 토큰화(Word Tokenization)

1.문장 분할(Sentence Segmentation) 기계가 이해할 수 있도록 학습시킬 때에는 당연히 글 전체보다 분리된 한 문장, 한 문장을 이해하는 것이 더 수월하다. 문장은 각각 독립적인 의견을 가지고 있기 때문이다. 문장 분할을 가장 쉽게 구현할 수 있는 방법은 구두점(Punctuation Mark)을 활용하는 것이다. 구두점이란 쉼표(,), 마침표(.), 세미콜론(;), 콜론(:) 4가지의 문장 부호를 의미한다. 쉼표(Comma), 마침표(Period), 세미콜론(Semi-colon), 콜론(Colon) 그러나 항상 구두점을 기준으로 나눌 수 있는 상황만 존재하는 것은 아니다. 구현 코드 import nltk test_text = "All rights reserved. No part of th..

[기초정리] 1. 자연어 처리란 무엇인가?

1. 자연어 처리란 자연어 처리(NLP, Natural Language Processing)란 인간의 언어, 즉 자연어를 사용하여 기계와 상호작용할 수 있도록 하는 기술이다. 자연어는 크게 자연어 이해(NLU, -Understanding)와 자연어 생성(NLG, -Generating)으로 나눌 수 있다. NLP를 사용한 예시로는 기초적인 이메일 필터, 사용자 의도 기반의 검색, 텍스트 자동 완성부터 시리, 빅스비같은 AI 비서까지 다양하다. 2. 자연어 처리 분석 과정 NLP에서의 분석은 크게 네 가지가 있다. 거치는 순서대로 형태소 분석(Morphological Analysis), 구문 분석(Syntactic Analysis), 의미 분석(Semantic Analysis), 화용 분석(Pragmatic..

Lecture 3. (행렬) 곱셈과 역행렬 (Multiplication and inverse matrices)

다음은 Gilbert Strang의 선형대수학 MIT 강의를 듣고 정리한 글이다. 강의 링크 행렬 곱셈 (Matrix Multiplication) 이번 과정에서는 행렬을 곱셈하는 방법 5가지를 배워볼 것이다. 아래의 모든 예시는 다음 행렬 곱셈을 기반으로 설명된다. $$ AB = C\rightarrow \begin{bmatrix} a_{00} & \cdots & a_{0n} \\ \vdots & \ddots & \vdots \\ a_{m0} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} b_{00} & \cdots & b_{0p} \\ \vdots & \ddots & \vdots \\ b_{n0} & \cdots & b_{np} \end{bmatrix} = \beg..

Lecture 2. 행렬의 소거법 (Elimination with matrices)

다음은 Gilbert Strang의 선형대수학 MIT 강의를 듣고 정리한 글이다. 강의 링크 소거법 (Elimination) 소거법이란 연립 방정식을 풀 때, 행렬을 이용한 풀이 방법이다. 소거법의 단계는 다음과 같다. $$ \begin{cases} x + 2y + z = 2 \\ 3x + 8y + z = 12 \\ 4y +z = 2 \end{cases} \Leftrightarrow \begin{bmatrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \end{bmatrix} = \begin{bmatrix} 2 \\ 12 \\ 2 \end{bmatrix} \\ $$ 이 때, 첫 행의 첫 값을 사용하여 다른 ..

Lecture 1. 선형 방정식의 기하학 (The geometry of linear equations)

다음은 Gilbert Strang의 선형대수학 MIT 강의를 듣고 정리한 글이다. 강의 링크 선형대수학의 기본문제 (Fundamental Problem) 연립 선형방정식 (System of Linear Equations)을 푸는 것이다. 연립 선형방정식의 풀이 풀이에 앞서, 미리 알아야 하는 개념들이 있다. 연립 선형방정식은 두 가지 방법으로 표현될 수 있는데, Row Picture와 Column Picture (중요!) 가 그것이다. 아래의 예시를 통해 비교해 보겠다. $$ 2x -y = 0 \\ -x + 2y = 3 $$ 다음을 Row Picture 방식으로 표현해 본다면 $$ \begin{bmatrix} 2 & -1 \\ -1 & 2 \end{bmatrix} \begin{bmatrix} x \\ y..

Lecture 2. 마르코프 결정 과정 (Markov Decision Process)

마르코프 성질 (Markov Property) 과거와 현재 상태가 주어졌을 때, 미래 상태의 조건부 확률분포가 과거 상태에 영향을 받지 않고 독립적으로 현재 상태로만 결정되는 것을 의미한다. $$\text{ A state }S_t \text{ is Markov}\text{ if and only if } P[S_{t+1} \mid S_{t} ] = P[S_{t+1} \mid S_{1}, S_{2}, ..., S_{t}] $$ 마르코프 과정 (Markov Process, Markov Chain) 마르코프 과정은 Memoryless한 특징을 가지는 Random Process이다. 즉, 마르코프 성질을 띄며 상태가 무작위적으로 변하는 과정을 가진다는 의미이다. $$\text{ A Markov Process (o..

Lecture 1. 강화학습 개요 (Introduction to Reinforcement Learning)

머신러닝(Machine Learning)의 종류 지도학습 (Supervised Learning) 비지도학습 (Unsupervised Learning) 강화학습 (Reinforcement Learning) 강화학습(Reinforcement Learning)만의 특이점 지도자(Superviser)가 존재하지 않고, 단지 보상(Reward)만 존재한다. 행동에 대한 피드백이 즉각적이지 않고, 지연될 수 있다. 시간(또는 스텝)이 매우 중요한 역할을 한다. (Sequential, i.i.d Data) i.i.d (independent identically distributed) 란 각각의 Random Variable들이 독립적이며 동일한 확률 분포를 가지는 것을 뜻한다. 에이전트의 행동이 이후에 받을 데이터에 ..