見出し画像

【Python】非エンジニアだけどGoogle Colaboratoryで単語出現頻度分析してみた

¡Hola! マイコです。
今回はGoogle Colaboratoryで単語の出現頻度分析をしてみました。

今まではSPSSやJMPなどパッケージソフトの力を頼っていたのですが、現在手元にそのようなツールがなく、Pythonをいじるしかない状況です(もしくは予算を確保する)。

Google Colaboratoryは環境構築も特別な設定も不要。また、ネット上に公開されているコードを少し修正すればやりたいことができそうなのでやってみました。

Google Colaboratoryを始める

Driveの「+New」(新規作成)から「More」>「Google Colaboratory」を選択して新規作成します。

Colaboratoryを開く

すると、Colaboratoryが開きます。これで準備完了!

Colaboratoryのページ

コードはこの三角印の右側のスペースに入力していきます。

形態素解析エンジンのダウンロード

今回は日本語の文字列を解析します。MeCabという日本語の形態素解析エンジンをダウンロードします。

pip install mecab-python3
pip install unidic
python -m unidic download

三角印を押して、このコードを実行するとMeCabのダウンロードが始まります。
なにしろ初めて触るので、ダウンロードが始まった時に変なコードを実行してしまったのではないかと一瞬焦りましたが、MeCabを正常にインストールすることができました。

頻度分析

さて。MeCabもインストールできたので頻度分析のコードを作っていきます。
が、その前に分析対象のデータをCSVファイルで用意します。
左側のフォルダマークをクリックして、CSVファイルをドラッグ&ドロップします。

警告のポップアップが出るので、OKします。

CSVファイルがアップロードできました。

今回は対象ファイル内の名詞TOP100を出してみます。

f = open('input.csv', 'r', encoding='UTF-8')

recipe = f.read()

import MeCab
import unidic

mecab = MeCab.Tagger('')
node = mecab.parseToNode(recipe)
words = []
while node:
  cotegory = node.feature.split(',')[0]
  word = node.surface
  if cotegory in ['名詞']:
    origin = word
    words.append(origin)

node = node.next

import collections
count = collections.Counter(words)
data = count.most_common(100)
print(data)

実行して、出力を確認します。

(データはダミーです)

なお、この「100」部分の数字を変えるとTOP10やTOP1000などに変えることができます。

data = count.most_common(100)

出力結果をCSVでダウンロードする

このままだと分析したり加工したりするのが難しいので、CSVとしてダウンロードできるようにします。results.csvという名前で生成します。

import csv
f = open('results.csv', 'w', newline='')
writer = csv.writer(f)
writer.writerows(data)
f.close()

実行すると、input.csvの下に新たに生成されたresults.csvが表示されます。

results.csvにカーソルを持っていき右クリックすると、「ダウンロード」が出てくるのでダウンロードできます。

読み込ませるファイルさえあればすぐに頻度分析ができるようになりました。社内でいろんなデータを集めては解析してみています。

Python初学者以前の初めて触ってみただけですので、誤りや改善点あればアドバイスいただけますと幸いです。

参考にした記事:

ネット上のコードにはいつもお世話になっております。エンジニアや先駆者の皆さん、ありがとうございます。

頻度分析はこちらを参考にしました。

CSV書き出しはこちらを参考にしました。


この記事が気に入ったらサポートをしてみませんか?