Patrick's 데이터 세상
사내 교육 2주차 - 단어 임베딩 본문
단어 표현 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 학습 방식
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"
참고
'Deep Learning > NLP 강의' 카테고리의 다른 글
사내 교육 5주차 - 모델 변천사 (0) | 2023.03.27 |
---|---|
사내 교육 4주차 - 딥 러닝 개요 (0) | 2023.03.15 |
사내 교육 3주차 - 머신러닝 (0) | 2023.03.10 |
사내 교육 1주차 - 자연어 처리 입문 (0) | 2023.02.18 |