여러 문서에 등장하는 단어들의 빈도를 한 번에 깔끔하게 정리하고 비교할 수 있는 DTM(Document-Term Matrix, 문서-단어 행렬) 에 대해 알아보겠다.
1. DTM(Document-Term Matrix, 문서-단어 행렬) 이란 무엇인가요 ?
DTM(Document-Term Matrix, 문서-단어 행렬)은 이름 그대로 문서(Document) 를 가로줄(행)로, 단어(Term)를 세로줄(열)로 삼아서 , 각 문서에 특정 단어가 몇 번 등장했는지 숫자로 기록한 거대한 표(행렬)이다.
쉽게 말해, 여러 개의 문서 각각에 대해 BoW(Bag of Words) 를 구한 뒤, 이것들을 하나로 합쳐서 커다란 엑셀 표처럼 만든 것이라고 생각하면 된다.
쉬운 비유로 이해하기 : 식당의 '테이블별 주문 내역서'
DTM은 식당 사장님이 보는 "테이블별 주문 내역서"와 완벽하게 똑같다.
- 가로줄(행, Document) : 1번 테이블, 3번 테이블, 3번 테이블(각각의 문서)
- 세로줄(열, Term) : 짜장면, 짬뽕, 탕수육, 볶음밥 ...(사전에 등록된 모든 단어)
- 표 안의 숫자 : 1번 테이블이 짜장면 2개, 짬뽕 1개를 시켰다면 해당 칸에 '2'와 '1'을 적는다. 시키지 않은 메뉴칸은 모두 '0'이 된다.
이렇게 표를 만들어두면 "1번 테이블과 3번 테이블은 주문한 메뉴가 비슷하네!(문서 유사도)" 또는 "우리 식당은 "짜장면이 제일 많이 팔리네 !(단어 빈도)"를 한눈에 파악할 수 있다.
2. DTM의 장점 : 문서 간 비교가 가능해진다!
DTM을 만들면 컴퓨터는 드디어 "문서와 문서가 얼마나 비슷한지(문서 유사도)** 를 수학적으로 계산할 수 있게 된다.
예를 들어, A문서와 B문서의 가로줄 숫자들이 비슷한 패턴을 보인다면, 두 문서는 같은 주제를 다루고 있을 확률이 높다. 이를 활용해 스팸 메일을 걸러내거나, 비슷한 뉴스 기사들을 자동으로 묶어주는(클러서팅) 작업이 가능해진다.
3. DTM의 치명적인 한계점 2가지
하지만 DTM은 아주 기초적인 모델이기 때문에 명확한 단점도 존재한다.
① 희소 행렬( Sparse Matrix) 문제와 메모리 낭비
사전에 등록된 단어가 10만 개라면, 세로줄(열)이 10만개가 된다. 하지만 짧은 뉴스 기사 하나에 쓰이는 단어는 기껏해야 수백 개에 불과하죠. 결국 표의 대부분(99%이상)은 '0'으로 텅텅 비게 된다. 이렇게 0이 대부분인 행렬을 희소 행렬이라고 부르며, 이는 컴퓨터의 메모리와 계산 시간을 엄청나게 낭비하게 된다.
② 단순 빈도수의 함정 (흔한 단어 문제)
DTM은 단순히 단어가 '몇 번' 나왔지만 세다. 그러다 보니 모든 문서에 자주 등장하는 '나는', '이것은', '그리고' 같은 흔한 단어들이 가장 중요한 단어처럼 높은 숫자를 차지하게 된다. 진짜 핵심 키워드를 가려내지 못하는 것이죠.
4. 한눈에 보는 비교 : DTM vs TF-IDF
DTM의 '단순 빈도수 함정'을 해결하기 위해 등장한 것이 바로 TF-IDF이다.
| 비교항목 | DTM(문서-단어 행렬) | TF-IDF |
| 평가 기준 | 단순히 단어가 등장한 횟수(빈도)만 기록 | 단어의 빈도 + 단어의 희귀성을 함께 고려 |
| 흔한 단어 처리 | '그리고', '나는' 등 흔한 단어의 숫자가 높게 나옴 | 흔한 단어는 페널티를 받아 숫자가 낮아짐 |
| 핵심어 파악 | 문서의 진짜 핵심 키워드를 찾기 어려움 | 문서 고유의 핵심 키워드를 아자 잘 찾아냄 |
| 주요 용도 | 텍스트 데이터의 가장 기본적인 수치화 | 검색 엔진, 핵심 키워드 추출, 정말한 문서 비교 |
마무리
DTM(문서-단어 행렬)은 수많은 텍스트 문서를 컴퓨터가 계산할 수 있는 하나의 거대한 표로 만들어주는 자연어 처리의 가장 기본적이고 중요한 뼈대이다.
비록 메모리 낭비나 흔한 단어 처리 등의 한계가 있지만, 이 DTM이 있었기에 이를 개선한 TF-IDF 나 최신 딥러닝 임베딩 기술들이 탄생할 수 있었다. 데이터 분석이나 텍스트 마이닝을 공부하신다면 DTM의 개념은 반드시 머릿속에 '주문 내역서' 비유와 함께 저장해 두시길 바란다!
제미나이, 챗지피티 등을 이용 하여 작성
'LLM' 카테고리의 다른 글
| 32. 백오프(Backoff) (1) | 2026.07.23 |
|---|---|
| 31. FastText (0) | 2026.06.04 |
| 29. UMAP(Uniform Manifold Approximation and Projection) (0) | 2026.05.21 |
| 28. t-SNE(t-distributed Stochastic Neighbor Embedding) (0) | 2026.05.20 |
| 27. PCA (주성분 분석) (0) | 2026.05.19 |