TF-IDF를 이용하여 문서의 크기를 구하는 방법을 앞 강의에서 살펴봤다. 이번에는 이 문서들에서 대해 검색어를 처리하는 부분을 알아보기로 한다. 다음과 같은 검색어가 주어졌다고 해보자. 검색어 "new new york"에 대한 쿼리 벡터를 구하면 다음과 같다. 0.584란 값이 값자기 어디에서 나왔는지 궁금할수도 있을 듯 하다. 이전 강의에서 살펴본 각각의 단어의 IDF를 생각해보면 된다. new의 IDF값은 0.584이고, 전체 문서에서 2번 중 검색어도 2번 나왔으므로 2/2가 된다. 문서의 크기와 마찬가지로 검색어의 크기도 제곱하고 더한 후, 루트를 구하면 0.652가 나온다. 이제 유사도를 구하기위해서 문서와 검색어의 거리를 측정해보자. 거리를 구할 때는 유클리드 거리나 코사인 거리를 주로 사용..
텍스트 문서를 기반으로 벡터 모델에 대해서 정리해 보려고 한다. 문서의 텍스트를 처리할 때 특정 단어가 몇 번 나왔는지를 주로 세어본다. 많이 나온 단어일수록 중요하기 때문이다. 그러나 "그리고", "the", "a"와 같이 모든 문서에서 많이 나오는 단어들은 실제로 의미가 없다. 그래서 TF-IDF라는 가중치를 사용하게 된다. TF(Term Frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내고, DF(Document Frequency)는 단어가 문서내에서 흔하게 등장한다는 것을 나타낸다. 그래서 DF의 역수인 IDF(Inverse Document Frequency) 구해서 TF와 IDF를 곱한 값인 TF-IDF를 가중치로 사용한다. 다음과 같은 텍스트로 구성된 3개의 문서가 ..
R을 활용하기 위한 데이터 구조를 정리해 보도록 하겠습니다. 일반적인 프로그래밍 언어와 달리 R에서는 벡터가 중요한 역할을 합니다. 실제로 R에서는 다음과 같은 숫자나 문자열 모두 벡터로 저장됩니다. 그래서 R에서는 스칼라 혹은 단일한 수치 값은 존재하지 않습니다. 단일 숫자처럼 보이지만 실제로는 한 개의 원소를 갖는 벡터로 이해하면 됩니다. 행렬 수학에서는 행과 열로 이루어진 행렬을 많이 사용합니다. R에서도 행렬을 데이터 구조로 취급할 수 있는데요.. 행의 개수와 열의 개수를 속성으로 가지고 있는 벡터라고 생각하면 됩니다. 행렬을 만들기 위해서는 rbind()와 cbind()의 두 가지 함수를 제공합니다. 이름에 나타난 것처럼 열(row) 기준인지 행(column) 기준인지를 나타냅니다. 다음 예를 ..