Patrick's 데이터 세상

사내 교육 2주차 - 단어 임베딩 본문

Deep Learning/NLP 강의

사내 교육 2주차 - 단어 임베딩

patrick610 2023. 3. 5. 16:03
반응형
SMALL

 

 

 

 

 

단어 표현 Word Representation

희소 표현 Sparse Representation
분산 표현 Distributed Representation

 

 

 

희소 표현 Sparse Representation

 

one-hot encoding

단어를 0과 1로 단어의 집합만큼 표현하는 방법

 



Code

from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.utils import to_categorical
text = "나랑 점심 먹으러 갈래 점심 메뉴는 햄버거 갈래 갈래 햄버거 최고야"

tokenizer = Tokenizer()
tokenizer.fit_on_texts([text])
print('단어 집합 :',tokenizer.word_index)

sub_text = "점심 먹으러 갈래 메뉴는 햄버거 최고야"
encoded = tokenizer.texts_to_sequences([sub_text])[0]
print(encoded)

one_hot = to_categorical(encoded)
print(one_hot)

 

 

카운트 기반 단어 표현 Count Based Word Representation

정보 검색과 텍스트 마이닝 분야에서 주로 사용되는 표현 방법

BoW(Bag of Words)
문서 단어 행렬(Document-Term Matrix)
TF-IDF(Term Frequency-Inverse Document Frequency)

 

 

Bow(Bag of Words)

단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터 수치 표현 방법.

직역하면 단어들을 모두 가방에 넣고 흔들어 섞고 나서 빈도수로 인코딩입니다.

 

"정부가 발표하는 물가상승률과 소비자가 느끼는 물가상승률은 다르다."

vocabulary : {'정부': 0, '가': 1, '발표': 2, '하는': 3, '물가상승률': 4, '과': 5, '소비자': 6, '느끼는': 7, '은': 8, '다르다': 9}

bag of words vector : [1, 2, 1, 1, 2, 1, 1, 1, 1, 1]

 

 

문서 단어 행렬(Document-Term Matrix)

다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현.

각 문서에 대한 Bow를 하나의 행렬로 만든 것.

 

단점

∙ 원-핫 벡터, DTM은 많은 양이 저장 공간으로 인한 공간적 낭비, 높은 계산 복잡도로 계산 리소스 증가를 가져옴

단순 빈도 수 기반이기 때문에 불용어 같은 불필요한 단어들까지 포함됩니다. 

 

 

TF-IDF(Term Frequency-Inverse Document Frequency)

단어의 빈도와 문서 빈도에 특정 식을 취한 역 문서 빈도를 사용하여 각 단어의 중요한 정도를 가중치로 주는 방법.

주로 문서 간의 유사도, 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내에서 특정 단어의 중요도를 구하는 작업 등에 쓰일 수 있습니다.

 

tf(d, t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수

df(t) : 특정 단어 t가 등장한 문서의 수

idf(d, t) : df(t)에 반비례하는 수

 

 

 

 

분산 표현 Dense representation

 

단어 임베딩 Word Embedding

 

 

Word2Vec

단어의 효율적인 의미 추정 기법.

단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화하는 기법입니다.

 

 

한국어 word2vec

 

Korean Word2Vec

ABOUT 이곳은 단어의 효율적인 의미 추정 기법(Word2Vec 알고리즘)을 우리말에 적용해 본 실험 공간입니다. Word2Vec 알고리즘은 인공 신경망을 생성해 각각의 한국어 형태소를 1,000차원의 벡터 스페이

word2vec.kr

 

Word2Vec 학습 방식

CBOW(Continuous Bag of Words)
Skip-gram

 

 

CBOW(Continuous Bag of Words)

주변 단어를 통해 중심 단어를 예측

 

 

"The fat cat sat on the mat"

 

 

Skip-gram

중심 단어를 통해 주변 단어를 예측

 

"The fat cat sat on the mat"

 

 

 

 


참고

 

딥러닝을 이용한 자연어 처리 입문

 

딥 러닝을 이용한 자연어 처리 입문

많은 분들의 피드백으로 수년간 보완된 입문자를 위한 딥 러닝 자연어 처리 교재 E-book입니다. 오프라인 출판물 기준으로 코드 포함 **약 1,000 페이지 이상의 분량*…

wikidocs.net

 

 

BERT와 GPT로 배우는 자연어 처리 - 이기창

 

 

Do it! BERT와 GPT로 배우는 자연어 처리 | 이기창 - 교보문고

Do it! BERT와 GPT로 배우는 자연어 처리 | ‘사람 말을 알아듣는 AI’를 만들어 보자! 트랜스포머 핵심 원리부터 문서 분류, 기계 독해, 문장 생성 실습까지!사람 말을 알아듣고 처리하는 인공지능은

product.kyobobook.co.kr

 

반응형
LIST
Comments