Bagikan melalui


SemanticResultValue Kelas

Definisi

Mewakili nilai semantik dan secara opsional mengaitkan nilai dengan komponen tata bahasa pengenalan ucapan.

public ref class SemanticResultValue
public class SemanticResultValue
type SemanticResultValue = class
Public Class SemanticResultValue
Warisan
SemanticResultValue

Contoh

Contoh berikut mengembalikan yang Grammar mengenali perintah "Set/Change/Alter Foreground/Background ... [daftar warna]". SemanticResultValue instans dan SemanticResultKey (bersama dengan Choices objek dan GrammarBuilder ) digunakan untuk menentukan semantik yang dapat diurai pada pengenalan. Semantik yang diurai akan menentukan warna mana yang diminta dan apakah latar depan atau latar belakang akan dimodifikasi.

private Grammar FgBgColorGrammar()
{
  Grammar grammar = null;

  // Allow the command to begin with set, alter, change.
  Choices introChoices = new Choices();
  foreach (string introString in new string[] { "Change", "Set", "Alter" })
  {
    GrammarBuilder introGB = new GrammarBuilder(introString);
    introChoices.Add(new SemanticResultValue(introGB, String.Format("Command: {0}", introString)));
  }

  GrammarBuilder cmdIntro = new GrammarBuilder(introChoices);

  // Define the arguments for the command to select foreground or background
  // and to change their color as semantic values.
  Choices fgOrbgChoice = new Choices();
  GrammarBuilder backgroundGB=new GrammarBuilder("background");
  backgroundGB.Append(new SemanticResultValue(true));
  fgOrbgChoice.Add(backgroundGB);
  fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground", false));
  SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgBool", fgOrbgChoice);
  Choices colorChoice = new Choices();
  foreach (string colorName in System.Enum.GetNames(typeof(KnownColor)))
  {

    // Use implicit conversion of SemanticResultValue to GrammarBuilder.
    colorChoice.Add(
        (GrammarBuilder) (new SemanticResultValue(colorName, (Color.FromName(colorName)).Name)));
  }

  // Create a GrammarBuilder for CmdArgs to be appended to CmdIntro using
  // semantic keys.
  GrammarBuilder cmdArgs = new GrammarBuilder();
  cmdArgs.Append(new SemanticResultKey("BgOrFgBool", fgOrbgChoice));
  cmdArgs.AppendWildcard();
  cmdArgs.Append(new SemanticResultKey("colorStringList", colorChoice));

  GrammarBuilder cmds =
      GrammarBuilder.Add(
                       cmdIntro,
                       new GrammarBuilder(new SemanticResultKey("Cmd Args", cmdArgs)));
  grammar = new Grammar(cmds);
  grammar.Name = "Tree [Set,change,alter] [foreground,background] * color";
  return grammar;
}

Keterangan

Penggunaan SemanticResultValue objek dan SemanticResultKey , bersama dengan GrammarBuilder dan Choices, adalah cara term mudah untuk merancang struktur semantik untuk Grammar. Informasi semantik untuk frasa diakses dengan mendapatkan instans SemanticValue, melalui Semantics properti di RecognizedPhrase.

Catatan

Nilai yang dikelola oleh SemanticResultValue objek ditentukan oleh Object instans yang diteruskan ke konstruktornya. Jenis yang mendasar dari ini Object harus bool, , floatint, atau string. Jenis lain akan mencegah konstruksi Grammar instans dengan SemanticResultValue.

Penggunaan SemanticResultValue umum instans mengaitkan instans dengan komponen yang dapat dikenali dari Grammar, seperti frasa, aturan, atau Choices objek. Jika komponen terkait digunakan sebagai bagian dari operasi pengenalan, SemanticResultValue digunakan untuk menentukan nilai dalam semantik frasa yang dikembalikan.

Ada dua metode dasar untuk mengaitkan SemanticResultValue instans dengan elemen tata bahasa, tergantung pada konstruktor yang digunakan untuk membuat SemanticResultValue.

  • Jika hanya nilai (ditentukan oleh instans Object) yang digunakan untuk membuat SemanticResultValue objek, SemanticResultValue dikaitkan dengan komponen tata bahasa yang mendahuluinya, selain GrammarBuilder objek.

    Misalnya, dalam fragmen kode di bawah ini, jika yang Grammar dibangun menggunakan instans ini GrammarBuilder mengenali kata "latar belakang", nilai true diatur dalam semantik frasa yang dikenali.

    GrammarBuilder backgroundGB=new GrammarBuilder("background");
    backgroundGB.Append(new SemanticResultValue(true));
    

    Untuk informasi selengkapnya, lihat deskripsi SemanticResultValue(Object).

  • Jika frasa nilai string atau instans tertentu GrammarBuilder digunakan, bersama dengan Object yang menentukan SemanticResultValue nilai, nilai tersebut secara otomatis dikaitkan dengan frasa nilai string atau GrammarBuilder instans. Jika frasa atau GrammarBuilder objek digunakan dalam proses pengenalan, nilai akan ditetapkan ke semantik frasa yang dikenali.

    Contoh berikut mengilustrasikan ini, dan secara fungsional setara dengan contoh sebelumnya, yang menggunakan panggilan eksplisit ke Append dan SemanticResultValue(Object). Jika logika pengenalan menggunakan kata "latar belakang", nilai true akan ditambahkan ke semantik yang dikenali.

    fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background", true));
    

    Untuk informasi selengkapnya, lihat deskripsi SemanticResultValue(GrammarBuilder, Object) dan SemanticResultValue(String, Object).

Untuk digunakan oleh Grammar dalam pengenalan, semua SemanticResultValue instans harus dikaitkan dengan salah SemanticValue satu objek yang digunakan oleh .Grammar Ini dilakukan dengan mengaitkan kunci semantik dengan SemanticResultValue.

Kunci semantik dapat secara eksplisit dilampirkan ke SemanticResultValue, menggunakan SemanticResultKey objek . SemanticResultValue instans yang tidak secara eksplisit dilampirkan ke kunci dilampirkan ke kunci akar default SemanticValue.

SemanticResultValue Setelah digunakan untuk mengatur Value, apakah itu ditandai dengan kunci akar default atau oleh tertentu SemanticResultKey, nilai tersebut tidak boleh dimodifikasi atau pengecualian akan terjadi selama operasi pengenalan.

Contoh berikut akan menyebabkan pengecualian karena menetapkan lalu memodifikasi akar Value .Grammar

GrammarBuilder gb=new GrammarBuilder();
gb.Append(new SemanticResultValue("One"));
gb.Append(new SemanticResultValue("Two"));

Di sisi lain, kode dalam contoh berikut diizinkan. Meskipun mendefinisikan beberapa instans , instans SemanticResultValuetersebut disertakan dalam Choices objek , dan hanya satu yang akan digunakan untuk mengatur nilai kunci bgOrfgText.

Choices fgOrbgChoice = new Choices();
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background"));
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground"));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgText", fgOrbgChoice);

Konstruktor

SemanticResultValue(GrammarBuilder, Object)

Menginisialisasi instans SemanticResultValue baru kelas dan mengaitkan nilai semantik dengan GrammarBuilder objek .

SemanticResultValue(Object)

Menginisialisasi instans SemanticResultValue baru kelas dan menentukan nilai semantik.

SemanticResultValue(String, Object)

Menginisialisasi instans SemanticResultValue baru kelas dan mengaitkan nilai semantik dengan String objek .

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToGrammarBuilder()

Mengembalikan instans yang GrammarBuilder dibuat dari instans saat ini SemanticResultValue .

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga