카운트 기반의 단어 표현
- 국소 표현(Local Representation)
- 해당 단어 그 자체만 보고, 특정 값을 맵핑하여 단어를 표현하는 방법|
- one-hot 인코딩 방식 - 분산 표현(Dense Representation)
- 그 단어를 표현하고자 주변을 참고하여 단어를 표현하는 방법
Bag of Words(BoW)
- Bag of Words
- 단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법
- 어휘의 빈도(개수)를 기반으로 통계적 언어 모델을 적용해서 나타낸 것 => 국소 표현에 해당 - 구성 방법
① 문서 내 단어별로 고유의 정수 인덱스를 할당하여 단어 집합(Vocabulary) 생성
② 단어별 인덱스에 단어의 출현 빈도를 저장한 BoW 벡터 생성 - 특징
- 임베딩 벡터의 차원 = 단어의 개수 = 모델의 크기
-등장하는 단어가 많아질수록 증가
- N-gram의 n이 커질수록 증가
- 단어의 분절이 정확하게 되었을 때 유용
- 단어의 여러 의미를 반영하지 못함 => 동음이의어, 다의어에 대한 의미 표현 불가
TF-IDF
- TF-IDF
- Term Frequency (TF): 단어의 등장빈도
- Inverse Document Frequency (IDF): 단어가 제공하는 정보의 양
ex) He is the president of UK.
→ He, is, the, of: 자주 등장하지만 제공하는 정보량이 적음
→ president, UK: 좀 더 많은 정보를 제공 - 개요
- 불용어 (stopword) : 모든 문서에 자주 사용되어 색인어로 문서를 구분해주는 가치가 없는 어휘 (예) “in”, “the”, “and”)
- Map 형식의 자료구조에 inverted index를 저장
- Key: term / word
- Value: 문서빈도 수, term 빈도수, 위치 - Comparison Function (연관성)
- 질의(query)와 문서(document) 사이의 관련성의 정도를 계산
- Query와 inverted index의 term을 비교하여 문서를 검색하고 순위화
- 실시간으로 계산
- Term 빈도수 (Term frequency) 가정: 사용자가 입력한 query와 매칭하는 term의 빈도수가 높을수록 query와 해당 document 연관성이 높음
- 예) query: fish => “fish”를 포함한 문서 및 term 빈도수
→ If Doc1의 “fish” 빈도수: 1, Doc2의 “fish” 빈도수: 2 => 연관성(“fish”, Doc2) > 연관성(“fish”, Doc1) - 문서 빈도수 (Document Frequency)
- 가정: 사용자가 입력한 query가 특정 document에만 나타나는 경우, query와 해당 document 사이의 연관성이 높음
- Query가 나타나는 document 의 수가 적을수록 관련성이 높음
예) query: egg, red
→ “egg”를 포함한 문서 빈도수: 1 => doc 4
→ “red”를 포함한 문서 빈도수: 2 => Doc1, Doc2
=> 연관성(“egg”, Doc4) > 연관성(“red”, Doc1) = 연관성(“red”, Doc2) - 문서 내 term 위치
- 가정: 사용자가 입력한 query가 2 개 이상인 경우, query가 문서 내에서 가까운 곳에 위치하는 경우
=> query와 해당 document 사이의 연관성이 높음
예) query: [“red”, “fish”]
- “red”, “fish”가 동시에 나타나는 문서: Doc1, Doc2
- Doc1에서 [“red”, “fish”] 사이의 거리: 1
- Doc2에서 [“red”, “fish”] 사이의 거리: 2
- 연관성([“red”, “fish”], Doc1) > 연관성([“red”, “fish”], Doc2) - 문서-단어 행렬(Document-Term Matrix)
- 문서에서 등장하는 각 단어들의 빈도나 특성을 반영한 행렬
- BoW나 TF-IDF를 실제로 활용하기 위해 행렬의 형식으로 표현
- 여러 문서가 가진 단어들을 하나의 행렬에서 표현 - Term Frequency (TF)
- 특정 문서 d에서 단어 t가 등장한 횟수
- 기존의 DTM과 완전히 똑같은 개념이기 때문에 DTM 자체가 이미 TF 값 - Inverse Document Frequency (IDF)
- Document Frequency (DF): DF는 특정 단어 t가 등장한 문서의 수
=> Inverse Document Frequency (IDF): DF의 역수 == 단어가 제공하는 정보의 양
- 단어가 모든 문서에서 너무 많이 등장 => 정보의 양이 적음. 흔한 단어 - Combine TF & IDF
- ‘a’, ‘the’, ‘of’ 등 관사 및 전치사
⇒ TF는 높으나, IDF가 0에 근사
=> 거의 모든 document에 등장하면 N ≈ DF(t) ⇒ log(N/DF) ≈ 0 => 낮은 TF-IDF score
- 자주 등장하지 않는 고유 명사 (ex. 사람 이름, 지명 등) => 높은 TF-IDF score - TF-IDF 의 활용
- 기계 독해: 문서의 TF-IDF 값을 사용하여 사용자의 검색 질의와 가장 관련성이 높은 문서를 찾음
- 문서 요약: 문서의 각 단어에 대한 TF-IDF 값을 계산하여, 문서의 주요 내용을 파악. 이를 통해 자동으로 문서 요약을 생성하고, 요약된 정보를 제공
- 문서 군집화: 비슷한 주제 또는 유사한 내용을 가진 문서들은 유사한 단어들을 공유. 문서의 TF-IDF 값을 이용하여 문서를 군집화
- 키워드 추출: 텍스트에서 가장 중요한 단어,TF-IDF 값이 높은 단어를 추출 - BM25
- TF-IDF 를 기반으로, 문서의 길이까지도 고려하여 점수를 매김
- TF 값에 한계를 지정해두어 일정한 범위를 유지하도록 함
- 평균적인 문서의 길이보다 더 작은 문서에서 단어가 매칭된 경우 그 문서에 대해 가중치를 부여
- 현재까지도 검색엔진, 추천 시스템 등에서 빈번하게 사용되는 유사도 알고리즘
- 왜 BM25가 더 좋을까?
- TF의 영향이 감소 TF에서는 단어 빈도가 높아질수록 검색 점수도 지속적으로 높아지는 반면, BM25에서는 특정 값으로 수렴
- IDF의 영향이 커짐 BM25에서는 DF가 높아지면 검색 점수가 0으로 급격히 수렴. 불용어가 검색 점수에 영향을 덜 미침
- 문서 길이의 영향이 줄어듬 BM25에서는 문서의 평균 길이를 계산에 사용해 정규화. 문서의 길이가 검색 점수에 영향을 덜 미침
'Study > 자연언어처리 NLP' 카테고리의 다른 글
문맥기반 언어지식 표현 체계 이론 (0) | 2025.02.03 |
---|---|
언어모델 평가 방법 (0) | 2025.02.03 |
전통적인 언어 지식 표현 체계 (0) | 2025.02.03 |
Natural Language 언어모델 (1) | 2025.02.03 |
NLP 대회 전략 (0) | 2025.01.17 |