

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 重み
<a name="grammar-weights"></a>

要素には*重み*属性を追加できます。重みは正の浮動小数点値で、音声認識中に項目内のフレーズがどの程度ブーストされるかを表します。詳細については、音声認識文法仕様バージョン 1 W3C レコメンデーションの「[重み](https://www.w3.org/TR/speech-grammar/)」を参照してください。

重みは、0 より大きく 10 以下で、小数点以下桁数は 1 つのみである必要があります。重みが 0 より大きく 1 未満の場合、フレーズはマイナスにブーストされます。重みが 1 より大きく 10 未満の場合、フレーズはプラスにブーストされます。重み 1 は重みが皆無であると同じことであり、フレーズのブーストは行われません。

音声認識のパフォーマンスを向上させるために項目に適切な重みを付けるのは難しい作業です。重みを割り当てる際のヒントをいくつか紹介します。
+ 項目に重みを割り当てていない文法から始めましょう。
+ スピーチのどのパターンがよく誤認されているかを判断します。
+ 音声認識のパフォーマンスが向上し、リグレッションがなくなるまで、重みに異なる値を適用します。

**例 1**

たとえば、空港に関する文法があって、*ニューヨーク*が*ニューアーク*と誤認されることが多い場合は、重み 5 を割り当てることでニューヨークをポジティブに評価できます。

```
<rule> id="airport">
    <one-of>
        <item>
            Boston
            <tag>out="Boston"</tag>
        </item>
        <item weight="5">
            New York
            <tag>out="New York"</tag>
        </item>
        <item>
            Newark
            <tag>out="Newark"</tag>
        </item>
    </one-of>
</rule>
```

**例 2**

たとえば、航空会社の予約コードに、英語のアルファベットで始まり、その後に 3 桁が続く文法があるとします。予約コードはほとんどの場合 B または D で始まりますが、B は P、D は T と誤認されることが多いことに気付きます。B と D をプラスにブーストできます。

```
<rule> id="alphabet">
    <one-of>
        <item>A<tag>out.letters+='A';</tag></item>
        <item weight="3.5">B<tag>out.letters+='B';</tag></item>
        <item>C<tag>out.letters+='C';</tag></item>
        <item weight="2.9">D<tag>out.letters+='D';</tag></item>
        <item>E<tag>out.letters+='E';</tag></item>
        <item>F<tag>out.letters+='F';</tag></item>
        <item>G<tag>out.letters+='G';</tag></item>
        <item>H<tag>out.letters+='H';</tag></item>
        <item>I<tag>out.letters+='I';</tag></item>
        <item>J<tag>out.letters+='J';</tag></item>
        <item>K<tag>out.letters+='K';</tag></item>
        <item>L<tag>out.letters+='L';</tag></item>
        <item>M<tag>out.letters+='M';</tag></item>
        <item>N<tag>out.letters+='N';</tag></item>
        <item>O<tag>out.letters+='O';</tag></item>
        <item>P<tag>out.letters+='P';</tag></item>
        <item>Q<tag>out.letters+='Q';</tag></item>
        <item>R<tag>out.letters+='R';</tag></item>
        <item>S<tag>out.letters+='S';</tag></item>
        <item>T<tag>out.letters+='T';</tag></item>
        <item>U<tag>out.letters+='U';</tag></item>
        <item>V<tag>out.letters+='V';</tag></item>
        <item>W<tag>out.letters+='W';</tag></item>
        <item>X<tag>out.letters+='X';</tag></item>
        <item>Y<tag>out.letters+='Y';</tag></item>
        <item>Z<tag>out.letters+='Z';</tag></item>
    </one-of>
</rule>
```