from pKeicho 🤔チェーン質問発生中にチェーン対象の単語をNGKWしたい

  • 現時点ではできない
  • チェーン質問を状態遷移で実装したからである
  • 選択確率の上下で表現すれば良い

テストケースをまず修正する

  • 今は状態変化を観察してる

現状

  • 「あるキーワードKについてQ1の質問をした場合、その次にKについてQ2、Q3の質問をしたい」
  • これを状態遷移で表現していた
    • Q1への返答を処理するタイミングで「直前の質問がQ1ならS2に遷移」
    • S2ではQ2しか出ない
    • Q2は直前の質問で使われたキーワードを使う
    • 見かけ上は一つのキーワードを取る質問なのに、実装上はキーワードを取らない質問、というトリッキーな方法で実現してた
  • これではその流れが始まった後でNGしても固定的な会話の流れになってしまう
    • NGKWで対象のキーワードが消えたとしても、「キーワードを取らない質問」なので容赦なく出てしまう
  • スコア変動に置き換えたい
    • Q2は直前の質問がQ1である時にスコアが上昇する
    • キーワードをとる質問に変える
      • キーワードが直前の質問で使ったものと一致するときにスコア上昇

done: b4ed166473fee9b4b1ecbc2cb439d7102f5831cb

  • GitHubにリンクしようかと思ったがリポジトリはHerokuだった

懸念点

  • 今は適当にスコア1000を返してる
  • スコア1000を超える返答案があるときにはそちらが優先されてしまう
  • NGによるスコア減少を掛けた時、キーワード自体は生きてるからスコア1000で続行されてしまう
    • これはユーザの期待に反する挙動だなぁ
      • ✅直前のNG圧を使ってスコアを減らすことにした
      • 100%のNG圧が掛かってるときにはスコアが0になるのでこれで良さそう