Skip to content

Python CLI

Python ホイールをインストールすると、解析とタグ抽出を行う suzume コマンドが追加されます。Python API と同じ同梱ネイティブライブラリおよび辞書を使います。

インストール

bash
pip install suzume

コマンドの対応環境は Python パッケージと同じです。Linux x86_64(manylinux2014 / manylinux_2_17)と、macOS 11 以降の macOS arm64 で使えます。詳しい互換性一覧は Python バインディング を参照してください。

入力

引数でテキストを渡すか、UTF-8 テキストを標準入力に流します。

bash
suzume "東京へ行く"
printf 'りんごを食べる\n' | suzume

analyze は省略可能な別名です。次の 2 つのコマンドは同じ動作です。

bash
suzume --mode search "東京の公園"
suzume analyze --mode search "東京の公園"

ハイフンで始まる入力の前には -- を置いてください。

出力フォーマット

-f または --format でフォーマットを選びます。

フォーマット出力
morpheme既定。表層形 TAB 品詞 TAB 原形 TAB 開始位置 TAB 終了位置
tsvmorpheme と同じフィールド
tags1 行につき タグ TAB 品詞
jsoninputnormalized_textmorphemes を持つオブジェクト
chasenChaSen 風フィールド。末尾に EOS を出力
bash
suzume --format json "ABCを検索"
suzume --format chasen "食べている"
suzume --format tags "東京の公園に行く"

1 行形式の TAB 出力に含まれるバックスラッシュ、タブ、改行はエスケープされます。

解析オプション

オプション説明
-m, --mode MODEnormalsearchsplit の分割モードを使用
--normalize-vuヴの異体表記を保持せず正規化
--lowercaseASCII 英字を小文字に正規化
--preserve-symbols句読点などの SYMBOL を保持。内容を持つ記号と絵文字は設定にかかわらず OTHER として保持
--no-lemmatize解析後の原形補正を無効化
--merge-compounds連続する名詞複合語を結合
--skip-env-configスコアラー設定用の環境変数を無視
bash
suzume --mode split --lowercase "ABCと東京都"
suzume --normalize-vu --preserve-symbols "ヴァイオリン、ビオラ"

通貨・単位記号、矢印、技術記号、絵文字は、既定でも OTHER として残ります。--preserve-symbols を指定すると、 など句読点系のトークンも加わります。

現在のオプション一覧は suzume --help、インストール済みネイティブライブラリのバージョンは suzume --version で確認できます。

辞書

-d または --dict で UTF-8 テキスト辞書やコンパイル済み .dic ファイルを読み込みます。このオプションは複数回指定できます。

bash
suzume --dict terms.tsv --dict names.dic "東京スカイツリーへ行く"
オプション説明
-d, --dict PATHテキスト辞書またはコンパイル済み .dic 辞書を読み込み。複数指定可
--no-core-dict同梱コア辞書を読み込まない
--no-user-dict同梱ユーザー辞書を読み込まない

解析器の作成時に発生した警告は標準エラー出力へ書き込まれます。--dict で指定した辞書の読み込み時に発生した警告は、現在の CLI では出力されません。

タグ出力

キーワードタグを生成するには --format tags を選びます。

bash
suzume --format tags --tag-max-tags 5 "東京都の天気予報を確認する"
オプション既定値説明
--tag-pos POSすべて1 つの品詞を残す。複数指定可
--tag-exclude-basic無効原形がひらがなのみのタグを除外
--tag-use-surface無効原形ではなく表層形を使用
--tag-min-length N2タグの最小文字数を指定
--tag-max-tags N0タグ件数を制限(0 は無制限)
--include-particles無効助詞を含める
--include-auxiliaries無効助動詞を含める
--include-formal-nouns無効形式名詞を含める
--include-low-info無効低情報量の語を含める
--tag-keep-duplicates無効重複タグを残す

--tag-pos に指定できるのは nounverbadjectiveadverb だけです。助詞や助動詞を含める場合は --tag-pos を省略し、--include-particles または --include-auxiliaries を使ってください。

bash
suzume --format tags \
  --tag-pos noun \
  --tag-pos verb \
  --tag-min-length 1 \
  "本を読む"

JSON とオフセット

形態素の startend は正規化後テキスト上の文字オフセットであり、元の入力上の位置とは限りません。JSON 出力には、その正規化後テキストが normalized_text として含まれます。

bash
suzume --lowercase --format json "ABCを検索"

正規化によって入力が変わる可能性があり、後続処理でオフセットを使って文字列を切り出す場合は JSON を使ってください。

対象範囲

Python の suzume コマンドが扱うのは解析とタグ抽出です。辞書のコンパイルや検証、ネイティブのテストやベンチマークは実行できません。

これらの開発者向け処理には、別途ビルドする suzume-cli を使います。ネイティブ CLI リファレンスネイティブビルド を参照してください。

関連ページ