Open9

KKC(かな漢字変換)を作りたい

ピン留めされたアイテム
fkunn1326fkunn1326

KKCを作りたいのでいろいろメモ

fkunn1326fkunn1326
fkunn1326fkunn1326

https://github.com/ensan-hcl/KanaKanjiConversionSamples/blob/main/Sources/KanaKanjiConversionSimpleImplementation/KanaKanjiConversionSamples.swift#L121-L165
とりあえずこのコードでは動的計画法の一種であるViterbi(ビタビ)アルゴリズムというやつが一番大事。

この実装では変換候補に対して

  1. 単語候補を取得
  2. その単語に対して最適な前ノードを選択
  3. スコアを計算してノードを追加

スコアを計算する際に、単語自体のスコア、getScoreOfWordと連続する品詞のスコア getScoreBetweenPosTagを用いているみたい。

fkunn1326fkunn1326

https://takeda25.hatenablog.jp/entry/20120421/1335019644
辞書を引くときに高速にできるようにtrie(トライ)木というものを使うのが一般的みたい
そしてそれを保存するフォーマットがLOUDSとよばれるものらしい

参考: 辞書と言語モデルの効率のよい圧縮とかな漢字変換への応用