2019年5月1日水曜日

KHコーダ(KHcoder)でテキストマイニング  ~ 抽出語の作成まで ~


本稿の作成に当たってはKHコーダーのマニュアルを参考にさせていただいた。KHコーダーの開発者の樋口耕一先生に謝辞を表したいと思う。また著作権の関係から詳細な内容は割愛した(無断転載に当たる可能性があるので)。興味がある方はKHコーダーのマニュアルを一読されることをお勧めする。
ちなみに、現時点でのKHコーダーのバージョンは3.Alpha.16である。


KHコーダ(KHcoder)は英語にも対応しているらしい。他の外国語も対応しているようだが英語以外は試作段階のようだ。
今回は英語と日本語の両方で同じ題材を使用するので、その違いが分かるかも。

「単純なテキストファイルを使用して分析の一歩目を踏み出す」という目的のため、今回は小説を使ってKHコーダの一般的な使い方で分析を行う。


通常テキストマイニングは外部変数などを使うことが多い。
外部変数というのは、例えばアンケート等で質問に対する回答に付随する属性等で性別であったり年齢、住んでいる場所などの情報である。
今回は外部変数を付与する必要は無いのでテキストのみで行う。

余談だが、KHコーダではテキスト形式だけでなくエクセルファイルやCSV形式のファイルも扱えるらしい。

KHコーダでテキストマイニングを始める前に英文では確認することがある。ダウンロードしたテキストファイル中には、体裁を整えるため右端を改行で体裁を整えてある場合があり、この場合はこの改行を削除する必要がある。
その理由は、KHコーダでは対象の文章を「文」単位と「段落」単位で分析を行うことによる。「文」の場合は句読点で、「段落」の場合は改行で判断する。そのため段落の終わり以外で改行がなされていると「段落」が不正確になり正確な分析ができない可能性がある。そのため不必要な改行を削除する。

その方法はコチラで説明しているので参考にして欲しい。


1.プロジェクトの作成
KHコーダではまず「プロジェクト」の作成から始める。初めての場合は新規作成になる。それからファイルを開く。この時、日本語か英語の選択ができる。

日本語の場合、上部メニューの「前処理」から「分析対象ファイルのチェック」を選んで実行すると分析対象テキストをそのま読込できるのかどうかををチェックしてくれる。
英語の場合は「分析対象ファイルのチェック」はアクティブになっていないので使用できないようだ。まあ英文は26文字しかなく日本語のように多数の文字数は無いので大きな問題無いだろう。


2.前処理の実行
次に「前処理の実行」をクリックする。この「前処理の実行」は対象の文章を分析するため必ず行う必要がある。

3.抽出語の確認
完了したら、上部メニューの「ツール」→「抽出語」→「抽出語リスト」で抽出語の確認ができる。
「抽出語リスト」のみでも抽出語の確認ができるが、パソコンにエクセルが入っている場合には「抽出語リスト(Excel出力)」も行った方が良い。「抽出語リスト」だけでは出現回数が多い順で表示されるため「フィルタ設定」でどの品詞を表示させるか判断が難しいが、「抽出語リスト(Excel出力)」で表示させると抽出語リストが品詞毎に全てエクセルで表示されるので、その判断がしやすくなる。

日本語の場合、フィルタの「既定値」の設定では一般的に用いられるが特徴的な意味を持たない語を省いてある(「する」「ある」「ない」などの語)。
これは日本語だけの設定であり、英語でも「既定値」ボタンは表示されるが押してもフィルタ設定に変化は無い。
以下説明する強制抽出した語は日本語・英語共に「タグ(TAG)」に分類される。

また抽出語リストを確認すると、目的とする語が抽出されていない場合がある。
その時はまず「前処理」→「複合語の抽出」で複合語を抽出する。
それから「前処理」→「語の取捨選択」で表示される画面で、対象の語を「強制抽出」する。「複合語の抽出」でも抽出されなかった場合は「語の取捨選択」で直接入力する。


ここまでは日本語と英語ともにほぼ同じように処理は行える。
しかし英語では別の注意が必要になる。
それは「stop words」の処理で、stop words処理とは英語において頻繁に使用されるが特徴的な意味をあまり持たない語(be動詞など)を表示させない処理のことである。

設定方法は上部のメニューから「プロジェクト」→「設定」をクリックすれば設定画面が表示されるので「stop words」の「設定」ボタンをクリックして設定する。今回はtutorial_en フォルダに同梱されているstop words のリストサンプル(stopwords_sample_en.txt)をそのまま用いた。


図1.KHcoderの設定画面.

結局のところ、日本語の場合はフィルタ設定の「既定値」で、英語の場合は stop words で同じような処理を行うイメージだろう。

そして各種の設定変更を行った場合、必ず再度「前処理の実行」を行うこと。そうしないと変更内容は分析結果に反映されない。

0 件のコメント:

コメントを投稿