일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- NER
- tensorflow
- Binary classification
- LSTM
- BERT
- Generative model
- Transfer Learning
- 군집화
- cross domain
- Support Vector Machine
- SOMs
- textmining
- RNN
- Python
- MLOps
- TFX
- Logistic Regression
- Gradient Descent
- Clustering
- 자기조직화지도
- NMF
- AI 윤리
- VGGNet
- nlp
- Ann
- ResNet
- gaze estimation
- Attention
- 경사하강법
- stemming
- Today
- Total
juooo1117
Text statistics & Zipf's Law 본문
Text Statistics
의미 있는 단어들을 찾기 위해 단어들의 통계적(statistical) 특성을 이용해 보자
언어적, 장르적, 시대적 차이 등에 상관없이 보편적으로 적용할 수 있는 단어의 통계적 특성이 있을까?
CranfieldDocs word frequency 그래프
Zipf's Law (지프의 법칙)
단어의 빈도수는 단어의 순위에 따라서 급격히 감소한다. 즉, 순위(rank)가 낮아질 수록 급격히 감소하며, Ft = k / Rt (Ft: 단어 't'의 빈도수, k: constant; 문서집합마다 다른 값, Rt: 단어 't'의 순위) 식과 같이 감소한다.
- 가장 빈도수가 높은 단어가 t' 일 때 Rt' = 1 이다. → frequency rank = 1 인 단어!
- 가장 빈도수가 높은 단어는 전체 텍스트의 10%를 차지한다 → 0.1/1 = 10% 이기 때문
- 두 번째로 빈도수가 높은 단어는 전체 텍스트의 5%를 차지한다 → 0.1/2 = 5% 이기 때문
- 이런 식으로 Frequency Top 10 단어들이 전체의 30%를 차지한다. (Top20: 36%, Top50: 45% 차지하는 결과)
몇 단계의 계산을 거쳐서 전체 문서 집합에서 n번 발생하는 단어들의 비중을 1/n(n+1) 식과 같이 계산할 수 있다. 즉, 한 번 발생하는(n=1) 단어는 전체의 50%이고, 전체 단어 중 90%가 열 번 이하로 발생한다.
이러한 특성은 언어에 상관없이 나타나고, 대부분의 문서집합에서 단어의 빈도수는 비슷한 패턴을 가진다. 즉, 통계적인 패턴은 언어에 상관없이 비슷하다.
Zipf's Law in Text Mining
가장 많이 등장하는 단어들 위주로 제거하면 index size를 많이 줄일 수 있으므로 검색의 효율성을 높일 수 있다.
Frequency Top50 단어가 전체의 45%를 차지하기 때문에 이러한 단어들을 inverted index(해당 단어가 어느 문서 집합에 들어가 있는지를 나타내는 것)로 표현한다면 많은 크기를 차지하게 된다.
하지만, 빈도수가 매우 높은 단어들 중에서도 다른 단어와 결합해서 중요한 의미를 갖게 되는 것들이 존재한다. (e.g. 'let it be', 'to be or not to be'...) → 이런 단어들은 index에는 남겨두지만, 질의문에서는 되도록 제거하고 근접 연산자(중간에 불필요한 단어가 몇 개 끼어있어도 검색이 되게끔)를 사용할 때만 남겨두어서 검색 효율을 높이기도 한다.
위에서 살펴본 것처럼 빈도수가 매우 높은 단어들이 문서의 주제와 상관없는 경우도 있지만 그 문서 집합의 전체적인 특징을 나타내는 단어일 수도 있다.
따라서, 문서 종류에 따라 단어의 빈도수가 상위에 rank되어 있어도 stopwords로 처리하면 안 될 단어들이 존재하므로 알맞은 판단이 필요하다.
'Artificial Intelligence' 카테고리의 다른 글
Text Clustering - NMF & Mini Batch k-means (0) | 2023.12.12 |
---|---|
Information Extraction - Sequence Labeling, Conditional Random Fields (1) | 2023.12.12 |
Web Scraping - Text Mining (0) | 2023.12.12 |
Text pre-processing (cranfieldDocs) (0) | 2023.10.27 |
NLP(Natural Language Processing) (0) | 2023.10.26 |