랭커는 검색 요청이 오면 검색 질의에 근접한 웹 페이지를 순위화 해주는 엔진입니다. 여기에서는 라이브러리 형태로 제작할 것입니다.
수 많은 자료 중에서 원하는 결과를 검색하면 검색 결과도 많을 수 있습니다. 이 때 사용자는 검색 결과에서 다시 원하는 결과를 검색하는 비용이 들 수 있습니다.
자료의 양이 많아지면서 검색 엔진도 보다 효과적으로 검색 결과를 제공하기 위해 똑똑해지고 있습니다. 이를 위해 시멘틱 처리의 알고리즘이 필요한데 여기서 다루는 랭커는 시멘틱 처리를 하는 기본적인 알고리즘을 사용할 것입니다.
랭커에서 순위를 매기는 방법은 다양한데 여기에서는 TF IDF 방식을 사용할 것입니다.
TF는 Term Frequency의 약어로 특정 단어가 얼마나 자주 나오는지에 관한 값입니다. 따라서 문서에 특정 단어의 참조 개수를 문서의 전체 형태소 개수로 나눈 값입니다.
IDF는 Inverse Document Frequecy의 약어로 특정 단어를 포함하는 문서가 얼마나 많은지에 따라 희귀성을 구하는 값입니다. DF값은 먼저 특정 단어를 포함하는 문서 개수를 전체 문서 개수로 나는 값입니다. 그리고 IDF값은 이를 역수를 취한 값인데 많은 곳에서는 이를 다시 log를 취해서 사용하고 있습니다.
따라서 TF IDF 방식은 문서에 특정 단어가 나오는 빈도수인 TF로 해당 문서에 특정 단어의 중요도를 점검하고 IDF를 통해 전체 문서에서 해당 단어를 포함하는 문서의 빈도로 희귀성을 계산하는 것입니다.
목적에 따라 검색하는 사용자의 연령이나 나이, 지역, 성별 등과 비슷한 이가 작성한 글에 가중치를 두어 랭커를 만들며 보다 효과적인 랭커를 만들 수 있습니다. 물론 목적에 맞는 인자를 선별하고 적당한 가중치를 찾는 작업이 필요한데 이러한 부분은 관련 논문을 참고할 수 있다면 이를 활용하는 것이 좋은 방법일 수 있습니다.