2022 年中規模記事の分析は Python でスクレイピングされました

著者による画像

記事を定期的に公開し始めると、常に多くの疑問が頭に浮かびます。 多くの記事を読みましたが、どれも私を完全に満足させるものはありませんでした。 私が読んだ記事は、彼らの心の問題に答えを与えたからです。 それで、昨年、自分でそれを行う方法について調査しました。 しかし、他にもやるべきことがたくさんあるので、この分析を延期しました。 一方、中規模のスクレーパー Jupyter ノートブックを作成し、2022 年が終了する前に未解決の部分を切り上げたいと考えています。

そのため、2014 年からメディアから大量のデータをスクレイピングしましたが、この間、6605 件の記事を含む 2022 件の記事をきれいにすることができました。

実際には、2022 年に TDS で公開されたすべての記事が含まれています。最近追加した Kaggle で見つけることができます。 このデータセットはこちらにあります。 気軽にそこにアクセスして、ノートブックを作成し、データ セットを分析して、ノートブックを公開してください。

この記事では、メディアから書き始めるときに頭に浮かぶ答えを見つけようとします。

記事の最後で、次の質問に答えるために Python を使用して Z テストも行いました。

それでは、質問に答えて分析を始めましょう。

開始する前に、このグラフと分析のコードを次に示します。

2022 年に TDS に掲載された 1 回の読書時間あたりの記事数は?

こちらのグラフは、2022年にTowards Data Scienceに掲載された記事の閲覧時間あたりの記事数を示しています。 このグラフは、さまざまな読書時間での記事の分布を示しています

著者による画像

発行するのに最適な日はいつですか?

この記事では、平均いいね数を分析することで、公開するのに最適な日を判断できることがわかります。 どうやら金曜日は記事を公開するのに最適な日ですが、毎日の間には劇的な違いがあります. また、週末はライクが少ないかもしれないと思っていましたが、このグラフは私の予想が正しくないことを示しています。

著者による画像

平日と土日どちらに掲載するべきですか?

平日と週末のどちらに公開する必要があるかを判断するには、平日と週末の記事の平均いいね数を分析する必要があります。 後者の質問からもわかるように、大きな変化はありません。

著者による画像

2022 年に最も多くの記事を公開した TDS の上位 15 人のライターは?

ここでは、2022 年に最も多くの記事を公開した上位 15 人のライターを確認できます。2022 年に彼らが公開したデータの量を決定できます。

著者による画像

最も成功した作家を見つけましょう。

TDS で記事ごとの「いいね」数が最も多いライターのトップ 10 は?

ここでは、TDS のトップ 10 のライターを見ることができます。その記事は、記事ごとに最も高く評価されています。 記事ごとのいいね数のデータを分析し、ライターごとに記事ごとの平均いいね数を算出することで求めることができます。

ただし、よく見るために、1 つの制限があります。

2022年に記事を5本以上掲載した作家を選出しました。

著者による画像

1シーズンあたりの平均は? 記事シリーズはどのシーズンに発行する必要がありますか?

シーズンごとの平均は、各シーズン(春、夏、秋、冬)に発行された記事のいいね数のデータを分析することで求めることができます。

この棒グラフは、各シーズンの記事ごとのいいね数の平均を示しており、平均が最も高いシーズンを特定できます。

または、一連の記事を公開する予定がある場合は、夏が最適なシーズンのようです。

著者による画像

月平均いくらですか?

ここでは、1 か月あたりの記事ごとの平均いいね数を確認できます。 12 月が TDS の記事を公開するのに最悪の月であることは明らかですが、8 月は公開するのに最適な月です。 前のグラフからわかるように、夏は「いいね!」を獲得するのに最適な季節でもあります。

著者による画像

では、同じグラフを 1 月から見てみましょう。

ここに;

著者による画像

最も気に入った記事トップ 5 は?

各記事の「いいね!」数のデータを分析することで、「いいね」の多い上位5記事を割り出すことができます。

著者による画像

単語の雲

