-
Notifications
You must be signed in to change notification settings - Fork 8
Akaza のアルゴリズム
Tokuhiro Matsuno edited this page Jan 12, 2023
·
3 revisions
Akaza のビタビアルゴリズムでは、現在、単語2グラムを採用しています。
- かな漢字変換辞書を元にトライ構造を作って用意しておく。
- ローマ字で入力された文字列をもとに、平仮名に変換する。
- 共通接頭辞検索をして、平仮名ベースのグラフ構造を構築する。
- それぞれのノードごとに漢字表現とシステム辞書からword_id、システムノードスコア、ユーザーノードスコアを得て surface lattice を構築する。
- ラティス構造をビタビアルゴリズムで最適解を求める。
- 前方から後方へノードコストとエッジコストを求めながら探索する。後方から前方へ、一番コストが高いノードを辿る。途中で他の変換候補も収集する。
- なぜ品詞Nグラムを使わないのですか?
- → 品詞を扱うのは大変そうだったので単語2グラムで実装してみたら、それでわりと精度が出るし、そこまで容量もくわないのでいいかなぁ、と。
- なぜ前向きDP後ろ向きA*をしないのですか?
- → まだ実装してないというだけです。