Skip to content

ネイティブ開発 CLI リファレンス

suzume-cli は Suzume のネイティブ開発コマンドです。解析に加えて、辞書のコンパイルと検証、テスト、ベンチマークを提供します。

Python ホイールは、解析に絞った別の suzume コマンドをインストールします。そちらは Python CLIを参照してください。

このページはコマンドの使い方を説明します。バイナリをソースからビルドする方法は ネイティブビルド を参照してください。

CLI 概要

suzume-cli には analyzedicttest の3つのサブコマンドがあり、これに加えてユーティリティコマンドとして versionhelp を備えています。

suzume-cli [command] [options] [arguments]

コマンド:
  analyze     形態素解析(デフォルト)
  dict        辞書管理
  test        検証・テスト
  version     バージョン情報の表示
  help        ヘルプの表示

analyze

日本語テキストをトークナイズします。デフォルトコマンドなので analyze は省略できます。

bash
# 基本的な使い方
suzume-cli "東京スカイツリーに行きました"

# コマンドを明示
suzume-cli analyze "東京スカイツリーに行きました"

# 標準入力から読み込み
echo "東京スカイツリーに行きました" | suzume-cli

出力フォーマット

-f, --format フラグで出力の形を選びます。

フォーマット説明
morphemeデフォルト。表層形 TAB 品詞 TAB 原形 TAB 開始位置 TAB 終了位置
tags内容語の タグ TAB 品詞 の組(タグ抽出を参照)
json解析・デバッグ用フィールドを含む構造化 JSON
tsv表層形 TAB 品詞 TAB 原形 TAB 開始位置 TAB 終了位置
chasenChaSen 風フォーマット(日本語の品詞名と活用情報)
bash
# デフォルト: 表層形 TAB 品詞 TAB 原形 TAB 開始位置 TAB 終了位置
suzume-cli "食べている"
# 食べ    VERB        食べる    0    2
# て      PARTICLE    て        2    3
# いる    AUX         いる      3    5

# JSON
suzume-cli -f json "食べている"

# タグのみ
suzume-cli -f tags "東京スカイツリーに行きました"
# 東京            NOUN
# スカイツリー    NOUN
# 行く            VERB

# TSV(全フィールド: 表層形, 品詞, 原形, 開始位置, 終了位置)
suzume-cli -f tsv "食べている"

# ChaSen 風フォーマット(日本語品詞、活用情報)
suzume-cli -f chasen "食べている"

解析モード

bash
# 通常モード(デフォルト)
suzume-cli -m normal "API開発と高層ビル群"
# API開発 / と / 高層 / ビル / 群

# 検索モード(名詞複合語を保持)
suzume-cli -m search "API開発と高層ビル群"
# API開発 / と / 高層ビル群

# 分割モード(細粒度の分割)
suzume-cli -m split "API開発と高層ビル群"
# API / 開発 / と / 高層 / ビル / 群

オプション

オプション説明
-f, --format FMT出力フォーマット: morpheme, tags, json, tsv, chasen
-m, --mode MODE解析モード: normal, search, split
-d, --dict PATHユーザー辞書を読み込み(複数指定可)
--no-lemmatize原形化を無効化(デフォルトは有効)
--merge-compounds連続する名詞複合語を結合(デフォルトは無効)
--normalize-vuヴ をビ等に正規化(デフォルト: 保持)
--lowercaseASCII を小文字に変換(デフォルト: 保持)
--preserve-symbols句読点などの SYMBOL を出力に保持(既定:除去)。内容を持つ記号と絵文字は設定にかかわらず OTHER として保持
--no-user-dictユーザー辞書を無効化
--no-core-dictコア辞書を無効化
--skip-env-configスコアラー設定用の環境変数を無視
--compareユーザー辞書あり/なしの比較
--debugラティス候補とスコアを表示
-V, --verbose詳細出力
-VV, --very-verboseより詳細な出力(ラティスダンプを含む)

グローバルフラグとして -v, --version-h, --help も使えます。

タグ抽出

-f tags を指定すると、Suzume は内容語のタグを抽出し、情報量の少ないトークンをデフォルトで除きます。次のフラグでタグ集合に何を残すかを調整できます。

オプションデフォルト説明
--include-particles無効助詞をタグに残す
--include-auxiliaries無効助動詞をタグに残す
--include-formal-nouns無効形式名詞(こと、もの等)を残す
--include-low-info無効情報量の少ないトークンを残す
--tag-keep-duplicates無効重複を除去せずそのまま残す
--tag-use-surface無効原形ではなく表層形を使う
--tag-pos POSすべて1つの品詞を残す。複数指定可。助詞・助動詞には対応する --include-* も必要
--tag-exclude-basic無効原形がひらがなのみのタグを除外
--tag-min-length LENGTH2タグの最小文字数
--tag-max-tags MAX0タグの最大数(0 = 無制限)
bash
# 助詞と助動詞を残し、1文字のタグも許可
suzume-cli -f tags --include-particles --include-auxiliaries --tag-min-length 1 "本を読む"

