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 になります。
このコマンドを使用するには、次の手順に従います。
- コマンドを挿入する場所にカーソルを位置付けます。
- [コマンド] リストの [:Score] をダブルクリックします。
- テキスト ボックスに 0 ~ 100 の範囲の値を入力します。
- [OK] をクリックします。