Google+ユーザー関係グラフ。 ゲフィ

データを視覚化する手段としてGephiの記事読んだ後、 Gephiプログラムに感銘を受けました。 そのとき、 Google +でユーザーアクティビティログを生成していました 。 そして、私はアイデアに訪れ、おそらく社会の参加者間の関係のグラフを作成しました。 Google+ネットワーク 数時間の検索の後、私はそのようなことはまだGephiのために行われていないという結論に達しました。 Google+用のwiki gephiグラフアルゴリズムも提案されていません。 そして、インスピレーションを受けて、 LoggenCSGアプリケーションに、Gephiがインポートできるsqlite dbファイルにログをアップロードするためのモジュールをすばやく追加しました。 Gephiでのグラフのインポート結果が本当に気に入りました。

ユーザーのアクティビティを介した間接的な関係。
ユーザーのアクティビティを介した間接的な関係。

アクティビティを介したユーザー間の直接接続。
アクティビティを介したユーザー間の直接的な関係。
以下は、このようなグラフを自分で作成する方法の説明です。





ソフトウェア

同様の結果を得るには、2つのプログラムが必要です。

語彙





LoggenCSGを使用する

プログラムを起動したら、Google +の[プロフィールID]フィールドにユーザーIDを挿入する必要があります。

ProfileIdフィールド

あなたのプロフィールに行くことでそれを見つけることができます。 アドレスバーはhttps://plus.google.com/u/0/ 101113754039426612780 / postsのようになります

IDを挿入した後。 最近のユーザー投稿の最大数を選択する必要があります。

最近の投稿の最大数

最初のカウンターでそれを示します。 第二に、コメントの数、およびそれに応じて、コメントを残した著者。 その後、プラスとリシェアのリクエストでの結果の最大数、それぞれ3と4カウンター。

チェックボックスディープ サーチを選択することもできます。 このパラメーターは、データサンプリングアルゴリズムを担当します。 パラメーターが有効な場合、最初に指定された数の最近のユーザーメッセージが受信され(そのUidによってアクティビティログが生成されます)、その後、アクティビティの作成者が識別されます。 次に、特定された著者ごとに、古典的なアルゴリズムがトリガーされます。そのuidによって、指定された数の最近の投稿が取得され、アクティビティ分析が実行されます。 関係のより一般的な図を取得するには、深いアルゴリズムが必要ですが、古典的なアルゴリズムよりも高価です。

ログを作成するビジュアライザーを選択できます。 そして、保存するファイルを指定します。

ビジュアライザーの選択

ファイル名テンプレート。

最も興味深い部分は、ファイル名生成テンプレートの形成です。
生成テンプレート
各ビジュアライザーには、独自のテンプレートセットがあります。 しかし、Gephiコラムには興味があります。 デフォルトでは、すべてのファイル{type}:{title}にテンプレートが提案されます:

このテンプレートに従ってデータを生成すると、ユーザー間の間接的な関係のグラフが得られます。つまり、ユーザー(著者)から彼の投稿へのエッジがあり、別のユーザー(コメンテーター)から彼が投稿に関連して示したアクティビティへのグラフがあります。 ポストとアクティビティの間にもエッジが形成されます。 その結果、ユーザーのアクティビティを通じてユーザー間のコミュニケーションが得られます。 アクティビティを通じたユーザーの態度



別の画像を取得するには、つまりユーザー間の直接的なコミュニケーションを取得するには、すべてのファイルタイプのテンプレートを{actorname}に変更する必要があります。 ログメッセージは次のように生成され、関数に渡されます。 上記に基づいて、すべてのファイルタイプに{actorname}テンプレートを適用すると、ユーザー間の直接接続が得られます。 ユーザー間の直接接続

すべての設定が完了したら、[生成]ボタンをクリックします。 プログラムはデフォルトのブラウザを開き、OAuth2を介してアプリケーションを認証し、情報を受信する権限を付与します。 ここでどのようにしますかはコードです。 Googleのからはあまりfromなことはしませんでした。



