728x90
✅ 카운트 기반의 단어 표현
☑️ 단어의 표현 방법
✔️ 국소 표현 vs 분산 표현
카운트 기반 단어표현 (NLP 2팀)(작성중..)
분산표현(Distributed Representation, word2Vec, FastText)
•국소 표현(Local Representation): 해당 단어 그 자체만 보고, 특정 값을 (인덱스로) 맵핑하여 단어를 표현하는 방법
예) 고양이: 1, 귀여운: 2, 동물: 3
- One hot encoding 방식 : 각 단어는 벡터의 하나의 차원에 해당하며 해당 단어를 나타내는 위치에만 1을 둠
- 높은 차원 각차원 독립적 , 단어간의 의미적 관계를 직접적으로 나타낼수 없다
•분산 표현(Dense Representation): 그 단어를 표현하고자 주변을 참고하여 단어를 표현하는 방법 예) ‘고양이’ 단어 주변에 ‘귀여운’과 ‘동물’이 자주 등장 => 고양이는 귀엽다, 동물이다로 인식
ex) word embeding
- 저차원, 각 차원은 단어의 의미적 특성을 나타냄. 각 단어의 의미적 유사성을 벡터 공간에서의 거리로 나타낼수 있다.
TF-IDF
tf : 하나의 문장에 어떤 단어가 얼마나 등장했는지(DTM)
df : 문서에서 어떤 단어의 등장 빈도 수
Idf : df 역수 여러 문서에서 반복적으로 등장한 단어의 가중치를 낮추는 역할
✔️ 단어 표현 방법의 범주
단어 표현 - 어떻게 자연어를 컴퓨터에게 인식시킬 수 있을까 ?
☑️ Bag of Words(BoW)
✔️ Bag of Words
•단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법
•어휘의 빈도(개수)를 기반으로 통계적 언어 모델을 적용해서 나타낸 것 => 국소 표현에 해당
✔️ Bag of Words의 구성 방법
• ① 문서 내 단어별로 고유의 정수 인덱스를 할당하여 단어 집합(Vocabulary) 생성
• ② 단어별 인덱스에 단어의 출현 빈도를 저장한 BoW 벡터 생성
Bag Of Words in Machine Learning with Python | Aman Kharwal
✔️ Bag of Words의 특징
•임베딩 벡터의 차원 = 단어의 개수 = 모델의 크기
-> one hor encoding 동일
• 등장하는 단어가 많아질수록 증가
• N-gram의 n이 커질수록 증가
장점 : 구현이 간단
단점 : 단어와 순서가 문맥을 무시 -> 문장의 의미를 표시 할 수 없다
( 카운트 기반의 단어 표현을 약점 보완은 의미기반 단어 표현)
•단어의 분절이 정확하게 되었을 때 유용
•단어의 여러 의미를 반영하지 못함
=> 동음이의어, 다의어에 대한 의미 표현 불가
✅ TF-IDF
☑️ TF-IDF 개요
✔️ TF-IDF
• Term Frequency (TF): 단어의 등장빈도
• Inverse Document Frequency (IDF): 단어가 제공하는 정보의 양
• ex) He is the president of UK.
→ He, is, the, of: 자주 등장하지만 제공하는 정보량이 적음
→ president, UK: 좀 더 많은 정보를 제공 단어마다 제공하는 정보량이 서로 다르다는 것을 통계적으로 계산함
Term Frequency Inverse Document Frequency (TF-IDF) Explained
✔️ Inverted Index(역 인덱스)
• 불용어 (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)
✔️ 문서 내 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를 실제로 활용하기 위해 행렬의 형식으로 표현
•여러 문서가 가진 단어들을 하나의 행렬에서 표현
문서의 의미를 나타내는 가장 기본적인 단위로 텍스트마이닝 분야에서 전체문서와 단어 사이의 포함을 나타냄 - 분류 , 군집화, 요약에 활용
행 (역문서빈도) : 개별 문서 / 전체 문서 수 (단어를 포함한 문서 수 )
열(단어빈도) : 문서 집합 특정한 고유의 단어 / 문서 내 단어 수( 문서 내 모든 단어 수 )
값 : 각 셀에 해당하는 문서의 특정단어 얼마나 자주등장하는지에 대한 빈도수 (Bag of words / TF-IDF)
✔️ Term Frequency (TF)
•특정 문서 d에서 단어 t가 등장한 횟수
•기존의 DTM과 완전히 똑같은 개념이기 때문에 DTM 자체가 이미 TF 값
✔️ Inverse Document Frequency (IDF)
• Document Frequency (DF): DF는 특정 단어 t가 등장한 문서의 수
=> Inverse Document Frequency (IDF): DF의 역수 == 단어가 제공하는 정보의 양
•단어가 모든 문서에서 너무 많이 등장 => 정보의 양이 적음. 흔한 단어
IDF = 특정단어의 idf 전체 문서수를 그 단어가 포함된 문서의 수로 나누 후에 로그취한 값
N : 전체 문서의 수
df : 단어 t가 포함된 문서의 수
✔️ 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-IDF 단점을 보완 )
• TF 값에 한계를 지정해두어 일정한 범위를 유지하도록 함
•평균적인 문서의 길이보다 더 작은 문서에서 단어가 매칭된 경우 그 문서에 대해 가중치를 부여
(공정한 비교가 가능함)
•현재까지도 검색엔진, 추천 시스템 등에서 빈번하게 사용되는 유사도 알고리즘
rangking fuction
특정 단어가 문서 내에서 지나치게 많이 출하하는 것을 패널티를 매김으로써 조금 더 로버스트하게 단어를 표현할수 있게 만든 것
✔️ 왜 BM25가 더 좋을까?
• TF의 영향이 감소
TF에서는 단어 빈도가 높아질수록 검색 점수도 지속적으로 높아지는 반면, BM25에서는 특정 값으로 수렴
• IDF의 영향이 커짐
BM25에서는 DF가 높아지면 검색 점수가 0으로 급격히 수렴. 불용어가 검색 점수에 영향을 덜 미침
•문서 길이의 영향이 줄어듬
BM25에서는 문서의 평균 길이를 계산에 사용해 정규화. 문서의 길이가 검색 점수에 영향을 덜 미침
728x90
'04_NLP(Natural Language Processing)자연어처리 > LLM' 카테고리의 다른 글
문맥기반 언어지식 표현체계 이론 Ⅱ (1) | 2025.02.05 |
---|---|
의미기반 언어 지식 표현 체계 이론 (0) | 2025.02.05 |
언어모델 평가 방법 (1) | 2025.02.04 |
전통적인 언어 지식 표현체계 (0) | 2025.02.03 |
언어 모델이란 무엇인가 ? (1) | 2025.02.03 |