-
텍스트마이닝 (1) Bag-Of-Words (BoW)데이터 분석 (Data Analysis) 2023. 10. 15. 02:15SMALL
BoW 란?
BoW는 Bag of Words의 줄임말로 단어 뭉치 혹은 단어 주머니라고 표현할 수 있다.
BoW는 텍스트의 구조나 순서를 무시하고 단어의 출현 빈도에만 집중한다.
BoW 생성 과정
1. 텍스트 전처리
텍스트를 전처리하여 불필요한 문자를 제거 (Stopwords, 일명 불용어 등)하거나, 대/소문자 통합 과정 등을 거친다.
2. 단어 토큰화 (Tokenization)텍스트를 단어 단위로 쪼개어 각 단어를 토큰으로 만든다. 토큰은 문장에서 분리된 개별 단위로, 보통은 단어가 된다. 이때, 토크나이징 기법에 따라 텍스트 분석 성능이 크게 좌우될 수 있다.
3. 단어의 출현 빈도 계산
각 단어의 출현 빈도를 계산하여 벡터에 담는다. 이를 위해 주어진 문서에서 각 단어의 등장 횟수를 세고, 이를 벡터의 각 차원에 대응시킨다.
예를 들어, "I love machine learning. Machine learning is great!" 라는 문장을 BoW로 표현하면 다음과 같다.
여기서 만일 텍스트 전처리에 대,소문자 통합과정이 없었다면 machine과 Machine이 다른 단어로 판단되기 때문에 이러한 전처리 과정에서 분석에 활용도가 높을 방향으로 검토해 적용하는 것이 좋다.
{ "I": 1, "love": 1, "machine": 2, "learning": 2, "is": 1, "great": 1 }
BoW 분석 방법
BoW를 분석하는 중요한 두 가지 방법은 TF (Term Frequency)와 TF-IDF (Term Frequency-Inverse Document Frequency)이다.
1. Term Frequency (TF)
TF는 특정 단어가 문서 내에서 얼마나 자주 나타나는지를 나타내는 지표로, 각 단어의 빈도를 기준으로 한다.
TF는 단어 `w`의 등장 횟수를 해당 문서의 전체 단어 수로 나눈 것으로 계산된다. 높은 TF 값은 해당 단어가 문서에서 가장 빈번히 나타난다고 해석할 수 있다. 다만, 많이 등장한다고 중요한 키워드라고 판단할 수 없기 때문에 다음의 TF-IDF 개념이 나왔다.$$\text{TF}(w) = \frac{\text{Number of times word } w \text{ appears in a document}}{\text{Total number of words in the document}}$$
2. Term Frequency-Inverse Document Frequency (TF-IDF)TF-IDF는 단어의 중요성을 평가하기 위해 사용되는 지표로, 특정 문서에서 많이 나타나고 다른 문서에서는 그렇지 않은 단어에 가중치를 부여한다. 위에서 구한 TF 값에 Inverse Dcoument Frequency (IDF) 를 곱한 값이다. IDF 는 단어의 희귀성을 나타내는 지표이다.
$$\text{TF-IDF}(w) = \text{TF}(w) \times \text{IDF}(w)$$
$$ \text{IDF}(w) = \log \left( \frac{\text{Total number of documents}}{\text{Number of documents containing word } w + 1} \right)$$
여기서 `Total number of documents`는 전체 문서의 수를 나타내며, `Number of documents containing word w`는 단어 `w`가 나타난 문서의 수를 나타낸다.BoW 활용
Document-Term Matrix (DTM)과 Term-Document Matrix (TDM)은 BoW 기반 표현 방법의 일종으로 각각 문서와 단어 간의 관계를 표현한다.
1. Document-Term Matrix (DTM)
DTM은 문서와 단어 간의 관계를 나타내는 행렬로, 행은 문서를 나타내고 열은 단어를 나타낸다. 일반적으로 문서 간의 비교, 클러스터링, 분류 등에 활용된다.
| | Word1 | Word2 | Word3 | |----------|-------|-------|-------| | Doc1 | 2 | 0 | 1 | | Doc2 | 0 | 1 | 3 | | Doc3 | 1 | 2 | 0 |
위의 예시에서 `Doc1`은 Word1을 2회, Word2를 0회, Word3을 1회 등장시켰음을 나타낸다.2. Term-Document Matrix (TDM)
TDM은 DTM과 마찬가지로 문서와 단어 간의 관계를 표현하는 행렬이지만, 행과 열의 방향이 반대이다. 즉, 행은 단어를 나타내고 열은 문서를 나타낸다. 각 셀은 해당 단어가 해당 문서에 등장한 횟수를 나타낸다. 검색 엔진에서 검색어 랭킹에 사용되기도 한다.
| | Doc1 | Doc2 | Doc3 | |----------|------|------|------| | Word1 | 2 | 0 | 1 | | Word2 | 0 | 1 | 2 | | Word3 | 1 | 3 | 0 |
위의 예시에서 `Word1`은 Doc1에 2회, Doc2에 0회, Doc3에 1회 등장했음을 나타낸다.다음시간에는 BoW을 활용해 토픽 모델링을 구현하는 방법에 대해 알아볼 예정이다!
반응형LIST'데이터 분석 (Data Analysis)' 카테고리의 다른 글
텍스트 마이닝 (2) Latent Dirichlet Allocation (LDA) (1) 2023.10.22 텍스트 마이닝 개요 (Text Mining) (0) 2023.09.29 데이터 전처리 편 (0) 2023.09.16 기술통계 분석과 시각화 (Visualization) - 기초편 (0) 2023.09.09 데이터 형식과 타입 (1) 2023.09.03