더북(TheBook)

다음은 crude를 단어-문서의 행렬로 표현한 예다.

> (x <- TermDocumentMatrix(crude))
A term-document matrix (1266 terms, 20 documents)

Non-/sparse entries: 2255/23065
Sparsity           : 91%
Maximal term length: 17
Weighting          : term frequency (tf)

위 결과를 보면 단어-문서 행렬의 차원이 1266×20이고 행렬의 값은 TF, 즉 단어의 출현 빈도임을 알 수 있다.

행렬의 내부는 inspect( )를 사용해서 볼 수 있다.

> inspect(x[1:10, 1:10])
A term-document matrix (10 terms, 10 documents)

Non-/sparse entries: 4/96
Sparsity           : 96%
Maximal term length: 7
Weighting          : term frequency (tf)

        Docs
Terms    127 144 191 194 211 236 237 242 246 248
...        0   0   0   0   0   0   0   0   0   1
100,000    0   0   0   0   0   0   0   0   0   0
10.8       0   0   0   0   0   0   0   0   0   0
1.1        0   0   0   0   0   0   0   0   0   0
1.11       0   0   0   0   0   0   0   0   0   0
1.15       0   0   0   0   0   0   0   0   0   0
1.2        0   0   0   0   0   1   0   0   0   0
12.        0   0   0   1   0   0   0   0   0   0
12.217     0   0   0   0   0   0   0   0   1   0
12.32      0   0   0   0   0   0   0   0   0   0

만약 다른 가중치 기법을 사용하고 싶다면 TermDocumentMatrix( )의 control 인자에 weighting을 지정한다. 다음은 TF-IDF를 사용한 예다.

> x <- TermDocumentMatrix(crude, control=list(weighting=weightTfIdf))
> inspect(x[1:10, 1:5])
A term-document matrix (10 terms, 5 documents)

Non-/sparse entries: 1/49
Sparsity           : 98%
Maximal term length: 7
Weighting          :
    term frequency - inverse document frequency (normalized) (tf-idf)

        Docs
Terms    127 144 191 194 211
...      0 0 0 0.000000 0
100,000  0 0 0 0.000000 0
10.8     0 0 0 0.000000 0
1.1      0 0 0 0.000000 0
1.11     0 0 0 0.000000 0
1.15     0 0 0 0.000000 0
1.2      0 0 0 0.000000 0
12.      0 0 0 0.074516 0
12.217   0 0 0 0.000000 0
12.32    0 0 0 0.000000 0

help(TermDocumentMatrix)에 좀 더 다양한 사례가 예로 설명되어 있으므로 참고하기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.