バグの内容
文節を分けて変換した場合に、各文節の結果のみが学習され、その文字列全体の結果が学習されない
再現手順
パターンA: 全体が学習されない
しうんすみか を入力し、変換ボタンを押す
- 文節の範囲を移動させ、各文節を
紫雲/清/夏 に変換して確定
- 再び
しうんすみか と入力して変換
紫雲清夏 が候補に出ない (紫雲 清 夏 は個別に学習されているため、それぞれの読みでは候補に出る)
パターンB: 途中までしか学習されない
しうんすみか を入力 (変換ボタンは押さない)
- 予測変換で
紫雲 (部分変換) をタップして確定
- ここで文節の範囲を移動させ、
すみ/か をそれぞれ 清/夏 に変換
- その後
しうんすみ と入力
紫雲清 が候補に出る(これは学習されている)
- しかし
しうんすみか と入力しても 紫雲清夏 は出ない
期待する動作
文節を分けて変換して確定した場合でも、次回入力時に候補として表示される
スクリーンショット
省略
スマートフォン環境(以下を記入してください)
- デバイス: POCO F6
- OS: Android 16 (AOSP ベース)
- アプリのバージョン: 766(1.7.73)
追加のコンテキスト
自分の設定ミスではないか不安だったので AI に調べさせた結果です
ご参考程度に…
handleExactLengthMatch では LearnMultiple を使って複数文節の連続確定を蓄積学習できますが、この機構は通常変換パスでのみ動作します。
文節カーソル移動モード(handleBunsetsuCandidateClick → commitBunsetsuConversionUntilFocusedSegment)では:
learnMultiple.start() が呼ばれず、蓄積機構が利用されない
commitBunsetsuConversionUntilFocusedSegment 内で learnMultiple.stop() が無条件で呼ばれる(IMEService.kt 15267行目)
commitBunsetsuConversionSession() でも全体の学習処理は呼ばれていない
そのため、文節分け変換では個別文節のみが学習され、全体としての学習が行われていないようです。
バグの内容
文節を分けて変換した場合に、各文節の結果のみが学習され、その文字列全体の結果が学習されない
再現手順
パターンA: 全体が学習されない
しうんすみかを入力し、変換ボタンを押す紫雲/清/夏に変換して確定しうんすみかと入力して変換紫雲清夏が候補に出ない (紫雲清夏は個別に学習されているため、それぞれの読みでは候補に出る)パターンB: 途中までしか学習されない
しうんすみかを入力 (変換ボタンは押さない)紫雲(部分変換) をタップして確定すみ/かをそれぞれ清/夏に変換しうんすみと入力紫雲清が候補に出る(これは学習されている)しうんすみかと入力しても紫雲清夏は出ない期待する動作
文節を分けて変換して確定した場合でも、次回入力時に候補として表示される
スクリーンショット
省略
スマートフォン環境(以下を記入してください)
追加のコンテキスト
自分の設定ミスではないか不安だったので AI に調べさせた結果です
ご参考程度に…