문서 단어 행렬(Document-Term Matrix, DTM)이란, 각 문서에 대한 BoW 표현 방법을 그대로 갖고 와서, 서로 다른 문서들의 BoW들을 결합한 표현 방법이다.

행과 열을 반대로 선택하면 TDM이라고 부르기도 한다.

1. 문서 단어 행렬(Document-Term Matrix, DTM)의 표기법

문서 단어 행렬(Document-Term Matrix, DTM)이란 다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것을 말한다.

* 쉽게 말해, 각 문서에 대한 BoW를 하나의 행렬로 만든 것이다.

 

예를 들어 4개의 문서가 있다고 하자.

 

문서1 : 먹고 싶은 사과
문서2 : 먹고 싶은 바나나
문서3 : 길고 노란 바나나 바나나
문서4 : 저는 과일이 좋아요

 

이를 문서 단어 행렬로 표현하면 다음과 같다.

- 과일이 길고 노란 먹고 바나나 사과 싶은 저는 좋아요
문서1 0 0 0 1 0 1 1 0 0
문서2 0 0 0 1 1 0 1 0 0
문서3 0 1 1 0 2 0 0 0 0
문서4 1 0 0 0 0 0 0 1 1

각 문서에서 등장한 단어의 빈도를 행렬의 값으로 표기한다.

문서 단어 행렬은 문서들을 서로 비교할 수 있도록 수치화할 수 있다는 점에서 의의를 갖는다.

2. 문서 단어 행렬(Document-Term Matrix)의 한계

DTM은 매우 간단하고 구현하기도 쉽지만, 본질적으로 가지는 몇 가지 한계들이 있다.

2-1) 희소 표현(Sparse repre)

DTM도 원-핫 벡터의 단점을 가지고 있다.

DTM에서의 각 행을 문서 벡터라고 해보면, 각 문서 벡터의 차원은 원-핫 벡터와 마찬가지로 전체 단어 집합의 크기를 가진다. 만약 가지고 있는 전체 코퍼스가 방대한 데이터라면 문서 벡터의 차원은 수백만의 차원을 가질 수도 있다.

 

원-핫 벡터나 DTM과 같은 대부분의 값이 0인 표현을 희소 벡터(sparse vector) 또는 희소 행렬(sparse matrix)라고 부르는데, 희소 벡터는 많은 양의 저장 공간과 계산을 위한 리소스를 필요로 한다.

이러한 이유로 전처리를 통해 단어 집합의 크기를 줄이는 일은 BoW표현을 사용하는 모델에서 중요하다.

 

텍스트 전처리 방법을 사용하여 구두점, 빈도수가 낮은 단어, 불용어를 제거하고, 어간이나 표제어 추출을 통해 단어를 정규화하여 단어 집합의 크기를 줄일 수 있다.

2-2) 단순 빈도 수 기반 접근

여러 문서에 등장하는 모든 단어에 대해서 빈도 표기를 하는 이런 방법은 때로는 한계를 가지기도 한다.

예를 들어, 불용어인 the는 어떤 문서이든 자주 등장할 수 밖에 없다.

그런데 유사한 문서인지 비교하고 싶은 문서1, 문서2, 문서3에서 동일하게 the가 빈도수가 높다고 해서 이 문서들이 유사한 문서라고 판단해서는 안된다.

 

각 문서에서 중요한 단어와 불필요한 단어들이 혼재되어 있는데 DTM에 불용어와 중요한 단어에 대해서 가중치를 줄 수 있는 방법을 위해 사용하는 것이 TF-IDF이다.

 

* 정리:

1. 다수의 문서에서 등장하는 각 단어들의 빈도행렬표현한 것을 문서 단어 행렬 이라한다.

2. 문서 단어 행렬은 문서들을 서로 비교할 수 있도록 수치화할 수 있다는 점에 의의를 갖는다.

3. 문서 단어 행렬은 희소 표현의 한계를 가지는데 원-핫 벡터와 유사한 단점을 가지고 있다.

4. 단순 빈도 수 접근을 하면 불용어 같은 'the'도 자주 등장하는데 분류에 있어 효용가치가 없다 이를 분류하는 방법이 가중치를 주는 것인데 TF-IDF를 사용한다.