NMeCabの位置づけ
NMeCabは、有名かつ優秀なオープンソース形態素解析エンジンであるMeCabを、.NET環境に移植したものです。
オリジナル版MeCabについての詳細はhttp://mecab.sourceforge.net/などを参照してください。
NMeCab開発の目的
完全に.NET Framework CLR上で動作する、形態素解析エンジンのライブラリを用意することが、この開発の目的です。
オリジナル版MeCabに対しては各種言語環境用のラッパーが公開されており、.NETも例外ではありません。しかし、クラウド・RIA・スマートフォンと環境の多様化している現在、Unmanaged codeのまったく使えないケースも増えていくと考え、この開発を始めました。
NMeCabの特徴
- C#言語による純粋な.NET Framework Managed code実装です。(ポインタのためにUnsafe codeは使用します)
- オリジナル版MeCab(0.98)における解析処理アルゴリズムと基本設計を、できるだけ忠実に再現しています。
- 移植の範囲は解析処理部分のみとしています。辞書作成に関する機能は持ちません。独自の辞書が必要な場合は、オリジナル版MeCabで作成してください。
- ライブラリ仕様(API)はオリジナル版MeCabのC++ライブラリに準じます。http://mecab.sourceforge.net/libmecab.html#c++
- GPL・LGPLのデュアルライセンスです。
MeCabのAPIとの主な相違点
- クラス名称を変更しています(名前衝突を避けるため)。
- MeCab::Tagger ⇒ NMeCab.MeCabTagger
- MeCab::Node ⇒ NMeCab.MeCabNode
- MeCabTaggerインスタンス1つで、マルチスレッドからの解析要求に対応します。
- 複数インスタンス間でのリソース共有は行いません(予定)。
- よって、各スレッドごとにインスタンス生成を行うことは避けてください。
- 定数のほとんどをEnumに置き換えています。
- 設定ファイルはmecabrcではなく.configになっています。
改善要望について
ご要望がありましたら、フォーラムなどへお寄せください。可能な範囲で取り入れさせていただきます。