5

単語とその頻度、および画面領域の領域を考えると、タグクラウドをスペースに適合させるための良いアプローチは何ですか?私が操作すると考えることができる2つの変数は次のとおりです。

  • フォントサイズ(絶対サイズとグラデーションの両方)
  • 言葉の数

私が考えることができるすべてのアプローチは、単語数の上限を設定し、単語がその領域にぴったり合うまでフォントサイズのバイナリ検索を使用するなど、反復が必要です。私はむしろ分析的な解決策が欲しいです。

私の状況の1つの厄介な問題は、雲のサイズが変更可能であるため、アルゴリズムが100x100ピクセルまたは1000x1000ピクセルを適切に処理できる必要があることです。

編集:これは、Webではなくリッチクライアントアプリケーション用であると言うべきでした(したがって、サイズ変更の可能性があります)。また、「タグクラウドで100語以上の単語を見る人はいないので、わざわざ表示しないでください」などの体験を聞きたいと思っていました。

4

3 に答える 3

2

Software Cartographer で行うことは、

  • 最大フォントサイズを持ち、
  • この範囲にマップMath.sqrt(term.frequency)します (単語は 2D 領域であるため)。
  • 上位 30 (またはその程度) の用語のみを表示し、
  • 細字、つまりフォント サイズが 6 pt 未満のものは除外します。
  • クラウド内の用語をアルファベット順に並べ替えます。

代替案

  • 上位 30 件を表示する代わりに、kスクロール バーが表示されないように上位を選択します。
  • 最も頻繁に使用される単語を最大フォント サイズにマッピングする代わりに、クラウド間で単語サイズが同等になるようにグローバル マッピングを使用します (これはユース ケースによって異なります)。

私の知る限りでは、ターム クラウドに関する実証的な研究はありません (Worlde で有名な Jonathan Feinberg は、この点に関してはもっと詳しいかもしれません)。

于 2009-03-23T10:04:24.883 に答える
0

あらかじめ定義された入射範囲のセットを作成し、それをクラウドのフォント サイズに関連付けることができます。例えば:

  • 0 - 100: 1 em
  • 101 - 500: 1.2 エム
  • 501 - 1000: 1.4 em 太字
  • 1001 - 1500: 1.8 em 太字
  • 1501 - 2000: 2.0 em 太字斜体/下線付き/点滅/その他...

コンテナーのサイズに基づいてすべての範囲に固定オフセットを追加することで、クラウドをスケーリングできます。

于 2009-03-05T02:14:55.600 に答える
0

これはナップザック問題のように聞こえますが、反転しており、より多くの変数があります。自明な完全な解決策はありませんが、ほとんどの場合、最適な解決策に近づくヒューリスティック アルゴリズムを見つけることができる可能性があります。

PS: ピクセル単位で測定されたフォント サイズでのみ、これを確実に機能させることができます。ピクセル単位で測定されたフォント サイズは、優れた Web デザインでは悪いこと (TM) です。

于 2009-03-05T01:31:46.390 に答える