TopicRank는 사용자가 입력한 질의어에 기반을 두어 검색 결과에 대해 공시적 분석과 워드 클러스터링을 진행하고 동적으로 상호 작용하는 시맨틱 네트워크를 생성하는 알고리즘입니다. 사용자 질의어에 의해 제시된 키워드의 배열은 의미적 유사도 수식에 따라 결정됩니다. 같은 기본 질의라 하더라도 사용자가 입력한 다양한 조건에 (날짜, 어떤 특정, 카테고리) 따라 시맨틱 네트워크를 구성할 수 있는 편리한 인터페이스가 제공됩니다.
키워드 매칭을 기반으로 하는 전통적인 검색 엔진은 사용자의 질의에 너무 많은 검색 결과를 보여주지만, 결과 대부분은 관련이 없는 경우가 많습니다. 그리고 대부분 사용자는 자신의 의도에 맞는 검색 질의어를 찾아내기 힘들어합니다. 아울러 사용자는 문서를 보는 것뿐만 아니라 전체 콘텐츠에 대한 통찰을 얻고자 합니다.
이러한 문제점을 해결하기 위해 솔트룩스가 제시하는 시맨틱 검색 기능의 일부가 토픽랭크 알고리즘입니다. 현재까지의 많은 검색 엔진 업체나 포털에서 사용자에게 다음과 같은 직관적인 인터페이스를 제공하려고 노력합니다.
토핑랭크는 사용자가 자기 자신의 의도에 맞는 검색 질의어를 쉽게 생성하도록 하고 많은 문서를 쉽고 빠르게 조회하도록 합니다. 또한, 관련 주제 발견, 문서 클러스터링, 다차원 분류 또는 태그 클라우드 등에 기반을 둔 많은 방법은 사용자의 여러 요구를 만족시킬 수 있습니다.
토픽랭크는 다음과 같은 단계를 거쳐 사용자에게 제시됩니다.
이 알고리즘의 품질과 속도는 여러 가지 요소에 의해 달라질 수 있습니다. 예를 들면, Step 2의 snippet 사이즈, Step 3의 weighting 함수, 그리고 Step 3에 Name Phrase나 Named Entity의 적용 여부 등이 변수가 될 수 있습니다. 여기서 snippet 사이즈란 쿼리 키워드를 중심으로 앞뒤로 몇 개의 단어를 하나의 셋으로 만드냐를 말합니다.
검색과 같이 TopicRank는 주요 2단계 process에 따라 진행되며 분석/색인 Flow와 검색 Flow는 다음과 같습니다.