質問

コンテキスト

私の質問

  • Wordleが行うことを行うアルゴリズムがありますか?
  • いいえの場合、同様の種類の出力を生成する代替手段は何ですか?

なぜ私が尋ねているのか

  • 好奇心が強い
  • 学びたい
役に立ちましたか?

解決

私はWordleの作成者です。 Wordleの実際の動作は次のとおりです。

単語をカウントし、退屈な単語を捨て、カウントで降順に並べ替えます。いくつかのNの上位N単語を保持します。各単語に、そのカウントに比例したフォントサイズを割り当てます。 Java2D APIを使用して、単語ごとにJava2Dシェイプを生成します。

各単語<!> quot; wants <!> quot; <!> quot;垂直中央のランダムなx位置<!> quot;のように、どこかに配置します。頻度の降順で、単語ごとにこれを実行します。

place the word where it wants to be
while it intersects any of the previously placed words
    move it one step along an ever-increasing spiral

それだけです。 hard の部分は、交差テストを効率的に実行することです。これには、ラストヒットキャッシュ、階層バウンディングボックス、およびクアッドツリー空間インデックスを使用します(これらはすべて、勤勉なグーグル)。

編集:Reto Aebersoldが指摘したように、この同じ領域をカバーする本の章が自由に利用できるようになりました:美しい視覚化、第3章:ワードル

他のヒント

タグクラウドを作成するためにPythonを使用して、ジョナサンファインバーグが説明したアルゴリズムを実装しました。 wordle.netの美しい雲からはほど遠いですが、どうすればそれができるのかがわかります。

プロジェクトはこちらで見つけることができます。

Jonathanが提案するアルゴリズムを使用するSilverlightコンポーネントを作成しました。ソースコードとサンプルプロジェクトはすべて私のブログで入手できます。

http://whydoidoit.com

カラーワードクラウド

マイクラウドでは、さまざまな重み付けに基づいて単語の色とサイズを設定でき、単語の選択(座標から)と選択した単語の強調表示をサポートしています。ソースは、あなたが適切だと思うように使用するものです。

ワードクラウドの例

これは、d3を使用するJason Daviesの非常に素晴らしいjavascriptの1つです。ウェブフォントも使用できます。

デモ: http://www.jasondavies.com/wordcloud/

Github: https://github.com/jasondavies/d3-cloud

ワードクラウドを作成するための処理ライブラリである WordCram に取り組んでいます。 Wordleの影響をかなり受けており、上記にリンクされている同じPDF aebyによって通知されます。衝突検出を処理し、単語のレイアウト、色付け、回転などの方法に集中できます。

http://code.google.com/apis/visualization/documentation/ gallery.html

単語クラウドの視覚化をご覧ください。 wordle.netほど派手ではありませんが、サイトに簡単に追加できます。

テキスト内の関連性など、他のデータに関連する文字列の色、初期位置、サイズを割り当てることができるワードルのような視覚化を探していました-何も見つかりませんでしたが、情報のおかげでここで見つけました(特にジョナサンの説明とaebyのリンク)。ついに ' Cloudio 'を実装できました。少なくともそう思います...)、探していた機能を提供します。

SWTとJFaceで実装されており、コンテンツプロバイダーとラベルプロバイダーを設定してクラウドのレイアウトを変更し、他のEclipseに追加できるように、JFaceのMVCモデルに統合しようとしました。プラグインまたはRCPアプリ。また、文字列の初期位置の計算方法を変更して、クラスターの視覚化などに使用するのが難しくないようにすることもできます。それはまだ不十分に文書化されており、いくつかの方法で制限されています(そして私は数時間前に最初のアップロードをしましたので、まだ少しバグがあるかもしれません)が、興味があるなら、ここにリンクがあります:

また、簡単な印象が必要な場合に作成されたいくつかのクラウドへのリンクは次のとおりです。 https:// github。 com / sschwieb / Cloudio / wiki / Example-Clouds

乾杯、 ステファン

こちらは、クラウドのようなWordleの実装を示しています。 同じスパイラルアルゴリズムとQuadTreeデータ構造を使用します。

http://sourcecodecloud.codeplex.com

または

http:// www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win

Lion and Lambは、聖書の選ばれた本から最も頻繁に使用される単語を使用してワードクラウドを作成するオープンソースのiOSアプリです。

これは、ジョナサンファインバーグが説明したアルゴリズムに基づいています。ヒットテストはクワッドツリーを使用しますが、境界ボックスはグリフの境界矩形に基づいています。グリフを多数の小さな境界四角形に分割して、グリフの境界ボックス内に単語を配置できるようにします。

GitHub: https://github.com/PetahChristian/LionAndLamb

聖書の黙示録の単語雲

ここにタグクラウドジェネレーターがあり、これを Disorganizer と呼びます:)

ソース TagCloudService およびカミソリマークアップコントロール およびテスト目的のWinForm ブログやプロフィールなどに小さなラッパーを付けて入れることができます。 C#4.0 <!> ampを使用します。 System.Drawing名前空間が大きくなります。

他のクラウドジェネレーターでは、タグをクリックしてナビゲートしたり、ホバーアニメーションを作成してクリック可能なことを示すことができないため、作成しました。私はHTMLでホバーアニメーションを表示する必要があるため(オーバーレイで固定された<a>タグを使用してこれを行っています)、アングル表示を開発していません-それらは垂直または水平です。

警告:上記のリンクは数か月後に無効になる可能性があります。周辺のプロジェクトから別のプロジェクトにゆっくりと解放する予定です。

実際のデモを見ることができますこのサンプルブログ投稿では、不完全であり、不完全なサイトにあります。誰かが貢献したい場合は私に連絡してください、私はできるだけ早くそれを分離することに取り掛かります。

主にJonathan Feinbergによる初期のアウトライン(QuadTrees、スパイラルなど)に基づいた Python 3 のwordleの別のエンドツーエンド実装です。

このコード(コメント付き、詳細なReadMeファイル付き)は、この Githubリポジトリおよびこちらで無料で入手できます。コードで作成されたサンプルワードです。

 Macbeth

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top