Tokenizer API
このページでは、lindera-wasm が公開する JavaScript/TypeScript API について説明します。
TokenizerBuilder
設定済みの Tokenizer インスタンスを作成するためのビルダークラスです。
コンストラクタ
const builder = new TokenizerBuilder();
デフォルト設定で新しいビルダーを作成します。
メソッド
setMode(mode)
トークナイズモードを設定します。
- パラメータ:
mode(string) --"normal"または"decompose" - 戻り値: void
builder.setMode("normal");
setDictionary(uri)
トークナイズに使用する辞書を設定します。
- パラメータ:
uri(string) -- 辞書の URI(例:"embedded://ipadic") - 戻り値: void
builder.setDictionary("embedded://ipadic");
setUserDictionary(uri)
ユーザー定義辞書を設定します。
- パラメータ:
uri(string) -- ユーザー辞書のパスまたは URI - 戻り値: void
builder.setUserDictionary("file:///path/to/user_dict.csv");
setKeepWhitespace(keep)
出力に空白トークンを保持するかどうかを設定します。
- パラメータ:
keep(boolean) --trueで空白トークンを保持 - 戻り値: void
builder.setKeepWhitespace(true);
appendCharacterFilter(name, args)
前処理パイプラインに文字フィルタを追加します。
- パラメータ:
name(string) -- フィルタ名(例:"unicode_normalize"、"japanese_iteration_mark")args(object, 省略可) -- フィルタの設定
- 戻り値: void
builder.appendCharacterFilter("unicode_normalize", { kind: "nfkc" });
appendTokenFilter(name, args)
後処理パイプラインにトークンフィルタを追加します。
- パラメータ:
name(string) -- フィルタ名(例:"japanese_stop_tags"、"lowercase")args(object, 省略可) -- フィルタの設定
- 戻り値: void
builder.appendTokenFilter("japanese_stop_tags", {
tags: ["助詞", "助動詞", "記号"]
});
build()
設定済みの Tokenizer インスタンスをビルドして返します。ビルダーは消費されます。
- 戻り値:
Tokenizer
const tokenizer = builder.build();
Tokenizer
メインのトークナイザークラスです。TokenizerBuilder.build() またはコンストラクタ経由で作成できます。
Tokenizer コンストラクタ
const tokenizer = new Tokenizer(dictionary, mode, userDictionary);
- パラメータ:
dictionary(Dictionary) -- 読み込み済みの辞書オブジェクトmode(string, 省略可) -- トークナイズモード("normal"または"decompose"、デフォルト:"normal")userDictionary(UserDictionary, 省略可) -- 読み込み済みのユーザー辞書
Tokenizer メソッド
tokenize(text)
入力テキストをトークナイズします。
- パラメータ:
text(string) -- トークナイズするテキスト - 戻り値:
Token[]-- トークンオブジェクトの配列
const tokens = tokenizer.tokenize("関西国際空港");
tokenizeNbest(text, n, unique?, costThreshold?)
トータルパスコスト順に N-best トークナイズ結果を返します。
- パラメータ:
text(string) -- トークナイズするテキストn(number) -- 返す結果の数unique(boolean, 省略可) -- 同一のセグメンテーション結果を重複排除(デフォルト:false)costThreshold(number, 省略可) --bestCost + threshold以内のパスのみ返す
- 戻り値:
{ tokens: object[], cost: number }の配列
const results = tokenizer.tokenizeNbest("すもももももももものうち", 3);
Token
トークナイザーが生成する単一のトークンを表します。
プロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
surface | string | トークンの表層形 |
byteStart | number | 元テキストでの開始バイトオフセット |
byteEnd | number | 元テキストでの終了バイトオフセット |
position | number | トークンの位置インデックス |
wordId | number | 辞書内の単語 ID |
isUnknown | boolean | 未知語かどうか |
details | string[] | 形態素の詳細フィールド |
Token メソッド
getDetail(index)
指定されたインデックスの詳細文字列を返します。
- パラメータ:
index(number) -- details 配列へのゼロベースインデックス - 戻り値:
string | undefined
const pos = token.getDetail(0); // 例: "名詞"
const reading = token.getDetail(7); // 例: "トウキョウ"
toJSON()
トークンのプレーンな JavaScript オブジェクト表現を返します。
- 戻り値:
surface、byteStart、byteEnd、position、wordId、isUnknown、detailsをキーに持つobject
console.log(JSON.stringify(token.toJSON(), null, 2));
ヘルパー関数
loadDictionary(uri)
指定された URI から辞書を読み込みます。
- パラメータ:
uri(string) -- 辞書の URI(例:"embedded://ipadic") - 戻り値:
Dictionary
import { loadDictionary } from 'lindera-wasm-ipadic-web';
const dict = loadDictionary("embedded://ipadic");
loadUserDictionary(uri, metadata)
指定された URI からユーザー辞書を読み込みます。
- パラメータ:
uri(string) -- ユーザー辞書ファイルのパスまたは URImetadata(Metadata) -- 辞書のメタデータオブジェクト
- 戻り値:
UserDictionary
buildDictionary(inputDir, outputDir, metadata)
ソースファイルからコンパイル済み辞書をビルドします。
- パラメータ:
inputDir(string) -- 辞書ソースファイルを含むディレクトリのパスoutputDir(string) -- 出力ディレクトリのパスmetadata(Metadata) -- 辞書のメタデータオブジェクト
- 戻り値: void
buildUserDictionary(inputFile, outputDir, metadata?)
CSV ファイルからコンパイル済みユーザー辞書をビルドします。
- パラメータ:
inputFile(string) -- ユーザー辞書 CSV ファイルのパスoutputDir(string) -- 出力ディレクトリのパスmetadata(Metadata, 省略可) -- 辞書のメタデータオブジェクト
- 戻り値: void
version() / getVersion()
lindera-wasm パッケージのバージョン文字列を返します。
- 戻り値:
string
import { version } from 'lindera-wasm-ipadic-web';
console.log(version()); // 例: "2.1.1"
snake_case エイリアス
Python API との一貫性のため、すべてのメソッドは snake_case 形式でも利用可能です:
| camelCase | snake_case |
|---|---|
setMode() | set_mode() |
setDictionary() | set_dictionary() |
setUserDictionary() | set_user_dictionary() |
setKeepWhitespace() | set_keep_whitespace() |
appendCharacterFilter() | append_character_filter() |
appendTokenFilter() | append_token_filter() |
tokenizeNbest() | tokenize_nbest() |
loadDictionary() | load_dictionary() |
loadUserDictionary() | load_user_dictionary() |
buildDictionary() | build_dictionary() |
buildUserDictionary() | build_user_dictionary() |