WorksApplications/Sudachi

A Japanese Tokenizer for Business

Sudachi – 日語形態素分析器

Sudachi 是一個使用 Java 編寫的 日語分詞器 / 形態素分析器。它接收原始日語文本,並輸出詞素序列,同時附帶詞性標籤、字典(基本)形式、讀音以及可選的額外資訊。該專案專注於三個核心任務:

  1. 分段 (Segmentation) – 使用三種可選模式(A = 最短單位、B = 中間單位、C = 命名實體風格單位)將句子拆分為單詞(或子詞)。
  2. 詞性標籤 (POS tagging) – 分配詳細的詞性標籤。
  3. 正規化 (Normalization) – 統一拼寫變體、字體差異、拼寫錯誤和縮寫形式。

為什麼選擇 Sudachi?

  • 多種長度分段 讓您可以在細粒度 (A)、中等粒度 (B) 或實體導向 (C) 的拆分之間切換,這對於搜尋、NLP 流水線或下游模型非常有用。
  • 大型詞典 基於 UniDic 並結合 NEologd 擴展,提供三種預裝字典(small、core、full)以平衡記憶體與覆蓋率。
  • 插件架構 允許在不更改核心代碼的情況下,進行自定義輸入正規化、OOV 處理、單詞連接規則和路徑修改。
  • 用戶字典 可以在運行時添加,允許使用特定領域的詞彙。
  • 整合:提供命令列工具、Maven 相容的 Java 函式庫,以及 Elasticsearch 的配套插件,此外還有 Python 和 Rust 的移植版本。

入門指南

  1. 安裝 – 按照 docs/tutorial.md 中的教程進行下載預建字典並執行 JAR。
  2. 命令列使用 – 範例:
    echo 東京都へ行く | java -jar sudachi.jar -m A   # short‑unit split
    
    選項包括 -t(空格分隔輸出)、-a(額外欄位)、--print-reading 以及透過 --systemDict 選擇字典。
  3. 函式庫使用 – 添加 Maven 依賴:
    <dependency>
      <groupId>com.worksap.nlp</groupId>
      <artifactId>sudachi</artifactId>
      <version>0.5.3</version>
    </dependency>
    
    然後使用 Java API(參見 Javadoc)進行程式化分詞。

插件與擴展性

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 流水線以及任何需要精確日語單詞分段和詞性標籤的應用程式。

相關

  • 專案
  • 專案
  • 專案
  • 專案