ワード クラウドは、特定のテキストまたは一連のテキストで最も頻繁に使用される単語をグラフィックで表現したものです。

通常、単語はさまざまなサイズとフォントの太さで表示されます。最も頻繁に使用される単語は大きなフォント サイズで表示され、使用頻度の低い単語は小さなフォント サイズで表示されます。

ワード クラウドは、単語の頻度のカウントや自然言語処理技術の使用など、さまざまなテキスト分析技術を使用して作成できます。

テキスト内の最も重要なテーマやトピックをすばやく特定したり、異なる単語間の関係を調べたりするためによく使用されます。

では、タイトルに基づいてワード クラウド分析を行い、キーワードを見つけてみましょう。

著者による画像

さて、グラフを見てデータを分析しました

記事に「データ」が含まれている場合、その記事はより多くのいいね!

適切なトピックを選択することは、ブログ投稿の成功に関して非常に重要です。 そのため、このセクションでは、3 つの質問に対する答えを見つけようとします。

ここに私の質問があります:

  • 記事に「データ」が含まれている場合、その記事はより多くのいいね!
  • タイトルに「機械学習」が含まれている場合、その記事はもっと好きですか?
  • 記事のタイトルに「Python」が含まれている場合、その記事はもっと好きですか?

これらの質問に答えるために、Z で仮説検定を行います。

ここで、帰無仮説はこの仮定が有効ではないことを示しているため、いいねとタイトルの「データ」キーワードの存在との間には何の関係もありません。

よし、始めよう。

ここに帰無仮説と対立仮説があります:

Ho: The articles that contain the “Data” keyword are not more similar than others.
Ha: The articles that do not contain the "Data" keyword have more likes than others.
df_d = df2[df2['title'].str.contains('Data')]
n = df_d.shape[0]
df_not_d = df2[~df2['title'].str.contains('Data')]
m = df_not_d.shape[0]
x = df_d["like"].values.mean()
y = df_not_d["like"].values.mean()
print("Average like per article which contains Data word is : {}".format(x))
print("Average like per article which does not contains Data word is : {}".format(y))
Output:
Average like per article which contains Data word is : 145.27632461435277
Average like per article which does not contains Data word is : 126.16352964986845
x_var = df_d["like"].values.var()
y_var = df_not_d["like"].values.var()
print("Variance of like per article which contains Data word is : {}".format(x_var))
print("Variance of like per article which does not contains Data word is : {}".format(y_var))
Output:
Variance of like per article which contains Data word is : 34623.71036502944
Variance of like per article which does not contains Data word is : 35591.299305412445

Z スコアの計算

z = (x - y)/np.sqrt(x_var/n + y_var/m)
z
Output : 3.4650416548218073

P値の計算

p = 1 - norm.cdf(z)
p
Output : 0.00026507467906666804

これで、p 値が非常に小さいように見えます。

Zスコアとは?

Z スコアは、キーワード「データ」を含む記事と含まない記事のサンプル平均 (x) が母平均 (y) から離れている標準偏差の数を示します。

大きな正の z スコアは、サンプルの平均が母集団の平均から大きく離れていることを示し、2 つのグループ間に有意差があることを示唆しています。

次に、1 から標準正規分布の累積分布関数 (cdf) を引いて、p 値を計算します。

Pスコアとは?

p 値は、サンプルの結果が偶然によるものである確率を表します。 小さな p 値 (通常は 0.05 未満) は、帰無仮説に対する強い証拠を示し、2 つのグループ間に有意差がある可能性が高いことを意味します。

出力は、計算された z スコアが 3.46 で、p 値が 0.00026 であることを示しています。

これらの値は、「データ」キーワードを含む記事と含まない記事では、いいねの数に大きな違いがあることを示唆しています。

このように p 値が小さい場合、いいね数の違いは偶然によるものではない可能性が非常に高くなります。

取り除く

「データ」を含むタイトルは、統計的にいいね数が多くなります。

