2

私はObjective-Cでタグクラウドを作成しようとしています。そして、良いアルゴリズムを見つけようとしています。私はいくつか試してみましたが、最初は非常にうまく機能しているように見えましたが、すべてに1つの欠陥がありました。出現回数が最も少ない単語が、頻度が最も高い単語と同じくらい頻繁に出現する場合、プロセス全体に欠陥がありました。

例(Googleの最初のアルゴリズム):

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

ここで、min = 5、max = 5、maxPercent = 300、minPercent = 75、およびcount = 5の場合、次のようになります。

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

だから私の質問は、これを考慮に入れて、最大頻度が最小頻度に等しい場合でも、各単語のフォントサイズを計算できるタグクラウドアルゴリズムはありますか?

4

1 に答える 1

1

次のことを試してください。

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

私が見る限り、それはあなたの問題をうまく解決します。同時に、周波数が識別可能である限り、+1状況はあまり変わりません。

于 2011-10-25T15:29:25.747 に答える