Fuzzy Beam Search
class FuzzyBeamSearch
ビームサーチによる辞書ベースのあいまいテキストマッチングエンジン。
FuzzyBeamSearch は入力文字列を事前にロードされた辞書と照合し、 編集距離ベースのコストでランク付けされた候補を返します。 高速な処理のため、内部ではネイティブ Rust 実装を使用しています。
概要
基本的な使い方は以下の通りです:
使用例
val fbs = FuzzyBeamSearch(ScanMode.Substring)
fbs.load("/path/to/dictionary")
val params = FuzzyBeamSearch.Params().apply { topK = 5 }
val candidates = fbs.match("入力テキスト", params)
for (c in candidates) {
println("${c.text} (cost: ${c.cost})")
}Content copied to clipboard
検索モード
対象テキストがノイズに囲まれている可能性のある OCR 結果に最適です。
チューニングパラメータ
Params を使ってマッチング動作を制御できます:
コストパラメータ (Params.subCost, Params.delCost, Params.insCost): 置換・削除・挿入に対するペナルティの相対的な重みを制御します。 値を小さくすると、その編集操作に対してより寛容になります。
Params.beamWidth: 値を大きくするとより多くの候補を探索しますが、速度が低下します。
Params.topK: 返す結果の最大数。
Types
Functions
Link copied to clipboard
ロード済み辞書のサイズを返します。
Link copied to clipboard
fun match(input: String, params: FuzzyBeamSearch.Params = Params()): List<FuzzyBeamSearch.Candidate>
あいまいマッチングを実行し、コスト順(最良一致優先)でソートされた候補を返します。