lindera-nodejs 3.0.7

A Node.js binding for Lindera.
Documentation
# Lindera Node.js サンプル

## 事前準備

- Node.js (v18以上)
- Rust ツールチェイン
- NAPI CLI (`npm install -g @napi-rs/cli`)

以下のコマンドは、特に記載がない限りリポジトリのルート(`lindera/`)で実行してください。

## ビルド

npm 依存パッケージをインストールし、ネイティブモジュールをビルドします:

```bash
cd lindera-nodejs
npm install

# IPADIC 辞書を埋め込んでビルド(debug)
npx napi build --platform -p lindera-nodejs --features embed-ipadic

# 学習機能を含めてビルド(debug)
npx napi build --platform -p lindera-nodejs --features embed-ipadic,train

# リリースビルド
npx napi build --platform --release -p lindera-nodejs --features embed-ipadic
```

## サンプル

ビルド後、`lindera-nodejs/` ディレクトリから実行します:

```bash
cd lindera-nodejs
```

### 基本的なトークナイズ

```bash
node examples/tokenize.js
```

埋め込み IPADIC 辞書を使用し、"normal" モードで日本語テキストをトークナイズします。

### Decompose モード

```bash
node examples/tokenize_with_decompose.js
```

"decompose" モードでトークナイズし、複合形態素を分解します。

### フィルター付きトークナイズ

```bash
node examples/tokenize_with_filters.js
```

`TokenizerBuilder` API を使用し、文字フィルター(`unicode_normalize`、`japanese_iteration_mark`、`mapping`)とトークンフィルター(`japanese_katakana_stem`、`japanese_stop_tags`、`lowercase`、`japanese_base_form`)を適用するデモです。

### ユーザー辞書

```bash
node examples/tokenize_with_userdict.js
```

標準辞書に加えて、`resources/ipadic_simple_userdic.csv` からカスタムユーザー辞書を読み込みます。

### ソースからの辞書ビルド

```bash
node examples/build_ipadic.js
```

mecab-ipadic のソース tarball をダウンロードし、Lindera 辞書をビルドします。`tar` コマンドが必要です。

### 学習とエクスポート(`train` feature が必要)

```bash
# 先に train feature を有効にしてビルド
npx napi build --platform -p lindera-nodejs --features embed-ipadic,train

node examples/train_and_export.js
```

サンプルコーパスから CRF モデルを学習し、辞書ファイルをエクスポートします。