Python

プロ野球のデータを使ってテキストマイニングを試してみました

今回は前回までに取得したデータを用いて、テキストマイニングを行ってみます。

今回の課題

最近報道番組で単語がたくさん並んだ画像を見かけることが多く、どうやって作るんだろう?という疑問を感じておりました。

調べてみるとPythonのWordCloudライブラリを使用すると簡単に実現できるようなので試してみたいと思います。

データの概要

今回利用するデータは、「一般社団法人日本野球機構」の公式サイトに格納されている2005年以降のセ・パ両リーグの規定打席到達者のデータです。

データの取得方法の詳細は以前のエントリに記載のとおりです。

代表的な分析手法の確認(カイ二乗検定、t検定)(追記)「一般社団法人日本野球機構」の公式サイトに格納されている2005年以降のセ・パ両リーグのデータを取得しました。...

コードの実装

WordCloudをインストールします。

conda install wordcloud

使用するライブラリをインポートします。

import pandas as pd
from wordcloud import WordCloud

使用するデータをインポートします。

df = pd.read_csv("2005-2021_batter_all.csv")

読み込んだデータフレームから利用する部分を抽出してリスト化します。

players = []

for player in df["選手"]:
  players.append(player)

リストを文字列に変更します。

text = " ".join(players)

WordCloudを実行します。

wordcloud = WordCloud(background_color="white",font_path=r"c:\windows\fonts/meiryo.ttc",width=800,height=800).generate(text)
wordcloud.to_file("textminning.png")

実行結果

以下の画像が出力されました。

成功例

文字の大きさは出現頻度によるようなので、坂本選手や鳥谷選手、栗山選手が長年レギュラーとして活躍していることをうかがい知ることができました。

備忘

当初の部分を以下のようにしていました。

text = str(df["選手"])

結果、以下の様に出力され、期待された結果が得られませんでした。

失敗例

今回紹介したコードで実行する場合には、WordCloudに引き渡す文字列はstring型に変更するだけでなく、スペース区切りの文字列に変更する必要があるようです。

今回の結果を踏まえ、もう少し色々とやってみたいと思います。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA