u++の備忘録

TF-IDFを用いた「Kaggle流行語大賞2021」

Kaggle Advent Calendar 2021 の2枚目の5日目の記事です。

2018〜2020年に引き続き、今年もTF-IDFを用いた「Kaggle流行語大賞」を算出します。具体的には、2021年に公開されたNotebookのタイトル情報から、今年特に際立って登場した単語は何かをランキング形式でまとめました。

2018年2019年は「探索的データ分析(Explanatory Data Analysis, EDA)」、昨年は突如現れた「covid」が1位となりました。「COVID19 Global Forecasting (Week 1)」コンペや「OpenVaccine: COVID-19 mRNA Vaccine Degradation Prediction」コンペなど、COVID-19を題材にしたコンペが複数開催されたのが要因だと考えられます。

それでは今年の結果を見ていきましょう。

集計方法

昨年と同様の方法を採用しました。一連の処理はKaggleのNotebookにて公開しています。

www.kaggle.com

データセット

Meta Kaggle」のデータセット「Kernels.csv」を利用しました。公開されているNotebookの公開日・URLなどの情報が格納されています。

NotebookのURLは、ユーザが付けたタイトルに基づいて決まります。下図のように「MoA: LGBM Benchmark」というタイトルの場合は「https://www.kaggle.com/sishihara/moa-lgbm-benchmark]」となります。「sishihara」はユーザIDです。大文字を小文字に変換し、空白・記号なども一定の規則で処理してくれるので分析するのに非常に都合がよくなっています。

f:id:upura:20211204233948p:plain

Notebookの絞り込み

一定の評価を受けたNotebookに絞り込むため、次の処理を実施して「Voteを1以上得たNotebook」に集計対象を限定します。

kernels = kernels.query('TotalVotes > 0')

年ごとに分割

「公開年」別に集計すると、次のようになりました。公開されたNotebookは年々増加していますが、伸びの勢いは収まってきている印象です。

kernels['Date'] = pd.to_datetime(kernels['MadePublicDate'])
kernels['Date'].dt.year.value_counts().plot.bar()

f:id:upura:20211204234117p:plain

TF-IDFを計算

最後に、年を文書、タイトルを文の単位として捉えて「TF-IDF」を計算します。詳細は割愛しますが、多くの年で出現する語(一般的な語)は重要度が下がり、特定の年にしか出現しない単語の重要度は上がるような計算を施すことになります。あらかじめnltk.corpus内の英語のstopwordsを指定して、a, the, ofなどの一般的すぎる単語は取り除いています。

注)2019年までの記事では筆者の判断でKaggle特有の一般的な単語やコンペのタイトル名に含まれる単語などを除外していましたが、2020年の記事からは恣意性を排除するために特別な処理は止めました。

from nltk.corpus import stopwords
from sklearn.feature_extraction.text import TfidfVectorizer


stopWords = stopwords.words("english")
vectorizer = TfidfVectorizer(stop_words=stopWords)

結果発表

2021年のTF-IDFの値で降順にソートした上位10件を以下に示します。2021年の首位には「eda」が返り咲きました。昨年首位の「covid」は10位まで順位を落としています。一方で「eda」のスコアは常に右肩上がりになっています。

初学者向けコンペの「titanic」は常に上位を維持していますが、今年は「tps」が一気に迫ってきているのも注目です。「tps」とは「Tabular Playground Series」の略で、今年1月から毎月開催されている以下のような位置づけのテーブルデータのコンペです。

These competitions will be great for people looking for something in between the Titanic Getting Started competition and a Featured competition.

f:id:upura:20211204234415p:plain

f:id:upura:20211204234705p:plain

おわりに

本記事では昨年に引き続き、TF-IDFを用いた「Kaggle流行語大賞」を算出しました。「eda」が相変わらずの人気ぶりを示しつつ、王道コンペとして「titanic」に次ぐ「tps」が出現した結果となりました。 今年1年も存分に楽しませてもらったKaggleに感謝しつつ、来年もKaggleを楽しんでいきたいです。