重複回避¶
同じ名前の文や、単語群の単語が複数あるとき、里々は候補から 1 つを選びます。既定では等しい確率で選びますが、同じものが続けて選ばれるのを避けるように設定できます。
設定¶
システム変数で、対象と方法・期間を指定します。
$単語群「名前」の重複回避=方法、期間
$文「名前」の重複回避=方法、期間
名前を * にすると、そのときに存在するすべての単語群(文)が対象です。値の期間は省略でき、省略すると 起動中 です。方法を省略すると 無効 です。区切りは 、 か , です。
設定する場所
設定は、辞書が読み込まれたあとに存在する単語群・文にだけ効きます。*初期化(satori_conf.txt)では、まだ単語群と文が存在しないので効きません。*OnSatoriLoad など、読み込み後に実行されるトークの中に書いてください。
方法¶
| 方法 | 動作 |
|---|---|
| 無効 | 完全にランダム |
| 有効(完全) | 全部を 1 度ずつ使い切るまで、同じものを選ばない。1 周したら、また全部が候補になる(周の切り替わりでの連続も避ける) |
| 直前 | 直前に選んだものだけを避ける |
| 正順(降順) | 定義した順に、1 つずつ順番に選ぶ。最後まで行ったら最初に戻る |
| 逆順(昇順) | 定義した順の逆に、1 つずつ順番に選ぶ |
期間¶
| 期間 | 動作 |
|---|---|
| 起動中 | 記録は起動している間ずっと続く |
| トーク中 | 1 回の応答(トーク)が終わるたびに、記録をクリアする |
既定の設定¶
辞書の読み込みが終わった時点で、次の設定が自動で行われます。
$単語群「*」の重複回避=有効、トーク中
$文「*」の重複回避=有効
つまり単語群は 1 回のトークの中で同じ単語を選ばず、文は 1 周するまで同じものを選びません。この設定を変えたいときは、*OnSatoriLoad で上書きします。
使い切りの確認¶
(単語群「名前」の重複回避枯渇) は、有効・順番の方法で最後の候補まで使い切った直後に 1 を返します。
条件式との関係¶
採用条件式(文と単語群)や、単語の追加・追加単語の削除 で候補が変わったときは、その時点の候補に合わせて記録が更新されます。残った候補の記録(使用済みかどうか、順番の位置)は引き継がれます(Mc202-2以降。Mc202-1 までは、単語を追加・削除すると記録が消えることがありました)。
方法が 正順(降順) 逆順(昇順) のとき、直前に選んだ候補が条件で外れると、順番どおりの次の候補から続けます(Mc202-2以降。Mc202-1 までは、最初に戻ることがありました)。