Scoring

:Score(Weight)

このコマンドはオプションです。

ルール変数の中の各式には、オプションでスコア重みを含めることができます。スコア重みは、:Score(Weight) を式の末尾に付加することによって指定します。ここで Weight は、0 ~ 100 の整数です。Score コマンドは、OR 演算子 (|) や変数の末尾を表す文字 (;) の前に配置することができます。式に明示的なスコアリング コマンドがない場合、重み値は 100 と仮定されます。この場合、パーシング スコアは 0 または 100 になります。ルール変数が他のルール変数を含む場合、スコア値は下位のルールと平均されます。例えば、次のルール変数があるとします。

<root> = <a> <b> <c>;
<a> = 'a':Score (100);
<b> = 'b':Score (50);
<c> = 'c':Score (100);

<root> のスコアは 83 と計算されます [(100+50+100)/3]。平均を計算する際、スコアは最も近い整数に四捨五入されます。

合計平均スコアが ParserScore フィールドの出力になります。ParserScore の値は、パーシング グラマーでの定義に従って、0 ~ 100 の間になります。マッチが返されない場合は、0 が返されます。

親の式のスコア重みは、子の式のスコア重みに影響を与えることがあります。例えば、ルール <C> がルール <A> および <B> に次のように参照されるものとします。

<A> = <C>;
<B> = <C>:Score(50);
<C> = @Table("something"):Score(50);

<A> がマッチする場合、スコアは <C> の値の 100% (デフォルト スコア) で、スコア重みは 50 になります。しかし、<B> がマッチする場合、その値は <C> の 50% で、スコア重みは 25 になります。

このコマンドを使用するには、次の手順に従います。

  1. コマンドを挿入する場所にカーソルを位置付けます。
  2. [コマンド] リストの [:Score] をダブルクリックします。
  3. テキスト ボックスに 0 ~ 100 の範囲の値を入力します。
  4. [OK] をクリックします。