2011-10-25 3 views
2

Objective-C에서 태그 클라우드를 만들고 싶습니다. 좋은 알고리즘을 찾으려고합니다. 나는 처음에는 아주 잘 작동하는 것처럼 보였지만 몇 가지 시도를 해봤지만 하나의 결점이있었습니다. 빈도가 가장 낮은 단어만큼 빈번하게 나타나는 경우 전체 프로세스에 결함이있었습니다.1 단어 주파수를 지원하는 태그 클라우드 알고리즘

예 (구글 최초 알고리즘)

var multiplier = (maxPercent-minPercent)/(max-min); 
var size = minPercent + ((max-(max-(count-min)))*multiplier); 

여기서, 분 = 5, 5 점 척도 경우, 5 = maxPercent = 300 minPercent = 75, 및를 계산 한 다음 항목들 :

var multiplier = (300-75)/(5-5) ----- division by 0, impossible 
var size = 75 + ((5-(5-(5-5)))*multiplier); 

내 질문에,이 태그를 고려하는 모든 태그 클라우드 알고리즘이 있으며 최대 빈도가 최소 빈도와 같아도 각 단어의 글꼴 크기를 계산할 수 있습니까? 그것은 잘 당신의 문제를 해결

var multiplier = (maxPercent-minPercent)/(max-min+1); 
var size = minPercent + ((max-(max-(count-min)))*multiplier); 

을 최대한 멀리 볼 수;

답변

1

는 다음 시도 주파수가 구별 될 수있는 한, +1은 일을 많이 바꾸지 않습니다.

+0

당신이 맞습니다, 이제는 작동하지만 문제는 이제 모든 단일 단어가 가능한 가장 작은 글꼴 크기입니다. 어떻게 든 평균을 낼 수 있다고 생각합니까? – elliottbolzan

+0

글쎄, 사양이 도움이 될 것입니다 :) 모든 단어는 가능한 가장 낮은 빈도를 가지고 있지 않습니까? 어쨌든, 예를 들어를 사용하여 "가능한 최저 주파수"에서 "최대 가능한 주파수"로 전환하면 'maxPercent - (max-count) * multiplier'를 사용하면 가능한 최대 글꼴 크기를 갖게됩니다. 평균에 도달하는 것은 더 까다 롭지 않습니다. 5 분 안에 완료 될 것입니다. – alf

+0

와우, 내가 어떻게 그리워했는지 모르겠다! ... 어쨌든, 관심있는 모든 사람들을 위해 나의 최대 해결책은 max와 min이 같은 경우 maxPercent와 minPercent를 평균하는 것이었다. – elliottbolzan