# 表層形を使い、先頭5件のタグに絞る
suzume-cli -f tags --tag-use-surface --tag-max-tags 5 "東京スカイツリーに行きました"

使用例

bash
# ユーザー辞書を指定
suzume-cli -d user.dic "ChatGPTを使う"

# ユーザー辞書あり/なしの比較
suzume-cli --compare -d user.dic "ChatGPTを使う"

# 名詞複合語を結合
suzume-cli --merge-compounds "東京都新宿区"

# 原形化なしで解析
suzume-cli --no-lemmatize "食べている"

# ヴの正規化
suzume-cli --normalize-vu "ヴァイオリン"
# バイオリン    NOUN    バイオリン    0    5

dict

辞書管理:辞書の作成、編集、コンパイル、検証を行います。

サブコマンド

bash
# 新しい辞書ファイルを作成
suzume-cli dict new user.tsv

# TSV をバイナリ(.dic)にコンパイル
suzume-cli dict compile user.tsv           # → user.dic
suzume-cli dict compile user.tsv out.dic   # 出力先を指定

# バイナリを TSV に逆コンパイル(--force なしでは上書きしない)
suzume-cli dict decompile user.dic         # → user.dump.tsv

# 辞書を検証
suzume-cli dict validate user.tsv

# 辞書情報を表示
suzume-cli dict info user.tsv

# 組み込み L1 とソース L2 辞書で単語を検索
suzume-cli dict lookup すぎる

# パターンでエントリを検索
suzume-cli dict search user.tsv "パターン"

# エントリを一覧表示(非インタラクティブ)
suzume-cli dict list user.tsv --pos=NOUN --pattern="東京*" --limit=20

インタラクティブモード

辞書編集用のインタラクティブ REPL を起動します。

bash
suzume-cli dict -i user.tsv

suzume-cli dict interactive user.tsvsuzume-cli dict edit user.tsv は同じ意味の長い形式のエイリアスです。

インタラクティブコマンド:

コマンド説明
add <surface> <pos> [conj_type]エントリを追加。動詞・形容詞では活用型が必要
remove <surface> [pos]エントリを削除
update <surface> <pos> [conj_type]既存エントリを更新
list [--pos=POS] [--pattern=PATTERN] [--limit=N]エントリを一覧表示
search <pattern>エントリを検索
find <surface>全レイヤーで検索
layer [N]作業レイヤーを表示・変更(2 = core.dic、3 = user.dic
import <file.tsv> [--skip-duplicates]TSV ファイルからエントリをインポート
analyze <text>現在の辞書でテキストを解析
validate辞書を検証
compile <output.dic>バイナリにコンパイル
save変更を保存
stats統計情報を表示
quit終了

辞書レイヤー

Suzume は階層型辞書システムを採用しています。

レイヤーソース説明
レイヤー 1ハードコード助詞、助動詞(バイナリに組み込み)
レイヤー 2core.dicコア語彙
レイヤー 3user.dicユーザー/ドメイン固有の単語

TSV フォーマット

辞書ソースファイルは TSV フォーマットを使用します。

tsv
東京	NOUN
食べる	VERB	ICHIDAN
読み直し	NOUN	読み直す

行形式は surface<TAB>POS[<TAB>conj_type][<TAB>lemma] です。活用型は省略可能で、活用形を展開させる場合に指定します。第3列が既知の活用型でなければ原形として扱われます。完全な形式はユーザー辞書を参照してください。

品詞(POS): NOUNPROPNVERBADJADJECTIVEADVADVERBPARTICLEAUXAUXILIARYCONJUNCTIONDETERMINERPRONOUNPREFIXSUFFIXINTERJECTIONSYMBOLSYMOTHER

この辞書ファイル用の品詞語彙は、解析 API が返す実行時の Morpheme.pos 値(NOUN, VERB, ADJ, ADV, ...)よりも意図的に細かく分かれています。

活用型(VERB/ADJECTIVE 用): ICHIDAN, GODAN_KA, GODAN_GA, GODAN_SA, GODAN_TA, GODAN_NA, GODAN_BA, GODAN_MA, GODAN_RA, GODAN_WA, SURU, KURU, I_ADJ, NA_ADJ

test

検証テストとベンチマークを実行します。

bash
# 単一入力のテスト
suzume-cli test "テスト文" --expect "テスト"

# ファイルからテストを実行
suzume-cli test -f tests.tsv

# ユーザー辞書を指定してテスト
suzume-cli test -f tests.tsv -d user.dic

# 再現可能なベンチマーク(1回ウォームアップ後、5サンプルの中央値)
suzume-cli test benchmark --iterations=1000 --samples=5 --warmup=1

ベンチマークは初期化・初回解析・定常解析の中央値、定常スループット、テキストごとのレイテンシ、ピーク RSS を報告します。組み込みコーパスを置き換えるには -f corpus.txt を指定します。

テストファイルフォーマット

入力と期待されるタグの TSV です。

tsv
東京スカイツリーに行きました	東京,スカイツリー,行く
美しい花が咲いている	美しい,咲く

関連ページ