目次

HanDicの使い方

コンパイル済み辞書の場合,ダウンロードしたファイルを任意の場所に解凍して,以下の方法で辞書を指定します(辞書をC:\Users\username\dicdir\handicに解凍した場合).

辞書を実行時に指定する

MeCabの -d オプションでHanDic辞書ファイルのあるディレクトリを指定します.

mecab -d C:\Users\username\dicdir\handic

この方法では,実行するたびに辞書を指定する必要があります.

辞書を設定ファイルで指定する

ホームディレクトリに .mecabrc を作成して,dicdir にHanDic辞書ファイルのあるディレクトリを記述します.

.mecabrcに以下の1行を記述:

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を作成し,配布しています(ダウンロードサイト).

コマンドラインやターミナルで,k2jamo.plを使ってinput.txt(例)を解析する場合:

> perl k2jamo.pl input.txt | mecab -d C:\Users\username\dicdir\handic

あるいはコマンドラインやターミナルで直接入力をする場合:

> echo "겨울 방학 때 뭐 했어요?" | perl k2jamo.pl | mecab -d C:\Users\username\dicdir\handic

のように行うことができます.

便利な使い方

MeCabによる出力の制御とコマンドを組み合わせて,様々な結果を得ることができます.いずれもHanDicが現在のディレクトリ以下のdicディレクトリにあり,k2jamo.plと対象のファイルinput.txtが現在のディレクトリにあると仮定しています.

基本形を基にした頻度の表示

『コマンドラインで始めるデータサイエンス』で紹介されていた方法をアレンジしたものです.

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行を表示):

   4266 .       Symbol-ピリオド
   2377 다      Ending-語尾-終止形
   2374 을      Ending-助詞-対格
   2306 ㄴ      Ending-語尾-連体形
   2267 ㅆ      Prefinal-過去
   2039 에      Ending-助詞-処格
   1729 는      Ending-語尾-連体形
   1662 이      Ending-助詞-主格
   1543 는      Ending-助詞-題目
   1522 하다02  Suffix-動詞派生

21世紀世宗計画のコーパス形式をシミュレート

21世紀世宗計画の形態素解析済みコーパス(형태 분석 말뭉치)のような出力を得ることができます.形態素ごとに「+」を出力し,文節末の「+」を後からPerlで消す,というようにしています.もっとスマートな方法があるかと思います.

echo "좋은 결과가 나왔으면 좋겠습니다." | \
perl k2jamo.pl | \
mecab -d dic/ -F"%pS%f[6]/%f[10]+" -U"%M/UNK" -E"\n" | \
perl -pe 's/\+\s/\n/g;'

結果:

좋으/VA+ㄴ/ETM
결과/NNG+가/JKS
나와/VV+ㅆ으/EP+면/EC
좋/VA+겠/EP+습니다/EF+./SF

21世紀世宗計画の지능형 형태소 분석기(知能型形態素解析器)による解析結果:

基本形で表示する場合には,上記のコマンドの中で,%f[6]とある部分を%f[5]に変えてください.結果は

좋다01/VA+ㄴ/ETM
결과02/NNG+가/JKS
나오다/VV+ㅆ/EP+면/EC
좋다01/VA+겠/EP+습니다/EF+./SF

となります.