WorksApplications/Sudachi
A Japanese Tokenizer for Business
Sudachi – 日本語形態素解析器
Sudachiは、Javaで記述された日本語のトークナイザー / 形態素解析器です。生の日本語テキストを入力として、形態素のシーケンスとともに、品詞タグ、辞書(基本)形、読み、およびオプションの追加情報を出力します。このプロジェクトは、主に以下の3つのコアタスクに焦点を当てています:
- Segmentation(分かち書き) – 3つの選択可能なモード(A = 最短単位、B = 中間単位、C = 固有名詞スタイル単位)を使用して、文を単語(またはサブ単語)に分割します。
- POS tagging(品詞タグ付け) – 詳細な品詞ラベルを割り当てます。
- Normalization(正規化) – 表記揺れ、文字体系の違い、誤字、および短縮形を統一します。
Why Sudachi?
- Multiple‑length segmentation(複数長分割) により、細粒度(A)、中粒度(B)、またはエンティティ指向(C)の分割を切り替えることができ、これは検索、NLPパイプライン、またはダウンストリームモデルに有用です。
- Large lexicon(大規模辞書) は、UniDicにNEologd拡張を加えたもので構築されており、メモリと網羅性のバランスをとるために3つのプリパッケージ辞書(small, core, full)が用意されています。
- Plugin architecture(プラグイン・アーキテクチャ) により、コアコードを変更することなく、カスタムの入力正規化、OOV(未知語)処理、単語接続ルール、およびパスの変更が可能です。
- User dictionaries(ユーザー辞書) は、実行時に追加でき、ドメイン固有の語彙を扱うことができます。
- Integration(統合): コマンドラインツール、Maven互換のJavaライブラリ、Elasticsearch用のコンパニオンプラグイン、さらにPythonやRustのポートも提供されています。
Getting Started
- Installation(インストール) –
docs/tutorial.mdのチュートリアルに従って、ビルド済みの辞書をダウンロードし、JARを実行してください。 - Command‑line usage(コマンドラインでの使用) – 例:
オプションにはecho 東京都へ行く | java -jar sudachi.jar -m A # short‑unit split-t(スペース区切り出力)、-a(追加フィールド)、--print-reading、および--systemDictによる辞書選択が含まれます。 - Library usage(ライブラリとしての使用) – Mavenの依存関係を追加します:
その後、Java API(Javadocを参照)を使用して、プログラムからトークナイズを行います。<dependency> <groupId>com.worksap.nlp</groupId> <artifactId>sudachi</artifactId> <version>0.5.3</version> </dependency>
Plugins & Extensibility
Sudachiには、いくつかの既製プラグイン(文字正規化、長音正規化、よみがな除去、1文字のOOV処理、MeCab互換のOOV、抑制ルール、数値正規化など)が付属しています。新しいプラグインは、入力テキスト、未知語処理、単語接続コスト、または出力パスの調整など、あらゆる処理段階にフックするように記述できます。
Comparison to Other Japanese Tokenisers
| Feature | Sudachi | MeCab | Kuromoji |
|---|---|---|---|
| Multiple segmentation lengths | ✅ | ❌ | Limited |
| Built‑in normalisation (script, misspelling) | ✅ | ❌ | Limited |
| User‑dictionary stacking | ✅ | ✅ | ❌ |
| Memory efficiency (shared mmap) | Good | Poor | Good |
| Accuracy | Good | Good | Good |
| Speed | Good | Excellent | Good |
Ecosystem
- Elasticsearch plugin –
WorksApplications/elasticsearch-sudachiにより、全文検索エンジンへの統合が可能です。 - Python / Rust ports –
WorksApplications/sudachi.rsは、他の言語のエコシステム向けにネイティブなバインディングを提供します。 - Community – 開発者およびユーザー向けのSlackワークスペースがあります。
License & Citation
SudachiはApache License 2.0の下でリリースされています。研究で使用する場合は、LREC 2018の論文 “Sudachi: a Japanese Tokenizer for Business” を引用してください(BibTeXはREADMEに用意されています)。
In a nutshell: Sudachiは、柔軟なトークナイズ・モード、豊富な辞書リソース、およびプラグイン・システムを備えた、成熟した拡張可能な日本語形態素解析器です。検索エンジン、NLPパイプライン、および正確な日本語の単語分割と品詞タグ付けを必要とするあらゆるアプリケーションに適しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト