Skip to content

feat: 同じ読みで確定を繰り返してもZenzaiの並べ替えで元に戻る問題への対策(読み完全一致の直近確定を最優先にする) #356

Description

@tomippe

現象

例:「きどうてすと」を変換すると「軌道テスト」が1位になります。「起動テスト」に修正して確定することを何度繰り返しても、左文脈のない場所で再入力するとまた「軌道テスト」が1位に戻ります。

従来学習(memory)には確定履歴が正しく記録されており、候補リストに「起動テスト」も現れます。しかしZenzaiが左文脈に基づいて候補を再ランクするため、学習結果が最終順位に反映されないケースがあります。ユーザーからは「何度直しても学習されない」ように見え、体験としてかなりストレスになります。

提案(0.1.4ベースの自分用ビルドで実装・動作確認済み)

「読みが完全一致する直近の確定内容(読み→表記)」を記録する軽量ストアを追加し、requestCandidates の結果の mainResults に同じ読み・同じ表記の候補が含まれる場合、Zenzaiの並び順に関係なくその候補を1位へ昇格させる方式で解決しました。Google日本語入力の学習に近い動きになります。

実装の要点:

  • 確定時(updateLearningData と同じタイミング)に読み(カタカナ)→表記を記録。学習設定が「学習しない」のときは記録・昇格とも無効
  • 変換結果取得直後に、変換対象の読みと完全一致するエントリがあれば mainResults 内の該当候補を先頭へ移動(ライブ変換のプレビューにも同じ順位が反映される)
  • 学習リセットでストアも消去

Zenzaiの文脈適応性と学習の即効性のトレードオフなので設計方針の議論があると思いますが、「同じ読みの直近確定だけは最優先」というルールは副作用が小さく効果が大きかったため共有します。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions