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
となります.