빈도 가중치 바꾸기
지금까지는 DocumentTermMatrix 또는 TermDocumentMatrix에서 문서의 용어를 단순히 세어 보셨습니다. 이번 연습에서는 단순한 단어 빈도 대신 TfIdf 가중치에 대해 배워 봅니다. TfIdf는 term frequency-inverse document frequency의 약자로, 어휘 다양성이 제한된 대규모 코퍼스를 다룰 때 자주 사용합니다.
TfIdf는 용어를 센 다음(즉, Tf), 문서 길이로 값을 정규화하고, 그 단어가 문서 전반에 자주 등장할수록 값을 페널티로 낮춥니다. 흔한 단어는 중요할 수는 있어도 통찰을 주지는 않는다는 점에서 상식에 맞죠. 이 페널티 요소가 바로 역문서빈도(즉, Idf)에 반영됩니다.
예를 들어 고객 응대 노트를 검토할 때 "customer"를 줄인 "cu"라는 약어가 포함될 수 있습니다. 어떤 노트에는 "the cu has a damaged package", 다른 노트에는 "cu called with question about delivery"라고 적혀 있을 수 있죠. 문서 빈도 가중치를 쓰면 "cu"는 두 번 등장하므로 유익하다고 판단됩니다. 하지만 TfIdf에서는 "cu"가 모든 문서에 등장하기 때문에 페널티를 받아요. 그 결과 "cu"는 새롭지 않은 용어로 간주되어 값이 0에 가깝게 줄어들고, 다른 용어들이 분석에서 더 높은 값을 갖게 됩니다.
이 연습은 강의의 일부입니다
R로 배우는 Bag-of-Words 텍스트 마이닝
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create a TDM
tdm <- ___
# Convert it to a matrix
tdm_m <- ___
# Examine part of the matrix
tdm_m[___, ___]