荷物持ちでも構わない

文系大学4年生からデータサイエンティストを目指して頑張りつつ、書きたいことを書きたいときに書きたいだけ書く、ルール無用雑記ブログ。

MENU

KHCoderを使って文章の形態素解析とクラスタリングをやってみた

卒論の研究のためにテキストマイニングをマスターする必要があったので、今日はそのための勉強をしていた。

とりあえずタイトルの通り、文章を形態素解析してそれを元にクラスタリングするところまではできたので、その方法をまとめて記事にしようと思う。

ちなみに参考にした本はこれ↓。より深く知りたい人はこの本を読んでほしい。

Text Mining Maniax: フリーソフトで始める日本語計量テキスト分析

Text Mining Maniax: フリーソフトで始める日本語計量テキスト分析

 

テキストマイニングと形態素解析とは?

そもそもテキストマイニングと形態素解析とは何なのか。

普通に暮らしているだけではまず耳にすることのない単語だと思う。

テキストマイニング」というのはつまり、「統計学の手法を使って文章を定量的に分析すること」である。

普通、統計学で扱うのは数字でできたデータだが、テキストマイニングでは数字ではなく文章を分析対象として扱う。

とは言っても、文章を定量的に分析するとはどういうことなのか?となるのは当然の疑問。

そこで登場するのが「形態素解析」である。

形態素解析とは、「文章を品詞ごとに分解し、一つの長い文章からバラバラの単語の集まりに変えること」を指す。

つまり、形態素解析によって長い文章を細かい単語に分解し、その単語の内容や出現率、組み合わせなどを分析することで、本来定量的に分析するのが難しい文章を定量的に分析する手法が、テキストマイニングなのだ。

僕は卒論のテーマの関係上、秋までにこのテキストマイニングを完璧にマスターしなければならない。

我ながら無茶なテーマを決めてしまったと後悔しているが、決まってしまったものは仕方がない。

 

テキストマイニング用の無料ツール「KHCoder」

テキストマイニングができる無料ツールはいくつか公開されており、代表的なものに、「KHCoder」と「MeCab(めかぶ)」がある。

実はMeCabの方は「RMeCab」というRの中でMeCabを動かすことの出来るパッケージが開発されており、使用経験もあるのだが、

今回使うのはMeCabではなく、KHCoderの方。

MeCabではダメなのかと言うとそんなこともないのだが、今回やる作業はKHCoderの方が楽そうだったのでKHCoderを使ってみた。

ちなみにKHCoderの公式サイトはこちら↓

KH Coder: 計量テキスト分析・テキストマイニングのためのフリーソフトウェア

導入方法などは今回は割愛するけれども、バージョン3(α版)とバージョン2(安定版)の2つが公開されており、

僕がいろいろ試行錯誤してみた結果、なぜかバージョン3ではうまく動作してくれなかったので安定版のバージョン2を使っていく。

 

KHCoderで分析する文章として各新聞社の社説を使う

冒頭で紹介した参考図書に従い、今回はKHCoderで分析する文章として、各新聞社が公式サイトで公開している「社説」を使うことにした。

その中でも、朝日新聞、中日新聞、毎日新聞の3社から、それぞれ最新の3回分の社説を拝借し、windowsのメモ帳にまとめた。

KHCoderのルールとして、文章の章題などにはHTMLの見出しタグ(h1~h5)をつけることで、文章を階層構造化してやる必要があるため、今回もそのルールに従って文章を加工した。

具体的には以下の通り。

<h1>朝日新聞1</h1>
...
<h1>朝日新聞2</h1>
...
...
<h1>毎日新聞3</h1>
...

こんな感じでHTMLタグの見出しをつけてやり、9回分の社説を一つのテキストファイルにまとめたものを、KHCoderの分析用ファイルとして準備する。

 

実際にできたものがこんな感じ↓

f:id:messyer813:20180830203410p:plain

KHCoderで形態素解析とクラスタリングをする方法

分析用のテキストファイルができたら、ようやくKHCoderの出番である。

まずはKHCoderの本体を起動し、ツールバーの「プロジェクト」→「新規」から、分析用に作ったテキストファイルを読み込んでやる。

f:id:messyer813:20180830203902p:plain

 

また、同時に、「プロジェクト」→「設定」から、「語を抽出する方法」として「MeCab」を選択する。

f:id:messyer813:20180830204038p:plain

