こんにちは。すごい改善のAitoです。
今日はWordとExcelを使って超お手軽に単語頻度分析をします!
単語頻度分析はアンケート分析などで活用できます。アンケートの自由記述欄から簡易的にユーザーがどのようなことに興味を持っているのかを推定する助けになるといった使い方です。他の分析手法と組み合わせることでより有用なデータが得られます。今回はいわゆるテキストマイニングの最初の段階である「単語頻度分析」をやっていこうと思います。
さて、皆さんはWordで文章を書いたことはあると思いますが、単語をダブルクリックすると単語が自動的に選択されるのをご存じですか?Wordは単語を判定する機能を持っていまして、お察しの通りVBAからプログラム的に利用することが可能です。今回はこの機能を使って分析を行っていきます。他に何もインストールする必要がないのがお手軽でいいですよね!
最初に分析する文章を決めましょう。次のリンクの記事にしましょう。
https://sugoikaizen.com/blog/8510/
この記事をワードにコピーして貼り付けます。
この時点で、Wordファイルはマクロ有効形式で保存することをお忘れなく!保存していないとこの次に示すコードが動きません……。
次にWord VBAのプログラムから示します。VBEの立ち上げ方はExcelの時と全く同じです。新しいブックを作成したら「Alt + F11」を押してVBEを起動します。
標準モジュールを作成して、以下のコードを記述します。
Option Explicit
'分かち書きをする
Sub WordSeparation()
Dim ExcelApp As Object: Set ExcelApp = CreateObject("Excel.Application")
Dim ExcelBook As Object 'Excel Workbook Object
With ExcelApp
.Visible = True
Set ExcelBook = .Workbooks.Add '新しいブックを追加
End With
Dim i As Long: For i = 1 To ActiveDocument.Words.Count
ExcelBook.Worksheets(1).Cells(i, 1).Value = ActiveDocument.Words(i).Text '先ほど作ったブックに転記
Next
ExcelBook.SaveAs ThisDocument.Path + "\単語頻度分析結果.xlsx" '保存
ExcelApp.Quit 'Excelの終了
End Sub
少し解説をすると、WordからExcelを呼び出すためにExcelオブジェクト(ExcelやWordは各機能を持った集合体である”モノ”)として呼び出します。転記するExcelファイルを作成したら、次はWordに書かれている文章を分析して、単語ごとにExcelに一行ずつ転記していきます。最後に保存して終了です。分析の工程はActiveDocument.Words(i).Textで行われています。プログラムを読めばなんとなくわかるとは思いますが、全部の単語の数だけループして、そのi番目の単語を切り出しているだけです。
実行するとWordファイルを保存したフォルダと同じ場所に「単語頻度分析結果.xlsx」というExcelファイルがあるはずです。それを開きます。
A列に分かち書きされた単語が入っていますのでカウントしていきます。
ぱっと思いつく方法として二通りのやり方があるので、それぞれ紹介していきます。
【ピボットテーブルを使う方法】
A列の一番上に一行追加して、「単語」とヘッダーを付けておきます。
A列のどこか(ここではA1)を選択した状態でホームタブにあるデータ分析をクリックします。
「ピボットグラフの挿入」をクリックすると分析が終了します。
グラフが要らない場合は、一つ上の「ピボットテーブルの挿入」をクリックします。
簡単ですね!
【数式】
数式で個数を調べる場合は、UNIQUE関数とCOUNTIF関数を用います。
C1セルに次の式を入力します。
=UNIQUE(A:A)
C列を列選択し、コピーからの値貼り付けを行います。
D1セルに次の式を入力します。
=COUNTIF(A:A,C1)
下までコピーします。全部作業するとこんな感じになります。
D列のどこか(ここではD1)を選択した状態でデータタブから並べ替えの左のZAを選択します。
さて、この分析結果から何がわかるでしょうか?句読点や助詞は除くと、「Excel」や「資料」「業務」といった単語が見えます。この記事は「Excel」で「資料」や「業務」に関係することを書いた記事なのだろうなと推定できるわけです。アンケートの場合は、使用者の興味の範囲を探るなどにも使えますね!
以上簡単ですが、WordとExcelを使って単語頻度分析を行う方法を紹介しました。何かの役に立てば幸いです。最後までお付き合いくださりありがとうございました。また別の記事でお会いしましょう!