インストール

v6.1.0 以降の lindera-ruby は、RubyGems から lindera としてインストールできます。ソース gem のため、gem install の実行時に同梱の Rust ソースからネイティブ拡張をコンパイルします(数分かかります)。

前提条件

  • Ruby 3.1 以降と、ネイティブ gem のビルドに必要なツール(C コンパイラと make)
  • Rust ツールチェーン 1.89 以降 -- rustup 経由でインストール
  • libclang -- Debian/Ubuntu は libclang-dev、macOS は Xcode コマンドラインツール
  • Bundler -- ソースからビルドする場合のみ(gem install bundler)

RubyGems からのインストール

gem install lindera

または Gemfile に追加します:

gem "lindera"

[!NOTE] lindera v6.1.0 以降を使用してください。v6.1.0 より前に公開された lindera gem は、インストール時のコンパイルに失敗します。それらのバージョンは、以下の手順でソースからビルドしてください。

gem は crates.io 上の同じバージョンの lindera と lindera-binding に対してコンパイルされます(この 2 つはバージョンを完全に固定しています)。gem には Cargo.lock が含まれないため、それ以外の依存(ほかの lindera-* クレートを含む)は、インストール時に互換性のある最新のリリースに解決されます。デフォルトの feature(train)のみを有効にし、辞書は埋め込みません。辞書は辞書の入手を参照してください。その他の Feature フラグを有効にするには、インストール時に LINDERA_FEATURES を指定します:

LINDERA_FEATURES="embed-ipadic" gem install lindera

辞書の入手

Lindera はパッケージに辞書を同梱していません。ビルド済み辞書を別途入手する必要があります。

GitHub Releases からのダウンロード

ビルド済み辞書は GitHub Releases ページから入手できます。辞書アーカイブをダウンロードしてローカルディレクトリに展開してください:

# 例: IPADIC 辞書のダウンロードと展開
curl -LO https://github.com/lindera/lindera/releases/download/<version>/lindera-ipadic-<version>.zip
unzip lindera-ipadic-<version>.zip -d /path/to/ipadic

開発ビルド

lindera-ruby を開発モードでビルドしてインストールします:

cd lindera-ruby
bundle install
bundle exec rake compile

または、プロジェクトの Makefile を使用します:

make build-lindera-ruby

make test-lindera-ruby を実行すると、Rust のユニットテストと Ruby の minitest スイートの両方が実行されます。

gem のビルド

bundle exec rake build(または make package-lindera-ruby)は、ソース gem を lindera-ruby/pkg/ に出力します。cargo package が正規化したクレートを同梱するため、 gem はこのリポジトリの外でも、crates.io 上の同じバージョンの lindera と lindera-binding に対してコンパイルできます。gem build を直接実行しないで ください。クレート自身の Cargo.toml は Cargo ワークスペースの中でしか解決できません。

make test-lindera-ruby-gem(Docker が必要)は、gem をビルドし、クリーンな ruby コンテナで gem install を実行して、テキストをトークナイズします。このテストは lindera クレートをチェックアウトからコンパイルするため、crates.io に未公開の バージョンでも実行できます。

学習機能付きビルド

train feature は、CRF ベースの辞書学習機能を有効にします。デフォルトで有効です:

LINDERA_FEATURES="train" bundle exec rake compile

Feature フラグ

Feature は環境変数 LINDERA_FEATURES にカンマ区切りリストで指定します。bundle exec rake compile と gem install のどちらでも使えます。

Feature説明デフォルト
trainCRF 学習機能有効
embed-ipadic日本語辞書(IPADIC)をバイナリに埋め込み無効
embed-unidic日本語辞書(UniDic)をバイナリに埋め込み無効
embed-sudachidict日本語辞書(SudachiDict)をバイナリに埋め込み無効
embed-ipadic-neologd日本語辞書(IPADIC NEologd)をバイナリに埋め込み無効
embed-ko-dic韓国語辞書(ko-dic)をバイナリに埋め込み無効
embed-cc-cedict中国語辞書(CC-CEDICT)をバイナリに埋め込み無効
embed-jieba中国語辞書(Jieba)をバイナリに埋め込み無効
embed-cjk全 CJK 辞書をバイナリに埋め込み(IPADIC、ko-dic、Jieba)無効

複数の feature を組み合わせることができます:

LINDERA_FEATURES="train,embed-ipadic,embed-ko-dic" bundle exec rake compile

[!TIP] 辞書をバイナリに直接埋め込みたい場合(上級者向け)は、対応する embed-* feature フラグを有効にしてビルドし、embedded:// スキームでロードしてください:

dictionary = Lindera.load_dictionary("embedded://ipadic")

詳細は Feature フラグ を参照してください。

インストールの確認

インストール後、Ruby で lindera が利用可能であることを確認します:

require 'lindera'

puts Lindera.version