
投稿はMathematicaドキュメントとしてダウンロードできます。このドキュメントには、記事で使用されているすべてのコードと追加ファイルが含まれています 。
ソーシャルネットワークとあらゆる種類のメディアリソースの分析は、今では非常に人気のある方向であり、Habrahabrには、実際には、大量の情報(投稿、キーワード、コメントなど)の分析を含む記事がないことを知るのはさらに驚くべきことでした。かなり長い期間にわたって蓄積されました。
この投稿がHabrahabrの多くの参加者の関心を引くことを願っています。 私は、この投稿の開発のためのさらなる方向性についての提案やアイデア、およびコメントや推奨事項に喜んでいます。
投稿では、 ハブに関連する記事が調査され、 合計で 、 264のハブからの62,000の記事が分析に参加しました。 投稿内の企業の企業ブログ専用に書かれた記事は考慮されず、「興味深い」グループに分類されない投稿も考慮されませんでした。
投稿で構築されたデータベースは、公開前に、つまり2015年4月26日に作成されたため、この日付以降にHabrahabrで公開された投稿(および、おそらく新しいハブ)は、この投稿では考慮されませんでした。
目次
ハブリストのインポート
すべてのHabrahabr記事へのリンクをインポートする
すべてのHabrahabr記事をインポートする
投稿のシンボリックXML表現から特定のデータを抽出するための関数
データセットを使用してHabrahabr投稿のデータベースを作成する
データ処理結果
- ハブの簡単な分析
-Habrahabrのハブ接続グラフ
- 時間に応じた記事の数
- 時間に応じて投稿で使用される画像(ビデオ)の数
- キーワードHabrahabrと個々のハブの雲
-Habrahabrに関する記事で言及されているサイト
-Habrahabrの記事につながるコード
- 会議の言葉の頻度
- 投稿の評価と表示回数、および特定の値に到達する確率
- 投稿の評価と視聴回数の公開時間への依存
- 投稿の評価がそのボリュームに依存する
おわりに
ハブリストのインポート
ハブのリストをインポートして、組み込みのデータセットデータベース形式の形式で表示し、さらに作業しやすくします。




すべてのHabrahabr記事へのリンクをインポートする
特定のハブのn番目のページからリンクをインポートする機能:

特定のハブにあるすべての記事へのリンクをインポートする機能:

すべてのハブからのすべての投稿へのリンクをインポートする機能(企業ブログを除く):

すべてのハブからのすべての投稿へのリンクをバイナリのWolfram言語ダンプファイルに保存してインポートします(後で使用するため):

すべてのHabrahabr記事をインポートする
投稿へのリンクの合計データベース:


同時に、同じ投稿がしばしば異なるハブを参照しているという事実のために、それらの間には多くのテイクがあります。 以下のコードからわかるように、 合計重複投稿〜30.6%


投稿への一意のリンクで構成されるリストを作成します。


合計で、同じ数の記事に対応する62,000のリンクがあります。


このページへのリンクを使用して、シンボリックXMLオブジェクト( XMLObject )としてWebページ(投稿)のHTMLコードをインポートする関数を作成し、出力にWolfram言語.mxシリアルパッケージを作成します。

すべての投稿のダウンロードを実行します。

ダウンロードが完了すると、ハードドライブに62,000個のファイルが取得されます。

投稿のシンボリックXML表現から特定のデータを抽出するための関数
Habrahabrからすべての投稿をシンボリックXMLオブジェクトの形式で読み込んだ後、それらから興味のある情報を抽出する必要があります。 これを行うために、以下に示すいくつかの関数を作成します。
役職

投稿が公開されているハブのリスト

絶対時間形式での公開後の日付と時刻(今後の作業の便宜上)。

投稿の評価

投稿ビュー

投稿で提供されるハイパーリンクの統計

投稿で使用される画像の数

投稿へのコメント数

投稿ごとに挿入される動画の数

標準化された形式の投稿のテキスト(段落は削除され、すべての文字は大文字になります)

投稿で提供されるコードの統計

キーワード

データセットを使用してHabrahabr投稿のデータベースを作成する
場合によっては、さまざまな理由で投稿へのアクセスが閉鎖されます。 さらに、適切なリンクをクリックすると、次のようなページが表示されます。

次のページを除外する関数を作成します。

次に、投稿が保存されているすべての.mxファイルへのパスをロードします。


そして閉じたものを削除します:

合計で、閉じられた投稿の約0.5%が削除されました。


Habrahabrの投稿に関するデータベース行を作成する関数を作成してみましょう。これについては以下で説明します。 これは、以前に作成した関数とAssociation関数を使用して行います。