記事のタイトルに「機械学習」が含まれている場合、その記事はより好きですか?

Ho: The articles that contain the “Machine Learning” keyword are not more similar than others.
Ha: The articles that do not contain the "Machine Learning" keyword have more likes than others.
df_ml = df2[df2['title'].str.contains('Machine Learning')]
n = df_ml.shape[0]
df_not_ml = df2[~df2['title'].str.contains('Machine Learning')]
m = df_not_ml.shape[0]
x = df_ml["like"].values.mean()
y = df_not_ml["like"].values.mean()
print("Average like per article which contains Machine Learning word is : {}".format(x))
print("Average like per article which does not contains Machine Learning word is : {}".format(y))
Output:
Average like per article which contains Machine Learning word is : 126.07432432432432
Average like per article which does not contains Machine Learning word is : 130.8120925684485
x_var = df_ml["like"].values.var()
y_var = df_not_ml["like"].values.var()
print("Variance of like per article which contains python word is : {}".format(x_var))
print("Variance of like per article which does not contains python word is : {}".format(y_var))
Variance of like per article which contains python word is : 20565.70393535427
Variance of like per article which does not contains python word is : 36148.17117710747
z = (x - y)/np.sqrt(x_var/n + y_var/m)
z
-0.5457262785917103
p = 1 - norm.cdf(z)
p
Output:
0.7073729473003265

記事のタイトルに「Python」が含まれている場合、その記事はもっと好きですか?

Ho: The articles that contain the “Python” keyword are not more similar than others.
Ha: The articles that do not contain the "Python" keyword have more likes than others.
df_python = df2[df2['title'].str.contains('Python')]
n = df_python.shape[0]
df_not_python = df2[~df2['title'].str.contains('Python')]
m = df_not_python.shape[0]
x = df_python["like"].values.mean()
y = df_not_python["like"].values.mean()
print("Average like per article which contains python word is : {}".format(x))
print("Average like per article which does not contains python word is : {}".format(y))
Output:
Average like per article which contains python word is : 156.37653631284917
Average like per article which does not contains python word is : 126.42658479320932
x_var = df_python["like"].values.var()
y_var = df_not_python["like"].values.var()
print("Variance of like per article which contains python word is : {}".format(x_var))
print("Variance of like per article which does not contains python word is : {}".format(y_var))
Variance of like per article which contains python word is : 39885.99341593583
Variance of like per article which does not contains python word is : 34587.302945045776
z = (x - y)/np.sqrt(x_var/n + y_var/m)
z
4.201586041664072
p = 1 - norm.cdf(z)
p
1.3252573576538751e-05

タイトルに「Python」が含まれていて、「データ」などのいいねが多いようです。

この記事では、さまざまな読書時間、公開するのに最適な日、2022 年に Towards Data Science で公開するのに最適な月と季節など、Medium でより多くのいいねを獲得することを目的とした幅広い質問に答えました。この分析を行うために、私はPython を使用して Medium の記事をスクレイピングしました。

特に夏と 8 月が最も人気のある記事で、記事を公開するのに最適な日は金曜日であることがわかりました。 また、Towards Data Science で 2022 年に最も多くの記事を公開した上位 15 人の作家と、Towards Data Science で公開し、記事ごとに最も多くのいいねを獲得した上位 15 人の作家も見つけました。

私の分析では、夏のシーズンと 8 月に、記事の閲覧数といいね数が増える傾向があることもわかりました。

さらに、タイトルに「データ」、「機械学習」、または「Python」というキーワードを含む記事が他の記事よりも多くの「いいね!」を受け取るかどうかを調べるために、Z 検定も行いました。 Z 検定では、「Python」と「データ」のキーワードを含む記事は、他の記事よりもいいね数が多いことが示唆されました。

全体として、2022 年に Towards Data Science に掲載されたメディア記事の包括的な分析を提供することができました。

このグラフと分析のコードは次のとおりです。

私の記事を読んでくれてありがとう。

Leave a Comment

Your email address will not be published. Required fields are marked *