サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
mecab.googlecode.com
概要 単語辞書の構造を理解することで, MeCab を汎用的なテキスト変換ツールとして利用することができます. 例えば, ひらがな to カタカナ変換, ローマ字 to ひらがな変換, Auto Link等を MeCab だけで実行できます ファイル 単語辞書を構築するには, 最低以下のファイルを作成する必要があります. *.csv ファイル (単語辞書) matrix.def (連接表) unk.def (未知語用品詞定義) char.def (未知語の文字定義) dicrc (設定ファイル) *.csv ファイル 単語辞書です エントリは, 以下のような CSV で追加します. test,1223,1223,6058,foo,bar,baz 最初の4つは必須エントリで, それぞれ 表層形 左文脈ID (単語を左から見たときの文脈 ID) 右文脈ID (単語を右から見たときの文脈 ID)
概要 辞書への単語追加には, 二つの方法があります. システム辞書への追加 ユーザ辞書への追加 システム辞書への追加 辞書更新が頻繁でないときや, 解析速度を落としたくない時は, 直接 システム辞書を変更するのがよいでしょう. mecab-ipadic があるディレクトリに移動 foo.csv というファイルを作成 (拡張子が .csv なら何でも可) foo.csv に単語を追加 辞書の再コンパイル + インストール % /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t euc-jp % su # make install -f charset: CSVの文字コード -t charset: バイナリ辞書の文字コード 例: utf-8の辞書を作成する例 % /usr/local/libexec/mecab/mecab-dict-
出力フォーマット 概要 MeCab は, ChaSen と同様, 出力のフォーマットを比較的自由に再定義することができます. また, 設定ファイルにフォーマットを複数記述しておき, 実行時にそれらを 切り変えることが可能です. これは, MeCab 独自の機能です. 出力フォーマットの指定 以下の 3つ出力フォーマットを変更することができます. node: 1つの形態素を出力, デフォルトは空文字 unk: 1つの未知語形態素を出力, デフォルトは node と同一フォーマット bos: 形態素解析の結果に先だって出力 (header 的役割), デフォルトは空文字 eos: 形態素解析の結果の後に出力 (footer 的役割), デフォルトは "EOS\n" eon: N-best出力で, N-Bestの出力が終了したときに出力, デフォルトは空文字列 明示的に指定されない場合, それぞ
概要 学習用コーパスからパラメータ(コスト値)を推定することができます. MeCab 自身は品詞体系に非依存な設計になっているため, 独自の品詞体系, 辞書, コーパスに基づく解析器を作成することができます. パラメータ推定には Conditinoal Random Fields (CRF) を使っています. 処理の流れ データフロー図は次のようになります. パラメータ推定には以下のサブタスクがあります. Seed辞書の準備 設定ファイルの準備 dicrc char.def unk.def rewrite.def feature.def 学習用コーパスの準備 学習用バイナリ辞書の作成 CRF パラメータの学習 配布用辞書の作成 解析用バイナリ辞書の作成 評価 再学習 それぞれ順に説明していきます. Seed辞書の準備 MeCabの辞書は CSV で記述されます. Seed 辞書と配
概要 各種スクリプト言語 (perl, ruby, python, Java) から, MeCab が提供する形態素解析の機能を利用可能です. 各バインディングは SWIG というプログラ ムを用いて, 自動生成されています. SWIG がサポートする他の言語も 生成可能だと思われますが, 現在は, 作者の管理できる範囲内ということで, 上記の4つの言語のみを提供しております. インストール 各言語バイディングのインストール方法は, perl/README, ruby/README, python/README, java/README を御覧下さい. とりあえず解析する MeCab::Tagger というクラスのインスタンスを生成し, parse (もしくは parseToString) というメソッドを呼ぶことで, 解析結果が文字列として取得できます. MeCab::Tagger のコ
制約付き解析(部分解析) 概要 入力文の一部の形態素情報が既知である、あるいは境界がわかっているときに、 それを満たすように解析する機能です。 たとえば、「にわにはにわにわとりがいる。」という文に対して、 「はにわ」の部分が名詞であるとか、「にわとり」の部分が一つの形態素 であるというように指定した上で解析することができます。このとき、 制約に反する4文字目の「は」が単独で形態素となったり、「にわとり」が「にわ」と「とり」 に分割されるような解析候補は排除されます。 入力フォーマット MeCabのデフォルト出力と同じようなフォーマットで制約を記述します。 MeCabは -p (--partial) オプション付きで起動する必要があります。 各行は以下のいずれかに該当します. 文断片 文の断片です。制約がないときと同じように通常の形態素解析が行われます。ただし文断片をまたぐような 形態素は
品詞IDの定義 概要 出力される素性(品詞)に任意の数値ID を付与することができます. 通常, 素性は文字列として表現されますが, 機械処理には向いていません. 数値ID に変換することで, 機械処理が容易になります. 素性にどの ID を割りあてるかは, ユーザが自由に定義することができます. 設定ファイル 配布辞書のディレクトリにある pos-id.def を変更します. 1行が1つのマッピングルールに対応します. 各パターンは以下のフォーマットで 記述します. マッチパターン ID という形式で記述します. マッピングルールは先頭から順に走査されて 最初にマッチしたものが使われます. マッチパターンでは簡単な正規表現がを使うことができます. *: すべての文字列にマッチ (AB|CD|EF): AB もしくは CD もしくは EF にマッチ AB: 文字列 AB のみに完全マッチ
形態素解析の歴史 オープンな形態素解析器として Juman, ChaSen が存在する. それぞれの 基本的な開発理念は以下である Juman Juman 以前の商用的に配布されていた形態素解析器は, 辞書や品詞体系 連接規則はほぼ固定されており, ユーザ自身自由に定義できなかった. Juman は これらの定義すべて外部に出し自由な定義が可能になった. 辞書は比較的入手しやすいが, 連接コストや単語生起コストの定義は 人手によって行わざるをえなかった. 解析ミスを発見するたびに副作用が無い範 囲で連接コストを修正する必要があり, 開発コストが大きい. また, Juman は日本語の形態素解析として開発されていたので, 未知語処理が日本語に特化されており, 未知語処理の定義を 自分で与えることはできない. また, 品詞は2階層までに固定されており, 品詞体系には一種の制限がある. ChaS
概要 学習用コーパスからパラメータ(コスト値)を推定することができます. MeCab 自身は品詞体系に非依存な設計になっているため, 独自の品詞体系, 辞書, コーパスに基づく解析器を作成することができます. パラメータ推定には Conditinoal Random Fields (CRF) を使っています. 処理の流れ データフロー図は次のようになります. パラメータ推定には以下のサブタスクがあります. Seed辞書の準備 設定ファイルの準備 dicrc char.def unk.def rewrite.def feature.def 学習用コーパスの準備 学習用バイナリ辞書の作成 CRF パラメータの学習 配布用辞書の作成 解析用バイナリ辞書の作成 評価 それぞれ順に説明していきます. Seed辞書の準備 MeCabの辞書は CSV で記述されます. Seed 辞書と配布辞書の
MeCab ライブラリ MeCabはC/C++のライブラリを提供しています。また, SWIGを通して Perl/Ruby/Python から利用することも可能です。 シングルスレッド環境で単純な形態素解析を行う場合は、MeCab::Tagger クラスのみでほとんどのことが行えます。マルチスレッド環境で1つの辞書を共有しながら形態素解析を行いたい場合や、MeCabの辞書を解析中にアップデートするなど、高度な応用には MeCab::Taggerに加えて、 MeCab::Model, MeCab::Lattice クラスを使用します。 C++のAPIセットのドキュメントはこちらを参照ください。 CのAPIセットはこちらを参照ください。 C++ サンプルコード シングルスレッド環境 (MeCab::Tagger) Taggerオブジェクトを生成すると、1つの辞書オブジェクトが生成されます。 #i
MeCab に至るまでの形態素解析器開発の歴史等はこちらをご覧ください メーリングリスト 一般ユーザ向けメーリングリスト 開発者向けメーリングリスト 新着情報 2012-01-27 MeCab 0.993 MeCab::Tagger::formatNode()が正しく動いていなかった問題の修正 スタックの消費を抑えるため、ほとんどのローカル変数(配列)をヒープ上に退避 2012-01-14 MeCab 0.992 ソースコード中のTypoの修正 2012-01-14 MeCab 0.991 空文字列もしくは空白文字列を解析した時に解析エラーとなる問題を修正 ユーザ辞書の作成に失敗する場合がある問題を修正 2011-12-24 MeCab 0.99 MeCab::Model, MeCab::Lattice クラスを追加 マルチスレッド環境でのユーザビリティの向上。複数スレッドが同一
このページを最初にブックマークしてみませんか?
『mecab.googlecode.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く