チュートリアル
このチュートリアルでは、Lindera CLIの基本的な使い方を、インストールから高度なテキスト処理まで順を追って説明します。
1. CLIのインストール
埋め込みIPADIC辞書付きでLindera CLIをインストールします:
% cargo install lindera-cli --features=embed-ipadic
インストールの確認:
% lindera --help
2. 埋め込み辞書を使用した基本的なトークナイズ
埋め込みIPADIC辞書を使用して日本語テキストをトークナイズします:
% echo "東京は日本の首都です。" | lindera tokenize \
--dict embedded://ipadic
期待される出力:
東京 名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
日本 名詞,固有名詞,地域,国,*,*,日本,ニホン,ニホン
の 助詞,連体化,*,*,*,*,の,ノ,ノ
首都 名詞,一般,*,*,*,*,首都,シュト,シュト
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
EOS
3. 異なる出力形式を試す
Wakati 形式(分かち書きのみ)
% echo "東京は日本の首都です。" | lindera tokenize \
--dict embedded://ipadic \
--output wakati
期待される出力:
東京 は 日本 の 首都 です 。
JSON 形式(詳細情報)
% echo "東京は日本の首都です。" | lindera tokenize \
--dict embedded://ipadic \
--output json
バイトオフセット、品詞タグ、読みなどの詳細なトークン情報を含むJSON配列が出力されます。
4. Decompose モードの使用
Decompose モードは複合名詞を構成要素に分解します:
% echo "関西国際空港限定トートバッグ" | lindera tokenize \
--dict embedded://ipadic \
--mode decompose
期待される出力:
関西 名詞,固有名詞,地域,一般,*,*,関西,カンサイ,カンサイ
国際 名詞,一般,*,*,*,*,国際,コクサイ,コクサイ
空港 名詞,一般,*,*,*,*,空港,クウコウ,クーコー
限定 名詞,サ変接続,*,*,*,*,限定,ゲンテイ,ゲンテイ
トートバッグ 名詞,一般,*,*,*,*,*,*,*
EOS
Normal モードと比較すると、「関西国際空港」が1つのトークンのままになる点が異なります。
5. 文字フィルタとトークンフィルタの適用
Unicode正規化を行い、一般名詞のみを保持します:
% echo "Linderaは形態素解析エンジンです。" | lindera tokenize \
--dict embedded://ipadic \
--char-filter 'unicode_normalize:{"kind":"nfkc"}' \
--token-filter 'japanese_keep_tags:{"tags":["名詞,一般","名詞,固有名詞,組織"]}'
期待される出力:
Lindera 名詞,固有名詞,組織,*,*,*,*,*,*
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ
エンジン 名詞,一般,*,*,*,*,エンジン,エンジン,エンジン
EOS
Unicode正規化により全角文字が半角に変換され、Token Filter により指定した品詞タグに一致するトークンのみが保持されます。
複数のフィルタを組み合わせることもできます:
% echo "すもももももももものうち" | lindera tokenize \
--dict embedded://ipadic \
--token-filter 'japanese_stop_tags:{"tags":["助詞","助詞,係助詞","助詞,連体化"]}'
6. ユーザー辞書の使用
カスタム単語エントリを含むCSVファイル(例: my_dict.csv)を作成します:
東京スカイツリー,カスタム名詞,トウキョウスカイツリー
ユーザー辞書を使用してトークナイズします:
% echo "東京スカイツリーの最寄り駅はとうきょうスカイツリー駅です" | lindera tokenize \
--dict embedded://ipadic \
--user-dict ./my_dict.csv
ユーザー辞書がない場合、「東京スカイツリー」は複数のトークンに分割されます。ユーザー辞書を使用すると、1つのトークンとして認識されます。
ビルド済みのユーザー辞書の例については、以下を参照してください:
% echo "東京スカイツリーの最寄り駅はとうきょうスカイツリー駅です" | lindera tokenize \
--dict embedded://ipadic \
--user-dict ./resources/user_dict/ipadic_simple_userdic.csv
期待される出力:
東京スカイツリー カスタム名詞,*,*,*,*,*,東京スカイツリー,トウキョウスカイツリー,*
の 助詞,連体化,*,*,*,*,の,ノ,ノ
最寄り駅 名詞,一般,*,*,*,*,最寄り駅,モヨリエキ,モヨリエキ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
とうきょうスカイツリー駅 カスタム名詞,*,*,*,*,*,とうきょうスカイツリー駅,トウキョウスカイツリーエキ,*
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
EOS