MeCabのインストールが済んでいない人は、MeCab公式サイトからインストールしよう。

MeCab: Yet Another Part-of-Speech and Morphological Analyzer

KHCoderによる前処理(形態素解析)

テキストファイルの読み込みと設定が終わったら、さっそく形態素解析をしよう。

まずは、ツールバーの「前処理」→「分析対象ファイルのチェック」から、分析に使うテキストファイルに異常がないかを確認する。

異常があるとエラーメッセージが出るので、それに従ってテキストファイルを修正する。

異常が無ければ、同じくツールバーの「前処理」→「前処理の実行」を選択することで、自動で形態素解析をやってくれる。

f:id:messyer813:20180830204508p:plain

今回の例ではこんな感じ。

形態素解析によって抽出された単語や文の数を教えてくれる。

この前処理によって分解された単語の集まりを元にして、クラスタリングを行う。

KHCoderによる文章のクラスタリング

形態素解析までできたので、あとはクラスタリングを行うだけ。

具体的なやり方としては、ツールバーから、「ツール」→「文書」→「クラスター分析」を選択する。

するとクラスター分析用のウィンドウが開くので、ここで細かい設定をする。

f:id:messyer813:20180830205048p:plain

詳しい説明は省くけれども、参考図書によれば、集計単位はH1、クラスター分析の手法はWard法、距離はEuclid、標準化は文書ごと、値はTF-IDFにするのがいいとのことなので、完全にそれに従う形で設定する。

語の取捨選択やクラスター数は、実際に行う分析に合わせて設定しよう。

設定ができたら、「OK」を押してクラスター分析を実行する。

 

f:id:messyer813:20180830205621p:plain

すると、こんな感じでクラスター分析の結果が出力される。

今回はクラスター数を4つに設定したので、9回分の社説が4つのクラスターに分類されている。

 

実際にどれがどのクラスターに入っているのかを見るには、「プロット」をクリックするとデンドログラムが表示される。

f:id:messyer813:20180830205835p:plain

 

社説番号 タイトル クラスター
朝日新聞3 障害者雇用 許せぬ、でたらめ横行 1
中日新聞3 障害者「水増し」 解明なくして信頼なし 1
朝日新聞1 介護セクハラ 深刻な現実、対策急げ 2
朝日新聞2 防災の日 大都市水害への備えも 2
中日新聞1 病院で熱中症か 命の軽視 疑念拭えず 2
毎日新聞3 地方銀行の経営統合 「より大きく」が解なのか 2
毎日新聞2 自民が総裁選報道で要請 介入の前に公平な選挙を 3
中日新聞2 追悼さくらさん 朗らかに描いた「日常」 4
毎日新聞1 小池都知事の追悼文見送り 既成事実化は許されない 4

デンドログラムを元に、それぞれの社説にクラスター番号を割り振り、クラスター番号でソートした表がこれ。

タイトルとクラスター番号を照らし合わせると、クラスター1とクラスター4は、明らかにそれぞれ「障害」「追悼」という単語に引きずられているのがよくわかる。

クラスター3は、唯一の政治に関する話題なので、政治クラスターとして作られた感じだろうか。

問題なのはクラスター2で、完全に「その他」枠になってしまっている。

まあ今回は単なるテストなので別にいいのだが、本番でこういう変なクラスターができてしまうと困るので、ちゃんとクラスター数やクラスタリングの手法などを調整して綺麗にクラスタリングができるようにしておかなければいけない。

 

まとめ

テキストマイニング用無料ツールの「KHCoder」を使って実際に形態素解析とクラスタリングをやってみたという記事でした。

最初はバージョン3(α版)を使っていたもののなぜかうまく動作せず、バージョン2(安定版)で試行錯誤してみた結果うまくクラスタリングができるようになったので、バージョン2を使う方がいいのかもしれない。

最終的には、RでツイッターのAPIを叩いてツイートを取得し、KHCoderで形態素解析とクラスタリングをして、その結果を使って重回帰分析をするというかなり複雑な作業に取り組まなければならないので、今から少しずつテキストマイニングについての理解を深めていこうと思う。

Text Mining Maniax: フリーソフトで始める日本語計量テキスト分析

Text Mining Maniax: フリーソフトで始める日本語計量テキスト分析

 
Rによるスクレイピング入門

Rによるスクレイピング入門

  • 作者: 石田基広,市川太祐,瓜生真也,湯谷啓明
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2017/03/27
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (2件) を見る