Struktur der Grammatikdatei

Grammatikdateien müssen eine bestimmte Struktur aufweisen, damit Speakeasy den Inhalt der Datei korrekt interpretieren kann.

Video zu diesem Thema ansehen (3:38)

Das folgende Beispiel veranschaulicht eine einfache Grammatikdatei:

#BNF+EM V2.1;

/*

GRAMMAR: usa_states.bnf

 

Beschreibung:

Diese Grammatikdatei erkennt einige Staaten der USA.

 

Was kann ich sagen?

Sie können einen beliebigen der folgenden amerikanischen Staaten sagen.

*/

 

!grammar usa_states;

!start <Staat>;

 

<Staat>:

Alabama

| Alaska

| Connecticut

| Florida

| Idaho

| Kansas

| "New Jersey"

| "New York";

#BNF+EM V2.1;

Jede Grammatikdatei muss mit einer Aussage beginnen, wie z. B. #BNF+EM V1.1;, die angibt, wie Speakeasy die Grammatikdatei behandeln soll. Sie brauchen diese Zeile nicht zu ändern.

/* */ oder //

Um Kommentare zu erstellen, d. h. Informationen, die von der Engine ignoriert werden, können Sie eine Zeile mit // beginnen oder Text zwischen den Markierungen /* und */ einfügen. Die Abschnitte Beschreibung und Was kann ich sagen? können Sie so bearbeiten, dass Sie die an der Grammatikdatei vorgenommenen Änderungen beschreiben.

!grammar [dateiname]

Wenn Sie den Namen der Grammatikdatei ändern, muss der Befehl !grammar den neuen Dateinamen verwenden. Wenn zum Beispiel der Name der Datei in VoicePick.bnf, geändert wurde, lautet der Befehl: !grammar VoicePick;.

!start <Staat>;

Der Befehl !start gibt an, welche Gruppe von Begriffen in der Grammatik verfügbar ist, wenn die Grammatik verwendet wird. Im obigen Beispiel wird das Modul auf alle Begriffe in der Regel <Staat> reagieren. Falls mehrere Regeln existierten und nur eine vom Befehl referenziert wurde, werden alle anderen Regeln ignoriert.

<Staat>: Alabama | Connecticut |...

Die Wörter und Phrasen zwischen <Staat>: und dem letzten ; sind die Begriffe, die von der Grammatik akzeptiert werden. Die einzelnen Wörter oder Phrasen müssen durch ein |-Symbol (ein ODER-Symbol) voneinander getrennt werden. Die Begriffe können nebeneinander angezeigt oder vertikal ausgerichtet werden, um die Bearbeitung zu erleichtern.

Für eine bessere Erkennung einander ähnlicher Begriffe, wie z. B. New York und New Jersey, schließen Sie die Phrase in "" (Anführungszeichen) ein. Dadurch wird die Speakeasy-Engine gezwungen, die akzeptierte Phrase genauer mit der Benutzerantwort zu vergleichen.

Mehrere Regeln

In einigen Grammatikdateien ist die Hauptregel in Unterabschnitte unterteilt, um die Verwaltung der Begriffe zu vereinfachen. Wenn in einer Datei mehrere Regeln vorhanden sind, stellen Sie sicher, dass alle in der auf !Start-Zeile verwendeten Regel enthalten sind.

!start <Sprachausgabe>;

<Sprachausgabe>: <JaNein> | <Vielleicht>;

<JaNein>: ja | nein;

<Vielleicht>: vielleicht;

Bei diesem Beispiel beinhaltet die Regel <Sprachausgabe> die Regeln <JaNein> und <Vielleicht>. Somit reagiert das Modul auf alle Begriffe in beiden Regeln, also <JaNein> und <Vielleicht>.

Ähnliche Begriffe

Bei ähnlich klingenden Wörtern erhalten Sie möglicherweise schlechte Erkennungsergebnisse. Die Erkennung wird verbessert, wenn Sie längere und spezifischere Phrasen verwenden. Zum Beispiel: Statt ähnliche Begriffe wie "schneller" und "am schnellsten" zu verwenden, ersetzen Sie diese durch Phrasen wie "mach schneller" und "Warp-Geschwindigkeit”.