ユーザ用ツール

サイト用ツール


korean:mecab:howto

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
korean:mecab:howto [2015/10/12 17:17] – 外部編集 127.0.0.1korean:mecab:howto [2016/05/15 21:57] (現在) – [21世紀世宗計画のコーパス形式をシミュレート] yoshi
行 29: 行 29:
 HanDicは,UTF-8エンコーディングされたテキストを入力として形態素解析を行います.また,入力は通常のハングル(Hangul Syllables「ハングル音節文字」領域の文字,いわゆる「完成型ハングル」)ではなく,初声・中声・終声の字母に分解した入力(Hangul Jamo「ハングル字母」領域の文字)である必要があります.例えば完成型ハングルの「몸」(U+BAB8)は,字母に分解すると「ㅁ」(U+1106)「ㅗ」(U+1169)「ㅁ」(U+11B7)となります. 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|ダウンロードサイト]]).+こうした字母への分解は,任意のスクリプトを使って行っても構いません.な,本プロジェクトではPerlを用いたスクリプト''k2jamo.pl''を作成し,配布しています([[https://osdn.jp/projects/handic/releases/63505|ダウンロードサイト]]).
  
-''k2jamo.pl''を使って''input.txt''(例)を解析する場合:+コマンドラインやターミナルで,''k2jamo.pl''を使って''input.txt''(例)を解析する場合:
  
 <code bash> <code bash>
-perl k2jamo.pl input.txt | mecab -d C:\Users\username\dicdir\handic+perl k2jamo.pl input.txt | mecab -d C:\Users\username\dicdir\handic 
 +</code> 
 + 
 +あるいはコマンドラインやターミナルで直接入力をする場合: 
 + 
 +<code bash> 
 +> echo "겨울 방학 때 뭐 했어요?" | perl k2jamo.pl | mecab -d C:\Users\username\dicdir\handic
 </code> </code>
  
 のように行うことができます. のように行うことができます.
 +
 +====== 便利な使い方 ======
 +
 +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
 +</code>
 +
 +結果(延世大学校の韓国語読解テキストを分析した結果のうち,''head -n 10''で最初の10行を表示):
 +
 +<code text>
 +   4266 .       Symbol-ピリオド
 +   2377 다      Ending-語尾-終止形
 +   2374 을      Ending-助詞-対格
 +   2306 ㄴ      Ending-語尾-連体形
 +   2267 ㅆ      Prefinal-過去
 +   2039 에      Ending-助詞-処格
 +   1729 는      Ending-語尾-連体形
 +   1662 이      Ending-助詞-主格
 +   1543 는      Ending-助詞-題目
 +   1522 하다02  Suffix-動詞派生
 +</code>
 +
 +===== 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;'
 +</code>
 +
 +結果:
 +<code text>
 +좋으/VA+ㄴ/ETM
 +결과/NNG+가/JKS
 +나와/VV+ㅆ으/EP+면/EC
 +좋/VA+겠/EP+습니다/EF+./SF
 +</code>
 +
 +21世紀世宗計画の지능형 형태소 분석기(知能型形態素解析器)による解析結果:
 +{{:korean:mecab:スクリーンショット_2016-05-15_1.28.54.png|}}
 +
 +基本形で表示する場合には,上記のコマンドの中で,''%f[6]''とある部分を''%f[**5**]''に変えてください.結果は
 +<code text>
 +좋다01/VA+ㄴ/ETM
 +결과02/NNG+가/JKS
 +나오다/VV+ㅆ/EP+면/EC
 +좋다01/VA+겠/EP+습니다/EF+./SF
 +</code>
 +となります.
  
  {{indexmenu_n>29}}  {{indexmenu_n>29}}
korean/mecab/howto.1444637820.txt.gz · 最終更新: 2016/01/12 22:43 (外部編集)