最新リリース情報

handic-mecab (20230109)2023-01-09 22:24
mkhandic-mecab (0.2)2022-03-14 22:33
tools (mecab-k2alpha)2019-10-03 21:38

初めての方へ

関連情報

한국어 문서

最近の更新 (Recent Changes)

2023-01-09
2022-01-31
2020-02-08
2019-10-03
2018-05-13
2018-05-01
2018-04-30

HanDicの使い方

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

辞書の指定

実行時に指定する

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

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

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

設定ファイルで指定する

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

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

  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ダウンロード)とPython用スクリプトpy_k2jamo.pyダウンロード)を作成し,配布しています.

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

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

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

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

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

便利な使い方

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

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

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

  1. perl k2jamo.pl input.txt | \
  2. mecab -d dic/ --node-format="%f[5]\t%F-[0,1,2]\n" --unk-format="%m\tUNK\n" --eos-format="" | \
  3. sort | \
  4. uniq -c | \
  5. 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で消す,というようにしています.もっとスマートな方法があるかと思います.

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

結果:

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

参考(지능형 형태소분석기の解析結果):

2016-05-15_1.28.54.png

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

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

となります.