티스토리 뷰

텍스트 문서를 기반으로 벡터 모델에 대해서 정리해 보려고 한다. 


문서의 텍스트를 처리할 때 특정 단어가 몇 번 나왔는지를 주로 세어본다. 

많이 나온 단어일수록 중요하기 때문이다. 

그러나 "그리고", "the", "a"와 같이 모든 문서에서 많이 나오는 단어들은 실제로 의미가 없다. 

그래서 TF-IDF라는 가중치를 사용하게 된다. 


TF(Term Frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내고, 

DF(Document Frequency)는 단어가 문서내에서 흔하게 등장한다는 것을 나타낸다. 

그래서 DF의 역수인 IDF(Inverse Document Frequency) 구해서 

TF와 IDF를 곱한 값인 TF-IDF를 가중치로 사용한다. 


다음과 같은 텍스트로 구성된 3개의 문서가 있다고 해보자. 


이 문서와 텍스트의 빈도수를 벡터 모델로 나타내면 다음과 같다. 

단순하게 문서에서 각 단어의 빈도수를 0과 1로 처리해 행렬로 보여준 것이다. 


참고로 벡터와 스칼라에 대해서 정리하면 다음과 같다. 

물리학에서 스칼라는 크기만 있는 물리량을 나타내며

벡터는 크기와 방향을 가지고 있는 것을 의미한다. 

예를 들어, 온도가 100도 처럼 1개의 숫자로 크기를 나타내는 것을 스칼라라고 하고

동쪽으로 10걸음, 북쪽으로 5걸음과 같이 크기와 방향을 나타내면 벡터라고 한다. 

여기에서는 행렬(matrix) 형태로 문서와 단어 사이의 빈도수를 나타내므로 벡터라고 하는 듯 하다. 


이제 IDF를 구해보면 다음과 같다. 


문서 수를 단어의 빈도수로 나누고 log2를 취해준 것이 바로 IDF값이다. 

만약 단어의 빈도수가 0일 경우, 0으로 나누는 문제를 방지하기 위해서 분모에 1을 더해서 계산하기도 한다. 


이제 TF-IDF 값을 구해보자. 

TF와 IDF를 곱하면 TF-IDF 값을 구할 수 있다. 


다음 강의에서 유사도 검색을 하기 위해서는 문서의 크기를 알아야 한다. 

문서의 크기는 각 문서에 등장하는 모든 단어들의 TF-IDF값을 제곱해서 더한 후 제곱근으로 구할 수 있다. 

최종적인 문서의 크기(length)는 다음과 같다. 


다음 강의에서는 유사도를 통해 위 문서들에서 검색어를 처리하는 것을 간략하게 살펴보려고 한다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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
글 보관함