| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 데이터분석
- 데이터사이언티스트 #데이터 #모두의연구소 #데이터분석부트캠프
- jupyter
- 아나콘다설치
- 데이터사이언티스트
- python
- 데이터분석부트캠프
- 가상환경설정
- 가상환경만들기
- 커널
- 데이터전처리
- 아이펠톤
- anaconda3
- 데이터
- GCP
- MongoDB
- nosql
- 데이터분석환경
- 아나콘다3
- 데이터싸이언티스트
- 데이터사시언티스트 #데이터 #모두의연구소
- 모두의연구소
- Today
- Total
EH_dream
딥러닝학습 : 단어빈도와 벡터화 25.06.16 본문
단어빈도를 이용한 벡터화 – 자연어 처리의 기본기 다지기
이번 학습에서는 자연어 처리에서 가장 기본적이면서도 중요한 개념인 단어 빈도를 기반으로 한 텍스트 벡터화 방식들을 정리해보았다. 처음에는 문서 내 단어들이 몇 번 등장했는지를 세는 간단한 아이디어인 Bag of Words부터 시작했다. 단어의 순서나 맥락은 고려하지 않지만, 문서 간 유사도를 수치화할 수 있다는 점에서 유용하다. DTM(Document-Term Matrix)은 이를 행렬로 표현한 것이며, 실제로 sklearn의 CountVectorizer를 활용해 손쉽게 구현할 수 있었다.
하지만 곧 한계를 마주쳤다. 자주 등장하지만 정보성이 낮은 단어들(예: "the", "is")이 문서 간 유사도를 흐리게 만든다는 점이다. 그래서 등장한 것이 TF-IDF였다. TF-IDF는 특정 문서에만 자주 등장하는 단어에 더 큰 가중치를 부여해, 단어의 '중요도'를 반영하는 방식이다. 직접 수식을 구현해보면서 TF, IDF, TF-IDF를 모두 수치로 확인했고, sklearn의 TfidfVectorizer를 통해 간편하게 실제 데이터에 적용해볼 수 있었다.
# 사이킷런의 TfidfVectorizer를 통해 TF-IDF 행렬을 출력
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
'John likes to watch movies and Mary likes movies too',
'James likes to watch TV',
'Mary also likes to watch football games',
]
tfidfv = TfidfVectorizer().fit(corpus)
vocab = list(tfidfv.vocabulary_.keys()) # 단어장을 리스트로 저장
vocab.sort() # 단어장을 알파벳 순으로 정렬
# TF-IDF 행렬에 단어장을 데이터프레임의 열로 지정하여 데이터프레임 생성
tfidf_ = pd.DataFrame(tfidfv.transform(corpus).toarray(), columns = vocab)
tfidf_
결과

또한 코사인 유사도라는 개념도 함께 학습했다. 두 문서 벡터의 방향성을 비교해 얼마나 유사한지를 판단하는 방식인데, 벡터의 내적과 크기를 통해 계산하며, 값이 1에 가까울수록 유사도가 높은 것이다. 특히 문서의 길이가 다르더라도 내용상의 유사성을 비교할 수 있다는 점에서 TF-IDF와 궁합이 좋다.
마지막으로 BoW, DTM, TF-IDF 각각의 개념 차이와 실제 사용 시 고려해야 할 점들을 정리해보았다. 단순한 빈도 기반 접근에서부터, 정보성 높은 단어를 추출하는 TF-IDF까지, 텍스트 데이터를 수치화해 모델에 적용할 수 있는 기반을 다지는 매우 유익한 시간이었다.
'딥러닝' 카테고리의 다른 글
| 딥러닝 : LSA와 LDA (0) | 2025.06.18 |
|---|---|
| 딥러닝 : 비지도학습 토크나이저 _ 25.06.16 (1) | 2025.06.18 |
| 딥러닝실습정리: Boston, Reuters, CIFAR_25.06.11 (1) | 2025.06.11 |
| 딥러닝 모델 성능 향상을 위한 실전 기법 정리_25.06.10 (0) | 2025.06.10 |
| 딥러닝_텐서 , 모델, 학습 흐름 정리_25.06.09 (0) | 2025.06.09 |