最後に、 Dataset関数を使用してHabrahabr投稿のデータベースを作成します。



データ処理結果
ハブの簡単な分析
記事が投稿されているハブの数の分布を見つけます。


このDatasetフラグメントをテーブルとして想像してください:


記事の数から最大のハブを見つけます。


一意の記事のみを考慮する場合(1つのハブのみに関連する場合、写真はわずかに変わります):


また、会社の投稿数を確認します(会社がブログ専用に作成した投稿はここでは考慮されません)。


Habrahabrのハブ接続グラフ
Sørensen係数に基づいて、 2つのハブで公開されている投稿のリストから2つのハブの類似性の尺度を計算する関数を作成してみましょう。

考えられるすべてのハブのペアのリストを作成しましょう(会社のハブは考慮しません)。

ハブの各ペアの類似度係数を計算します。

グラフのエッジとその重みを定義するリストを作成します。

色付けのために、得られた類似度係数の値を区間[0;に正規化する関数を作成します。 1]:

類似性係数に応じて、リブの色、厚さ、透明度を設定します。 rib骨の重量が大きいほど、厚く赤くなります。 重量が少ないほど、透明度が高く、薄くなります。

結果のグラフはインタラクティブです。各頂点にマウスを移動すると、その名前が表示されます。



頂点の名前を表示して、このグラフのスタイルを変更することもできます。 このグラフは、 リンクごとにフルサイズで見ることができます(画像、12 MB)。


時間ごとの記事数
Habrahabr全体とハブの両方で公開された記事の数を視覚化する関数を作成してみましょう。

彼女の仕事の結果を見てみましょう。 得られたグラフから、現時点では、明らかに、Habrahabrで毎年発行される投稿の数はプラトーに達し、年間11,000投稿の値に近づいていることがわかります。


2012年以降、ハブ「数学」の出版物が急速に増加しています。


2011年以降、Flashに対する関心は薄れてきました。


同時に、2010年以降、ハブ「ゲーム開発」は飛躍的に成長しています。


興味深いことに、ハブ「Habrahabr」の記事数は少なくなっています。


時間に応じて投稿で使用される画像(ビデオ)の数
Habrahabr全体とハブの両方で、公開された投稿内の画像(またはビデオ)の数を視覚化する関数を作成しましょう。









いくつかのハブを見てみましょう。






キーワードHabrahabrと個々のハブの雲
Habrahabrで分析されたすべての投稿の中で、キーワードの使用量のリストが見つかります。


それらの中で最も一般的な150を選択してください:


それらから、単語(またはフレーズ)のサイズが指示の数に直接比例する単語クラウドを作成しましょう。


また、いくつかの行からマスクを作成することもできます。


そして、それに基づいて、750の最も一般的なキーワード(フレーズ)を含むワードクラウドを作成します。


任意の形式で単語雲を作成することもできます。


次に、特定のハブの最も人気のあるキーワードのクラウドを視覚化する関数を作成してみましょう(デフォルトでは100語が使用されます)。

数学ハブの100個のキーワード:


数学ハブの30のキーワード:


ハブ「プログラミング」のキーワード:


ハブ「JAVA」のキーワード:


「オープンソース」ハブの200個のキーワード:


Habrahabrの記事で言及されているサイト
Habrahabr全般と一部のハブの両方で最も頻繁に参照されるサイトを表示する関数を作成してみましょう。

Habrahabrで最も頻繁に参照されるサイトを見つけます。


リンクの主なソースであるHabrahabr自体を削除すると、画像がより鮮明になります。


