Replicated

자연어 처리 : Word representation 본문

학부/딥러닝

자연어 처리 : Word representation

라구넹 2025. 12. 7. 16:31

자연어 : 우리가 일상 생활에서 사용하는 언어

자연어 처리 : 이러한 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 작업

 

자연어 처리의 어려움

- Ambigurity (교착어) : 형태소, 구문, 의미론적 모호성

- Variation (다양성) : 시대에 따라 계속 변화하여 확장성, 다양성, 유연성이 필요

- Sparsity  (언어 모델) : 단어의 의미적인 내용을 컴퓨터가 이해하는 수치화된 의미 벡터로 표현하기 어려움

 

1950년대 규칙 기반

1990년대 통계 시반

2013~ 신경망 기반

 

 

Corpus (코퍼스, 말뭉치)

- 체계적으로 수집되고 구성된 텍스트 모음

- NLP 연구를 위해 특정 목적으로 정제한 많은 수의 문장의 집합

- 특정 언어, 방언, 주제, 스타일 또는 시대를 대표하는 텍스트들을 포함할 수 있음

- 목적에 따라 문장의 성분 품사를 기입하거나 대응되는 번역문을 쌍(multi lingual corpus)으로 기입하기도 함

- 자연어 처리 분야에서 말뭉치는 언어 모델을 훈련하고 언어의 통계적 패턴을 분석하며 다양한 컴퓨터 기반 언어 연구에 사용

 

Tokenization (토큰화)

- 주어진 코퍼스에서 토큰이라 불리는 단위로 나누는 작업

- Hello World -> "Hello", "World"

- 한글의 경우 토큰 분리 기준이 쉽지 않음

 

Word representation

- 자연어를 컴퓨터로 처리하기 위해서는 텍스트를 수치 형태로 표현할 수 있어야 함

- 텍스트를 수치로 변환하는 과정이 word representation (word embedding도 같은 의미)

- 단어를 벡터로 표현하는 방법

 

One hot vector

- 각 문장에서 나타나는 단어들을 모아 binary vector로 표현

- N개의 단어는 N차원 벡터 생성 (sparse representation)

- 모든 단어의 유사도(cosine similarity)가 동일해지는 단점이 있음

- 단어 수가 많아질 수록 벡터의 차원 증가

- 단어를 벡터로 표현할 때 실수를 사용하는 방법도 있음

 

Sparse representation

- 강아지 = [0 0 0 0 1 0 0 0... 0]

Dense representation

- 강아지 = [0.2 1.8 1.1 ......]

Dense 표현이 더 차원이 적음

 

Padding

- 자연어 처리를 하다 보면 각 문장은 서로 길이가 다를 수 있음

- 여러 문장의 길이를 임의로 동일하게 맞춰주는 작업

 

Word2vec

- 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화할 수 있는 방법이 필요

- 중요한 정보만 남기고 적은 차원에서 단어를 표현

- 대량의 코퍼스를 비지도 학습 방법으로 프리 트레이닝한 모델 (Word2vec, ELMo, BERT, ALBERT 등의 공통점)

- 비슷한 문맥에 등장하는 단어는 비슷한 의미를 지닌다

- 학습된 단어 벡터에서 단어의 의미가 벡터 공간 상의 거리, 길이, 각도 등으로 표현됨 (문법, 의존 관계 등)

 

분산 표현(distributed representation) 방법 적용

- 분포 가설(distributional hypothesis)라는 가정 하에 만들어진 표현 방법

- 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다는 가정

- 분산 표현은 분포 가설을 이용해서 텍스트를 학습하고 단어의 의미를 벡터의 여러 차원에 분산하여 표현

 

이 방법에서 각 단어에 대응하는 벡터 값은 훈련 데이터(코퍼스)를 학습한 결과로 만들어짐

훈련 방법

- CBOW(Continuous Bag og Words) : 주변에 있는 단어들을 입력으로 중간에 있는 단어들을 예측

- Skip-Gram : 중간에 있는 단어들을 입력으로 주변 단어들을 예측

 

 

CBOW

- Window size 만큼의 주변 단어로 중심 단어를 예측함

- 입력, 출력 모두 원 핫 벡터

- 히든 레이어의 수 1개, 활성함수 없음

- 학습이 완료되면 특정 단어에 대한 가중합이 그 단어에 대한 임베딩 벡터가 됨 (임베딩 벡터의 길이 M == 은닉층의 길이)

 

 

특정 분야를 위한 word2vec 모델을 만들 수도 있고

사전에 훈련된 모델을 사용하는 것도 가능

'학부 > 딥러닝' 카테고리의 다른 글

자연어 처리 : Seq2Seq, Attention, Transformer  (0) 2025.12.07
자연어 처리 : RNN, LSTM  (0) 2025.12.07
전이 학습 (Transfer Learning)  (0) 2025.12.07
Keras CNN - Argumentation  (0) 2025.10.25
Keras CNN - MNIST  (0) 2025.10.25