WorksApplications/Sudachi
A Japanese Tokenizer for Business
Sudachi – 日語形態素分析器
Sudachi 是一個使用 Java 編寫的 日語分詞器 / 形態素分析器。它接收原始日語文本,並輸出詞素序列,同時附帶詞性標籤、字典(基本)形式、讀音以及可選的額外資訊。該專案專注於三個核心任務:
- 分段 (Segmentation) – 使用三種可選模式(A = 最短單位、B = 中間單位、C = 命名實體風格單位)將句子拆分為單詞(或子詞)。
- 詞性標籤 (POS tagging) – 分配詳細的詞性標籤。
- 正規化 (Normalization) – 統一拼寫變體、字體差異、拼寫錯誤和縮寫形式。
為什麼選擇 Sudachi?
- 多種長度分段 讓您可以在細粒度 (A)、中等粒度 (B) 或實體導向 (C) 的拆分之間切換,這對於搜尋、NLP 流水線或下游模型非常有用。
- 大型詞典 基於 UniDic 並結合 NEologd 擴展,提供三種預裝字典(small、core、full)以平衡記憶體與覆蓋率。
- 插件架構 允許在不更改核心代碼的情況下,進行自定義輸入正規化、OOV 處理、單詞連接規則和路徑修改。
- 用戶字典 可以在運行時添加,允許使用特定領域的詞彙。
- 整合:提供命令列工具、Maven 相容的 Java 函式庫,以及 Elasticsearch 的配套插件,此外還有 Python 和 Rust 的移植版本。
入門指南
- 安裝 – 按照
docs/tutorial.md中的教程進行下載預建字典並執行 JAR。 - 命令列使用 – 範例:
選項包括echo 東京都へ行く | java -jar sudachi.jar -m A # short‑unit split-t(空格分隔輸出)、-a(額外欄位)、--print-reading以及透過--systemDict選擇字典。 - 函式庫使用 – 添加 Maven 依賴:
然後使用 Java API(參見 Javadoc)進行程式化分詞。<dependency> <groupId>com.worksap.nlp</groupId> <artifactId>sudachi</artifactId> <version>0.5.3</version> </dependency>
插件與擴展性
Sudachi 附帶了數個現成的插件(字元正規化、長音正規化、移除 yomigana、單字元 OOV 處理、MeCab 相容的 OOV、抑制規則、數字正規化等)。開發者可以編寫新插件來掛鉤到任何處理階段:輸入文本、未知詞處理、單詞連接成本或輸出路徑調整。
與其他日語分詞器的比較
| 特性 | Sudachi | MeCab | Kuromoji |
|---|---|---|---|
| 多種分段長度 | ✅ | ❌ | 有限 |
| 內建正規化 (字體, 拼寫錯誤) | ✅ | ❌ | 有限 |
| 用戶字典堆疊 | ✅ | ✅ | ❌ |
| 記憶體效率 (共享 mmap) | 好 | 差 | 好 |
| 準確度 | 好 | 好 | 好 |
| 速度 | 極佳 | 好 | 好 |
生態系統
- Elasticsearch 插件 –
WorksApplications/elasticsearch-sudachi用於全文檢索整合。 - Python / Rust 移植版 –
WorksApplications/sudachi.rs為其他語言生態系統提供原生綁定。 - 社群 – 用於開發者和使用者的 Slack 工作區。
許可證與引用
Sudachi 是根據 Apache License 2.0 發布的。如果您在研究中使用它,請引用 LREC 2018 論文 “Sudachi: a Japanese Tokenizer for Business” (README 中提供了 BibTeX)。
簡而言之: Sudachi 是一個成熟、可擴展的日語形態素分析器,提供靈活的分詞模式、豐富的字典資源和插件系統,使其非常適合搜尋引擎、NLP 流水線以及任何需要精確日語單詞分段和詞性標籤的應用程式。
相關
- 專案
- 專案
- 專案
- 專案