データベースにデータを追加する方法。

アルゴリズムは次のとおりです。 その結果、重み付き有向グラフが得られ、これにより多くの分析機会が得られます。

データベースの操作は、 Linq to Entitiesテクノロジーを使用してSystem.Data.SQLiteプロバイダーを通じて実行されます。 これがGephiAppenderクラスです。 すべてのデータは、gephiで処理する必要があるようです。


Gephiと連携する

サンプルが作成されるソースKriss Selitserプロファイルによって生成されたデータ。


プログラムの起動後、[ファイル]-> [データベースのインポート]-> [エッジリスト]を選択します...
画像
ダイアログボックスでdirver sqliteを選択し、赤で強調表示されているフィールドに入力し、ファイル名フィールドでLoggenCSGによって生成されたdbファイルを選択します。 私の場合、デフォルトでは。
画像
処理後、次の結果が得られます。
画像

ここでは、インポートされた2019の頂点、5891のエッジ、グラフが動的に表示されます。 [ OK]をクリックします左下で、 レイアウトを処理するアルゴリズムを選択しますForceAtlas 2を選択しましたスケーリングを30に設定します実行をクリックします
画像

私たちはあなたにとって最も楽しい結果を待っています。 リスト内で上に移動してDegreeメソッドを選択し、頂点に関連付けられた頂点とエッジに重みに従って色を付けます。 必要なグラデーションを作成するか、右から隅にある既製のパレットを選択します。 適用をクリックします。
画像

その後、[ プレビュー ]タブに移動します。 図のようにすべてを構成し、[ 更新 ]をクリックします。
画像

[ 上書き ]タブに戻ります。 右下にはフィルターパレットがあります。 リストで、「 トポロジ」->「自我ネットワーク (特定の頂点に関する接続。文字通り自我ネットワーク=)」というディレクトリを選択します。 このフィルターを下の領域にドラッグします。 [データ]タブに移動します.... 右上隅にフィルターがあり、必要な名前を入力します。 クリスに入った。 IDをコピーまたは記憶します。 戻って、 Node Idフィールドにそれを示します。 フィルターをクリックします
画像

[ノードID]フィールドで選択できる値は、選択した頂点から次の頂点までのステップ数を示します。デフォルトは1です。このフィルターを使用すると、クリスから1ステップ離れたユーザーの数がわかります。
画像

次に、 相互角度範囲フィルターを選択して、すべての頂点間の相互関係を確認できます。 それを下部にドラッグし、スライダーを0から1に移動すると、相互接続が1から最大のすべてのユーザーが表示されます。
以下にマップを示します。
画像
しかし、フィルターを適用した後:
画像

フィルタを組み合わせることもできます。 1つのフィルターを別のフィルターにドラッグするだけです。
画像
相互関係を持つ自我ネットワークを取得します。 以下は、このフィルターを前の画像に適用した結果です。
画像



おわりに

あなたがそれを理解できることを願っています。 あまりにも華麗に書かれている場合は申し訳ありません。
これは、ユーザー間の相互関係を分析する非常に興味深いアクティビティです。 =)楽しんでください。

結局のところ、Gephiはグラフを操作するための非常に強力なツールです。 明確なインターフェースがあります。 ダイナミクスでグラフを見ることができますが、これは私が言わなかったことです。 LoggenCSGによって生成されたグラフは動的であるため、動的フィルターを適用できます。また、レイアウトを構築する方法のいずれかが有効になっている場合、非常に良い画像が得られます。

ソースコードについては申し訳ありませんが、コードにコメントがないことを申し訳ありません。

すぐに表示され、詳細なしで結果が表示されるだけなので、写真の解像度はそれほど高くありません。 あなたはこのカードで私のアルバムを詳細に見ることができます、写真への署名があります。



PS :はい。これらのグラフは、サークル内の本当にアクティブなユーザーを示しています。



ご清聴ありがとうございました。



UPD

さまざまなユーザーの結果。



All Articles