コミュニケート

里々MC139-3でのコミュニケートの処理仕様の詳細を以下にまとめました。
どこに載せるか迷ったのでとりあえず日記に。
里々使いはどっかに転載してください(えー

■里々のあいまい検索について

・以下の記載において△は全角空白を表します。
・以下の記載において""はキーワードを示す表現であり、実際の
 処理中または辞書中には記載しません。

【サマリ】
・あいまい検索は、コミュニケート及び"≫"記法において用いられます。
・あいまい検索では、△で区切った単語の得点を評価して行われます。
・あいまい検索は、ゴースト名部分が異なる候補を選ばなくなりました。
 (Mc136-901にて実装、MC139-3にて再修正)

【前提】

・コミュニケートとユーザ入力は同じ処理です。
 ユーザ入力の場合、ゴースト名を"ユーザ"と読み替えてください。

・対象文とは以下のものを言います
 (1)コミュニケートで他のゴーストのしゃべった言葉
    対象文=ゴースト名「コミュニケート文字列」

 (2)辞書内で"≫"記法で記載された文
    対象文="≫"以降の文字列そのまま

・候補文とは以下のものを言います
 辞書内の"*○○「△ほげほげ△へもへも ・・・"形式の記載

・特定候補文は、"○○"のあるものを、汎用候補文は、"○○"の無いものを言います。
 (例)
 *ユーザ「△ほげほげ =特定候補文
 *「△へもへも    =汎用候補文

・対象文に"「"が含まれるかどうかによって動作が異なります(MC139-3からの新機能)
 対象文に"「"が含まれる場合を名前限定モード、
 対象文に"「"が含まれない場合を通常コミュ探索モードと呼びます。
 MC139-3より前の場合、常に通常コミュ探索モードです。

【候補の絞込み処理】
(1)名前限定モードの場合
・ヒットする候補は、特定候補文のうち○○の部分が一致するものと、
 汎用候補文に絞られます。
・ヒットテストの処理は、"「"以降の文字列についてのみ行われます。
 (具体的には、対象文から"「"までの文字列が除かれ、
  候補文から最初の単語("○○「"もしくは"「")が除かれます)

(2)通常コミュ探索モードの場合
・ヒットテストする候補は、候補文すべてです。
・ヒットテストする対象は、対象文そのままです。
・つまり、ヒットテストの処理は、"○○「"もしくは"「" 部分も
 1つの単語とみなして行われます。

【ヒットテスト】
・絞込み後の候補文すべてを、△で分解し、単語にします。
・単語のそれぞれの部分が、対象文に含まれているかどうかのテストが行われます。
・対象文に単語が含まれていればヒットです。

・ヒットした単語は10点+単語の長さ1文字につき1点の得点を得ます。
・但し、最後が「で終わっている単語は4点固定です。
・ヒットしなかった単語は、コミュニケートの場合0点、≫記法の場合-999点です。
・それぞれの単語の点数を合計したものが、その候補文の得点となります。

【結果確定】
・最高点を得た候補文が最終的な結果となります。
・ただし、4点以下のものしかなかった場合は結果なしとなります。