【Python】2022年の漢字は「地」?「診」?Twitterのトレンドから分析してみる

本当はもう少し前に投稿すべき内容ですが、時間がかかってしまいました。

2022年の今年の漢字は「戦」でしたね。これは全国からの募集により日本漢字能力検定協会が発表しているみたいです。確かに戦争やスポーツなどで戦いが多い年だったかもしれません。

でもまあせっかくpythonを勉強しているので、2022年の漢字をネットの情報から分析できないかを考えました。

はじめはネットニュースの記事の内容やタイトルからデータをスクレイピングして、分析しようと思ったのですが、ネット記事の多くは公開期限が決まっているみたいで、2022年1月からのデータを分析するには有料会員になるなどお金がかかることがわかったので、その方法は辞めました

別の方法で、ネットの情報ということでTwitterのトレンドだったら「2022年の流行り=2022年の漢字」がわかると考え、そちらの方法で漢字を抽出することにしました。

漢字分析の流れ

Twitterのトレンドの抽出ですがどうしようか考えていたのですが、「Trend Calendar」というすばらしいサイトがありましたので、こちらのサイトからトレンドをスクレイピングすることにしました。

こちらのサイトにはTwitter以外にもGoogleのトレンドワードも記載されていましたので同時に分析することにしました。

トレンドの抽出と漢字分析の流れは以下のとおりとしました。

分析の流れ
  1. Trend Calendarからトレンドワードを抽出する(Selenium4)。
  2. 抽出したトレンドワードから漢字を抽出(単語を抽出する場合はMecab)して、漢字の出現回数を計算して多いものを抽出する(Gensim)。

1. TwitterのトレンドとGoogleの検索ワードのスクレイピング

「Trend Calendar」のURLは「”https://jp.trend-calendar.com/trend/”+日付+”.html”」となっているため日付を増やしながらURLにアクセスして各日付のトレンドワードを抽出します。

スクレイピングにはSelenium4を使用しました。Selenium3と4で色々仕様が変わっている見たでしたので注意してください(例えば要素の取得方法など)。

なお、トレンドランキングの15位以降については「もっと見る」ボタンをクリックする必要があり煩わしかったので、もともと表示されている15位までを取得することにしました。

プログラムを以下に記載します。解説はコメントで書きました。関数内の要素ループはTwitterとGoogleで同じなのでまとめても良かったですね。

抽出したCSV(df_t.csv)は以下のような感じになります。エンコードがUFT-8であることに注意してください。

2. 漢字の抽出と出現回数の計算

トレンドワードを抽出したので、ここから漢字を抽出します。

他の方法はあるかもしれませんが、今回はGensimを使って辞書を作成して、漢字の出現回数を算出します。Gensimの辞書はテキストファイルに出力すると「id, 単語, 出現文書数」の形式で出力されるので、これを使ってエクセルで出現回数順で並べ替えて集計しました。

Gensimを使えば自然言語処理としてもっといろんなことができるため、今後の分析に色々活用していきたいと思っています。

また、Mecab日本語の形態素解析によく用いられるシステムで、文章を名詞、動詞、形容詞、など細かい単語に分解してくれます。今回は漢字以外にこれを使って単語の出現回数も集計しました。

あと、WordCloudですが、これは単語を頻度に比例する大きさで雲のように並べたもので、出現回数を可視化したものです。ぱっと見でわかりやすいので、単語の分析の際につかってみました。

作成したプログラムを以下に記載します。

集計結果

漢字の分析結果

漢字について、集計した結果を以下に示します。単に出現回数であれば、「回」「日」などが多いのですが、これらはトレンドと言うよりか普段から使う漢字なので、2022の漢字とはいえない気がします。

他にもそういった理由を考慮するとそれっぽい漢字は赤字で示したような、地震を表す「地」「震」や、医療関係を表す「診」、月食?に関係する「星」などかなという印象です。あくまで個人の印象なので、なかなか判断は難しいですね。

いずれにしても「戦」はTwitterでは38位と割りと上位に入っているため、2022年の漢字として比較的妥当な結果であるのではないでしょうか。

また、TwitterとGoogleで違いが有るのも興味深いですね。

漢字の出現回数(2022-01-01~2022-12-06)

単語の分析結果

単語について、集計した結果を以下に示します。どうでしょうか、単語で診ると漢字で多かった「地震」などに加えて、政治的ワードの「選挙」や個人やチームを示す「藤井」、「乃木坂」なんかもランクインしていることがわかり面白いですね。

単語の出現回数(2022-01-01~2022-12-06)

この結果のワードクラウドを載せておきます。よりわかりやすいと思います。

Twitterのトレンドワードの単語のワードクラウド
Googleのトレンドワードの単語のワードクラウド

まとめ

今回はpythonを使って2022年の漢字を分析してみました。

最終的な結果には個人的な判断が入るので、難しいですが、機械的に単語の出現回数を取得できることがわかったので、今後文章のトレンド分析などに活かせるのではないかと思っています。

自然言語処理にも興味があるので、そのへんも勉強していきたいですね。

参考サイト

コメント

タイトルとURLをコピーしました