2013-07-09 1 views
2

나는 내 웹 사이트에서 자동 제안 기능을 사용하기 위해 trie (접미어 트리)를 사용하고 있습니다.자동 제안 기능에 대한 가중치 트라이

이제 더 낮은 무게의 텍스트 위에 가장 많이 사용되는 (가장 중요도가 높은) 텍스트를 보여주고 싶습니다. 제안이 가중치가 적용되도록 내 트라이를 어떻게 바꿀 수 있습니까?

아니면 메모리에서 무게별로 정렬해야합니까?

답변

0

각 노드에 count 또는 weight 속성을 추가하고 단어를 사용하여 trie를 빌드 할 때 업데이트 할 수 있습니다. 각 문자의 초기 가중치는 0입니다. 그러나 문자가 단어의 끝 문자이면 그 문자의 초기 가중치는 1입니다. 단어를 계속 추가 할 때 터미널 문자의 가중치를 조정할 수 있습니다.

따라서, 예를 들어, 당신은 할 수 : 문자열에 대한

t:0 
| 
o:1 
| 
w:3---e:0 
| \ \ 
n:2 a:0 l:4 
    \ 
     r:0 
     \ 
     d:2 

to, town은 (두 번 나타나는) towel은 (네 번 나타나는), tow이 (세 번 나타나는) (한 번 표시) 및 toward (두 번 나타남). 접두사 tow이 있다면

그렇다면, 당신은 tow:3, towel:4, town:2toward:2 비 제로 가중 문자열을 볼 수 있습니다.

그 후에는 무게에 따라 분류 할 수 있습니다.

저는이 구현을 실제로 시도하지 않았습니다. 이것은 단지 아이디어 일뿐입니다.