= !HanDicの使い方 コンパイル済み辞書の場合,ダウンロードしたファイルを任意の場所に解凍して,以下の方法で辞書を指定します(辞書を{{{C:\Users\username\dicdir\handic}}}に解凍した場合). == 辞書を実行時に指定する !MeCabの{{{-d}}}オプションで!HanDic辞書ファイルのあるディレクトリを指定します. {{{ code bash mecab -d C:\Users\username\dicdir\handic }}} この方法では,実行するたびに辞書を指定する必要があります. == 辞書を設定ファイルで指定する ホームディレクトリに {{{.mecabrc}}} を作成して,{{{dicdir}}} に!HanDic辞書ファイルのあるディレクトリを記述します. {{{.mecabrc}}}に以下の1行を記述: {{{ code dicdir = C:\Users\username\dicdir\handic }}} この方法では常に!HanDicを使って解析することになります. == 入力を与える !HanDicは,UTF-8エンコーディングされたテキストを入力として形態素解析を行います.また,入力は通常のハングル(Hangul Syllables「ハングル音節文字」領域の文字,いわゆる「完成型ハングル」)ではなく,初声・中声・終声の字母に分解した入力(Hangul Jamo「ハングル字母」領域の文字)である必要があります.例えば完成型ハングルの「몸」(U+BAB8)は,字母に分解すると「ㅁ」(U+1106)「ㅗ」(U+1169)「ㅁ」(U+11B7)となります. こうした字母への分解は,任意のスクリプトを使って行っても構いません.なお,本プロジェクトではPerlを用いたスクリプト''k2jamo.pl''を作成し,配布しています([https://osdn.jp/projects/handic/releases/63505 ダウンロードサイト]). コマンドラインやターミナルで,{{{k2jamo.pl}}}を使って{{{input.txt}}}(例)を解析する場合: {{{ code bash perl k2jamo.pl input.txt | mecab -d C:\Users\username\dicdir\handic }}} あるいはコマンドラインやターミナルで直接入力をする場合: {{{ code bash echo "겨울 방학 때 뭐 했어요?" | perl k2jamo.pl | mecab -d C:\Users\username\dicdir\handic }}} のように行うことができます. = 便利な使い方 !MeCabによる[http://taku910.github.io/mecab/format.html 出力の制御]とコマンドを組み合わせて,様々な結果を得ることができます.いずれも!HanDicが現在のディレクトリ以下の{{{dic}}}ディレクトリにあり,{{{k2jamo.pl}}}と対象のファイル{{{input.txt}}}が現在のディレクトリにあると仮定しています. === 基本形を基にした頻度の表示 [https://www.oreilly.co.jp/books/9784873117416/ 『コマンドラインで始めるデータサイエンス』]で紹介されていた方法をアレンジしたものです. {{{ code bash perl k2jamo.pl input.txt | \ mecab -d dic/ --node-format="%f[5]\t%F-[0,1,2]\n" --unk-format="%m\tUNK\n" --eos-format="" | \ sort | \ uniq -c | \ sort -nr }}} 結果(延世大学校の韓国語読解テキストを分析した結果のうち,{{{head -n 10}}}で最初の10行を表示): {{{ pre 4266 . Symbol-ピリオド 2377 다 Ending-語尾-終止形 2374 을 Ending-助詞-対格 2306 ㄴ Ending-語尾-連体形 2267 ㅆ Prefinal-過去 2039 에 Ending-助詞-処格 1729 는 Ending-語尾-連体形 1662 이 Ending-助詞-主格 1543 는 Ending-助詞-題目 1522 하다02 Suffix-動詞派生 }}} === 21世紀世宗計画のコーパス形式をシミュレート 21世紀世宗計画の形態素解析済みコーパス(형태 분석 말뭉치)のような出力を得ることができます.形態素ごとに「+」を出力し,文節末の「+」を後からPerlで消す,というようにしています.もっとスマートな方法があるかと思います. {{{ code bash echo "좋은 결과가 나왔으면 좋겠습니다." | \ perl k2jamo.pl | \ mecab -d dic/ -F"%pS%f[6]/%f[10]+" -U"%M/UNK" -E"\n" | \ perl -pe 's/\+\s/\n/g;' }}} 結果: {{{ pre 좋으/VA+ㄴ/ETM 결과/NNG+가/JKS 나와/VV+ㅆ으/EP+면/EC 좋/VA+겠/EP+습니다/EF+./SF }}} 基本形で表示する場合には,上記のコマンドの中で,{{{%f[6]}}}とある部分を{{{%f[5]}}}に変えてください.結果は {{{ pre 좋다01/VA+ㄴ/ETM 결과02/NNG+가/JKS 나오다/VV+ㅆ/EP+면/EC 좋다01/VA+겠/EP+습니다/EF+./SF }}} となります.