====== HanDicをKH Coderで利用する ====== ===== はじめに ===== 立命館大学の[[http://koichi.nihon.to/psnl/|樋口耕一先生]]が開発・公開しておられる,計量テキスト分析のためのフリーソフト「[[http://khc.sourceforge.net/|KH Coder]]」のVer.3にて,HanDicを用いた韓国語の分析が可能になるとのことです.既に[[http://khc.sourceforge.net/dl3.html|アルファ版が公開]]されているので,実際に韓国語の分析を試してみました.以下の内容は,[[http://khc.sourceforge.net/kh_tuto.html|チュートリアル]]に従って,韓国語のデータを分析したものです. ==== 準備するもの ==== 特にありません.[[http://khc.sourceforge.net/dl3.html|アルファ版のダウンロードページ]]へ行き,最新のアルファ版をダウンロードしてください.このページの執筆時点(2015年10月16日)で3.0a-03bが公開されています. なお,Windowsでの使用をおすすめします.MacOSでも使用可能とのことで試してみましたが,設定が大変です.仮想マシンにWindowsをインストールし,そこでKH Coderを利用するのが簡単です. 韓国語を分析するためのHanDicはパッケージに同梱されているため,別途用意する必要はありません.辞書自体はKH Coderのインストールフォルダ内にある''dep/handic''フォルダに置かれています.この辞書を差し替えるだけで,新しいバージョンのHanDicを利用することができます. > ''handic''フォルダ内の''dicrc''に,KH Coderで利用するための設定が追記されているとのことです. ===== データの準備と読み込み ===== 分析対象のデータを用意し,KH Coderを起動して読み込みます.ここでは韓国の歴代大統領のうち,第16代・盧武鉉,第17代・李明博,第18代・朴槿恵各氏の就任スピーチを使用します.データは[[r_howto]]と同じく[[http://www.pa.go.kr/research/index.jsp|대통령기록연구실]],경향신문の[[http://news.khan.co.kr/kh_news/khan_art_view.html?artid=201302251134391&code=910100|記事]]から取得し,1行1文に修正したものです.分かち書きの不統一などは手を入れていませんので,厳密には結果に何か影響があるかもしれませんが,とりあえず試みということでご了承ください. それぞれのテキストを一つのファイルに連結し,各氏のスピーチの前に''

16_노무현

'',''

17_이명박

'',''

18_박근혜

''のような見出しを入れておきます.

16_노무현

盧武鉉氏演説内容 …

17_이명박

李明博氏演説内容 …

18_박근혜

朴槿恵氏演説内容 …
上記のテキストをUTF-8エンコーディングで保存しておきます. KH Coderを起動して,「プロジェクト」メニューから「新規」を選択し,「新規プロジェクト」ダイアログで上記ファイルを選択します.また,「言語」に「韓国語」を指定します.「メモ」欄は分析対象の内容などについて記入しておきます. {{:korean:kh_new.png?direct&300|}} テキストが読み込まれたら,「前処理」メニューから「前処理の実行」を選択します. {{:korean:kh_pre.png?direct&300|}} 前処理が終了したら,様々な分析を行ってみましょう. ===== 頻出する語の抽出 ===== 「ツール」メニューから「抽出語」⇒「抽出語リスト」を実行します.するとオプションを選ぶダイアログが表示されます.ここでは「頻出150語」を選択し,Excelで表示することにしましょう. {{:korean:kh_150words.png?direct&300|}} 上記ダイアログで「OK」を押すと,結果がExcelで表示されます.국민「国民」という語の頻度が最も高くなっています. {{:korean:kh_150words_excel.png?direct&300|}} 全て基本形にまとめて集計・表示されます. ===== 共起ネットワークの作成 ===== 語と語の結びつきを図示する共起ネットワーク図を作成します.「ツール」メニューから,「抽出語」⇒「共起ネットワーク」を選択します. {{:korean:kh_network_dialogue.png?direct&300|}} ==== 語と語の結びつき ==== 以下のようなオプションを設定し,「OK」を押します. {{:korean:kh_network_option_01.png?direct&300|}} 結果は以下のようになります. {{:korean:kh_network_01.png?direct&300|}} 結果表示のウィンドウで「カラー」を「サブグラフ検出(modularity)」とすると,以下のようになったりします. {{:korean:kh_network_02.png?direct&300|}} ==== 語と見出しの結びつき ==== 次は,''

''~''

''で囲った見出しを元に,共起関係の種類を変更してみます.共起ネットワーク作成のオプションを,以下のように設定します.特に右側,「共起ネットワークの設定」中,「共起関係(edge)の種類」を「語-外部変数・見出し」とし,「外部変数・見出し」を「見出し1」としている点に注意してください. {{:korean:kh_network_option_02.png?direct&300|}} {{:korean:kh_network_03.png?direct&300|}} 第16代の盧武鉉氏,第17代の李明博氏との間に共通する項目がないのが興味深いです.設定で「描画数」を100に増やしたところ,협력「協力」,하다01「する」が共通項として出て来ました. ===== 各大統領の特徴語抽出 ===== 各大統領のスピーチから,それぞれに特徴的な語を取り出してみます.事前の準備として,集計に必要な品詞を指定しておきます.デフォルトのままでは助詞や語尾などもカウントされてしまいます.「前処理」メニューから「語の取捨選択」をクリックし,「品詞による語の選択」を以下のように設定して「OK」を押します. {{:korean:kh_h1_list_pre.png?direct&300|}} 次に「ツール」メニューから「外部変数と見出し」をクリックします. {{:korean:kh_h1_list_dialogue.png?direct&300|}} 以下の図のように,左列の「変数リスト」に「h1 見出し1」と表示されているはずです.そこをクリックすると,右列に''

''でマークアップしておいた大統領名が表示されます.右下の「単位」で「文」を選択し,「▽特徴語」から「一覧(Excel形式)」を選択します. {{:korean:kh_h1_list_option.png?direct&300|}} それぞれの大統領のスピーチに特徴的な上位10語が,Excelで表示されます. {{:korean:kh_h1_list_result.png?direct&300|}} ===== 対応分析 ===== 対応分析により,各大統領のスピーチに特徴的な語を,視覚的に表示してみます. 「ツール」メニューから「抽出語」⇒「対応分析」をクリックします.現われる設定ダイアログで,以下のように設定を行います. {{:korean:kh_corres_option.png?direct&300|}} 以下のような結果が表示されます. {{:korean:kh_corres_01.png?direct&300|}} 各大統領について原点から最も離れている語を拾うと,盧武鉉氏が동북「東北」,李明博氏が선진03「先進」,朴槿恵氏が행복02「幸福」という結果になりました.「東北」は동북아「北東アジア」が分析された結果と思われます. ====== メモ ====== ===== ユーザー辞書の指定 ===== [[https://taku910.github.io/mecab/dic.html|単語の追加方法]]などで作成したユーザー辞書を追加して使う場合,KH Coderのインストールフォルダ内にある''dep/handic/dicrc''の末尾に,ユーザー辞書へのパスを追加します.以下の例は,ユーザー辞書''user.dic''が''E:\00Work\02Data\00kodic\dic''にある場合の記述です. userdic = E:/00Work/02Data/00kodic/dic/user.dic この設定は,KH Coderで韓国語を解析する場合にのみ適用されます. ===== 抽出する品詞の追加 ===== 初期設定では,抽出する品詞が普通名詞,固有名詞,形容詞,副詞,動詞に限られており,それ以外の品詞,例えば助詞や語尾などは「その他」に一括して扱われています.これらを別個に抽出したい場合は,品詞を追加して前処理を行います. 品詞を追加するには,''config''フォルダ内の''hinshi_mecab_k''という設定ファイルの末尾に記述を加えます.以下はその例です. 40,JOSA,"Ending-助詞", 41,EOMI,"Ending-語尾", コンマで区切って記述をしますが,最初の数字は品詞IDで,他と重複しない値を設定します.2列目は品詞名,3列目(条件1)は抽出する条件をHanDicの品詞で記述します.条件2は設定していませんので,コンマで終わります. ===== Macで使う場合 ===== ==== 共起ネットワークに必要なパッケージ ==== Rの方で''igraph''パッケージの''1.0.1''をインストールしていたのですが,描画に失敗しました.[[https://cran.r-project.org/src/contrib/Archive/igraph/|CRANのigraphアーカイブ]]からバージョンの''0.5.4-4''をダウンロードして,''~/Desktop''に解凍した場合, install.packages("~/Desktop/igraph/", repos=NULL, type="source") でインストールします.[[http://koichi.nihon.to/cgi-bin/bbs_khn/khcf.cgi?no=1151&reno=1149&oya=1135&mode=msgview|KH Coderの掲示板]]を参考にしました.バージョンの''0.6''以上だと,パッケージインストールの際に''gfortran-4.2''が無いと言われてインストール出来ませんでした. === 新しいバージョンでエラーが出る場合 === igraph 1.1.2,ggplot 2.2.1で共起ネットワークを作成する際, Error: StatEdges was built with an incompatible version of ggproto. Please reinstall the package that provides this extension. というエラーが出る場合には,''ggnetwork''をソースからインストールします. install.packages("ggnetwork", type="source") ==== 対応分析に必要なパッケージ ==== Rで,''maptools''と''ade4''パッケージをインストールします. ==== 階層的クラスター分析に必要なパッケージ ==== Rで,''ggdendro''と''amap''パッケージをインストールします. ==== ヒートマップ作成に必要なパッケージ ==== Rで''pheatmap''をインストールしますが,[[https://cran.r-project.org/web/packages/pheatmap/index.html|CRANのパッケージサイト]]からArchiveへ進み,バージョン''0.7.7''をダウンロードして,インストールします. install.packages("pheatmap_0.7.7.tar.gz", repos=NULL, type="source") Rから直接最新版をインストールすると,描画に失敗します. ====== 参考文献・リンク ====== * [[http://khc.sourceforge.net/kh_tuto.html|KH Coderチュートリアル&ヒント]] * 樋口耕一(2014)『社会調査のための計量テキスト分析―内容分析の継承と発展を目指して―』,ナカニシヤ出版 {{indexmenu_n>203}}