「数学」ハブで最も頻繁に参照されるサイトを見つけます(この場合、どこでも参照されているため、Habrahabr自体を削除します。


次に、「iOS向けの開発」というハブを見てみましょう。


そして、これが「.NET」ハブです。


Habrahabrの記事につながるコード
コードが挿入されていない記事の割合を見つけます(作成者が特別なタグを使用してコードを常に挿入するわけではないため、ここでは深刻なエラーが発生する可能性があります。


Habrahabr全般とハブの両方で、投稿にコードを挿入するための言語の統計を表示する関数を作成しましょう。 さらに、作成者がコードを指定していない場合、そのようなフラグメントには「SomeCode」という名前が付けられます。 また、ここでは、著者が指定した言語の名前は処理しません。

Habrahabr全体のコード挿入言語の分布を見つけます。


プログラミング言語が指定されていない挿入物を削除すると、図がより鮮明になります。


次に、アルゴリズムハブにコードを挿入するための最も一般的なプログラミング言語を見てみましょう。


波部「プログラミング」:


ハブ「Web開発」:


ハブ「Linuxセットアップ」:


ハブ「検索エンジンとテクノロジー」:


単語の頻度
Yandexの「 Word Selection 」サービスは、たとえば幅広い読者に興味のある記事を書きたい場合に非常に便利です。 このサービスでは、単語検索の頻度を確認できます。 Habrahabrの記事に関するロードされた情報に基づいて、このサービスの特定の類似物を作成し、記事のテキスト内の単語(グループまたは正規表現)の出現頻度を発行できます。 これにより、特定のトピックに対する視聴者の関心を追跡できます。
そのため、このような単語の出現頻度を生成する関数を作成しましょう。

これで、さまざまなものを見ることができます。たとえば、Habrahabrで最もよく使用されるリソース名「Habrahabr」または「Habrr」を比較できます。


または、Habrahab全体のさまざまなプログラミング言語の名前の使用頻度を比較できます。


数学パッケージへの参照の頻度を比較してみましょう(「string」~~ _(前の例で使用された)の形式の表現)、異なる末尾の文字列のコレクションを指定できます。たとえば、「tungsten」~~ _という表現は、「tungsten」、「tungsten」の文字列のコレクションを定義します。 「タングステン」など):


もちろん、「ロシア」、「アメリカ」、「ヨーロッパ」というグループの単語の出現頻度を調べるなど、さまざまなことに興味を持つことができます。


または、いくつかのテクノロジーで徐々に減少するフェージング(凍結)を観察できます。


または、新しいものの誕生:


個々のハブで単語を使用する頻度も確認できます。 「iOS開発」ハブで「iOS」と「Android」という言葉を使用する頻度を考えてみましょう。


または同じ言葉ですが、ハブ「Android向け開発」にあります。


ハブ「オープンソース」のオペレーティングシステムの名前の使用頻度を比較できます。


Habrahabr全体として:


投稿の評価と表示回数、および特定の値に到達する確率
投稿の評価と投稿の視聴のペアを区別します。


通常の対数スケールで平面上の分布を構築します。


これらのグラフの欠点は、グラフ上のポイントの分布密度を反映しないことです。
検討中のペアの2次元および3次元の分布密度を構築します。



Habrahabrの平均投稿評価は34.5で、平均視聴回数は14237.3です


ただし、これは統計的な特性ではありません。 ペアの分布を構築します(2次元確率変数の分布を作成します):


数学的な期待を見つける:


標準偏差と同様に:


また、たとえば、投稿が特定の評価を獲得する確率を見つけることもできます。


これで、投稿が特定のビュー数を獲得する確率がわかります。


評価と投稿ビュー数の公開時間への依存
以下のコードから、Habréでは常にすべての記事が約210万の合計評価を獲得し、視聴回数の合計は10億に近いことがわかりました。


トリプル投稿公開時間+投稿評価+投稿ビューを区別します。

公開時間に応じて、投稿の評価の動作を調査します。








公開時間に応じて投稿ビューの数を調査します。








投稿の評価のそのボリュームへの依存
タイプの投稿の長さ+投稿の評価のペアを区別します(投稿の長さ-以降、投稿のボリュームと呼びます-投稿の文字の総数として計算されます):


通常の対数スケールで平面上の分布を構築します。


検討中のペアの2次元および3次元の分布密度を構築します。



Habrahabrの平均投稿数は5989文字です。


前と同様に、考慮中のペアの分布を構築します(2次元のランダム変数の分布を作成します)。


特定の文字数を超えない量の投稿が、少なくとも特定の評価を獲得する確率を求めます。


おわりに
分析があなたの興味を引くこと、そしてあなたにも役立つことを願っています。 もちろん、結果として得られるデータベースに基づいて、このような質問に答えるためにさまざまな研究を行うことができます。この投稿は人気がありますか(人気のレベルを予測しますか)。 コメントの数に影響を与えるものは何ですか? 投稿に最適なテーマを見つける方法は? などなど。 しかし、これらはすでに将来の投稿のトピックです。
4月30日3:21からの更新 : Powerの注意のおかげで、投稿の評価に関連する計算値が調整されました。 以前に計算された値と比較すると、違いはかなり重要ではないことが判明しました。 ただし、extractData ["Raiting"]関数のバグが解消されたため、アルゴリズムのチェーン全体の整合性が復元されました。
協力のために-Habréまたは私のVKontakteグループに個人的なメッセージを書いてください。
YouTubeチャンネル -ウェビナーとトレーニングビデオ。
新しいコースの登録 。 オンラインコース準備完了。