텍스트벡터화
텍스트 임베딩, 텍스트 벡터화 중심의 LLM 실험에서 직접 따라간 구현 흐름과 코드 증거를 다시 볼 수 있게 정리한 LLM 학습 기록입니다. 본문은 텍스트 임베딩, 텍스트 벡터화 순서로 핵심 장면을 먼저 훑고, Bag-of-Word(BoW) 빈도 벡터화, TD-IDF 벡터화, Word2Vec 학습하기 같은 코드로 실제 구현을 이어서 확인할 수 있습니다. md 원본과 25개 코드 블록, 25개 실행 셀을 함께 남겨 구현 흐름을 다시 따라갈 수 있게 정리했습니다. 주요 스택은 google, pandas, sklearn, numpy입니다.
빠르게 볼 수 있는 포인트: 텍스트 임베딩, 텍스트 벡터화.
남겨둔 자료: md 원본과 25개 코드 블록, 25개 실행 셀을 함께 남겨 구현 흐름을 다시 따라갈 수 있게 정리했습니다. 주요 스택은 google, pandas, sklearn, numpy입니다.
주요 스택: google, pandas, sklearn, numpy, matplotlib
Snapshot
| Item | Value |
|---|---|
| Track | LLM |
| Type | Archive Note |
| Source Files | md |
| Code Blocks | 25 |
| Execution Cells | 25 |
| Libraries | google, pandas, sklearn, numpy, matplotlib, shutil, gensim |
| Source Note | 3-1(실습)텍스트벡터화 |
What This Note Covers
텍스트 임베딩
BoW, TF-IDF에서는 단어의 순서, 주변단어 등 문맥에 대한 정보가 제대로 반영되지 않습니다. 즉 단어의 문백적인 의미를 파악할 수 없다는 문제가 존재합니다. 임베딩 기법은 단어를 저차원 벡터 공간에 매핑하여 단어간 의미적 유사도를 학습하여 벡터의 값을 설정합니다. - 단어 간의 의미 관계 학습: 의미가 유사하거나 관련이 있는…
- 읽을 포인트: 세부 흐름: Word2Vec 단어 임베딩, Word2Vec 단어 임베딩 > Word2Vec 학습하기, FaxtText, Glove 단어 임베딩 > FastText 학습하기
Word2Vec 단어 임베딩
Word2Vec모델은 키워드 간의 유사도를 학습하여 단어 임베딩을 만드는 대표적인 모델입니다. gensim라이브러리를 활용하여 Word2Vec모델을 구성하고 학습합니다
Word2Vec 단어 임베딩 > Word2Vec 학습하기
Word2Vec는 같이 자주 등장하는 단어들을 학습하기 위해 중심단어에서 설정한 윈도우 크기안에 들어오는 단어를 주변단어로 설정하여 학습합니다. 윈도우 예시
FaxtText, Glove 단어 임베딩 > FastText 학습하기
FastText는 단어를 n그램의 서브워드로 쪼개므로 최소 n과 최대 n을 설정해야 합니다. 최소n: 3 최대n: 5
텍스트 벡터화
백터화는 기본적으로 토큰화와 인코딩 이후 진행됩니다.
- 읽을 포인트: 세부 흐름: Bag-of-Word(BoW), Word Embedding, Bag-of-Word(BoW) 빈도 벡터화
Bag-of-Word(BoW)
단어의 출현 여부나 횟수만을 기준으로 텍스트를 벡터화함 - 문맥 정보를 반영하기 어려움
Word Embedding
Word2Vec, Glove등 각 단어를 저차원 벡터로 표현 - 단어간의 의미적 유사성을 벡터 공간에서 반영
Bag-of-Word(BoW) 빈도 벡터화
빈도벡터화는 텍스트에서 출현한 토큰의 빈도로 벡터를 표현하는 간단한 벡터화 방식입니다 빈도 벡터화는 sklearn의 CountVectorizer를 이용하여 구현합니다 - max_df: 해당 확률 이상으로 빈도가 많은 토큰을 제외 - min_df: 해당 확률 이하로 빈도가 적은 토큰…
Why This Matters
임베딩과 표현 학습
- 왜 필요한가: 텍스트나 토큰을 그대로는 모델이 다룰 수 없기 때문에, 의미를 담은 수치 벡터 표현으로 바꾸는 단계가 필요합니다.
- 왜 이 방식을 쓰는가: Word2Vec, FastText, GloVe 같은 방식은 같은 단어라도 주변 문맥이나 서브워드 정보를 반영해 비교 가능한 표현 공간을 만듭니다.
- 원리: 자주 함께 등장하는 단어는 가까운 벡터가 되도록 학습해, 의미적으로 비슷한 표현이 공간에서도 가까워지게 합니다.
Implementation Flow
- 텍스트 임베딩: Word2Vec 단어 임베딩, Word2Vec 단어 임베딩 > Word2Vec 학습하기
- 텍스트 벡터화: Bag-of-Word(BoW), Word Embedding
Code Highlights
Bag-of-Word(BoW) 빈도 벡터화
Bag-of-Word(BoW) 빈도 벡터화는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. 코드 안에서는 90% 이상으로 빈도가 많은 토큰을 제외, 10개 이하로 빈도가 적은 토큰을 제외 흐름이 주석과 함께 드러납니다.
from sklearn.feature_extraction.text import CountVectorizer
import pandas as pd
# 90% 이상으로 빈도가 많은 토큰을 제외
# 10개 이하로 빈도가 적은 토큰을 제외
cvec = CountVectorizer(max_df=0.9, min_df=10)
cvec.fit(df['text_tag']) # 토큰생성(띄어쓰기 기반)
tokens = cvec.get_feature_names_out() # 토큰 목록 확인
names = cvec.vocabulary_ # 토큰 사전 확인
print(len(tokens))
print(names)
TD-IDF 벡터화
TD-IDF 벡터화는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. TD-IDF 벡터는 sklearn모듈의 TfidVectorizer를 이용하여 간단하게 구현할 수 있습니다. 활용방법은 CountVectorizer와 동일합니다. sklearn.
from sklearn.feature_extraction.text import TfidfVectorizer
tfvec = TfidfVectorizer(max_df=0.9, min_df=10)
tfvec.fit(df['text_tag']) # 토큰 생성(띄어쓰기 기반)
tokens = tfvec.get_feature_names_out() # 토큰 목록 확인
names = tfvec.vocabulary_ # 토큰 사전 확인
print(tokens)
print(names)
Word2Vec 학습하기
Word2Vec 학습하기는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. 코드 안에서는 상위 10개의 키워드 보기 흐름이 주석과 함께 드러납니다.
# 상위 10개의 키워드 보기
keywords = model.wv.index_to_key
keywords[:10]
FastText 학습하기
FastText 학습하기는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. 코드 안에서는 FastText 학습 흐름이 주석과 함께 드러납니다.
from gensim.models import FastText
# FastText 학습
fasttext_model = FastText(
sentences, # 학습 문장 세트
vector_size=100, # 임베딩 벡터 사이즈
window=5, # 윈도우 크기
min_count=2, # 최소 빈도
min_n=2, # n-gram 으로 쪼개질때 최소 글자(최소n)
max_n=6, # n-gram 으로 쪼개질때 최대 글자(최대n)
workers=4, # 사용 코어 개수
sg=1, # 1: Skip-gram, 0: CBOW
epochs=50 # 전체 학습 반복 횟수
)
Source Bundle
- Source path:
13_LLM_GenAI/Code_Snippets/3-1(실습)텍스트벡터화.md - Source formats:
md - Companion files:
3-1(실습)텍스트벡터화.md - Note type:
code-note - Last updated in the source vault:
2026-03-08T03:33:14 - Related notes:
13_LLM_code_Roadmap.md,13_LLM_GenAI_Code_Summary.md - External references:
scikit-learn.org,drive.google.com,localhost
Note Preview
백터화는 기본적으로 토큰화와 인코딩 이후 진행됩니다.
- 단어의 출현 여부나 횟수만을 기준으로 텍스트를 벡터화함 - 문맥 정보를 반영하기 어려움