Share via


SemanticResultValue Sınıf

Tanım

Bir semantik değeri temsil eder ve isteğe bağlı olarak değeri konuşma tanıma dil bilgisinin bir bileşeniyle ilişkilendirir.

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

Örnekler

Aşağıdaki örnek Grammar , "Ayarla/Değiştir/Ön Plan/Arka Plan Değiştir ... [renk listesi]". SemanticResultValueve SemanticResultKey örnekleri (ve GrammarBuilder nesneleriyle Choices birlikte) tanımada ayrıştırılabilir semantiği tanımlamak için kullanılır. Ayrıştırılan semantik, hangi rengin istendiğini ve ön planın mı yoksa arka planın mı değiştirileceğini belirler.

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;
}

Açıklamalar

ve Choicesile birlikte ve SemanticResultKey nesnelerinin SemanticResultValue kullanımı, bir için Grammaranlamsal yapı tasarlamanın en GrammarBuilder kolay yoludur. Bir tümcecik için anlamsal bilgilere, üzerinde RecognizedPhraseözelliği aracılığıyla Semantics bir örneği SemanticValueelde edilerek erişilir.

Not

Nesneler tarafından SemanticResultValue yönetilen değerler, oluşturucularına geçirilen örnekler tarafından Object tanımlanır. Bunun temel türü Object , int, floatveya stringolmalıdırbool. Başka herhangi bir tür, ile bir Grammar örneğin oluşturulmasını SemanticResultValueengeller.

Bir örneğin tipik kullanımı SemanticResultValue , örneği tümcecik, kural veya nesne gibi bir Grammaröğesinin tanınabilir bir Choices bileşeniyle ilişkilendirir. İlişkili bileşen bir tanıma işleminin parçası olarak kullanılıyorsa, SemanticResultValue döndürülen tümceciği semantiğinde bir değer tanımlamak için kullanılır.

örneğini oluşturmak SemanticResultValueiçin kullanılan oluşturucuya bağlı olarak, bir örneği dil bilgisi öğesiyle ilişkilendirmek SemanticResultValue için iki temel yöntem vardır.

  • Bir nesne oluşturmak SemanticResultValue için yalnızca değeri (bir örneği Objecttarafından belirtilen) kullanılıyorsa, SemanticResultValue nesnesine GrammarBuilder ek olarak kendisinden önceki dil bilgisi bileşeniyle ilişkilendirilir.

    Örneğin, aşağıdaki kod parçasında, bu GrammarBuilder örnek kullanılarak oluşturulduğunda "background" sözcüğü tanınıyorsaGrammar, tanınan tümcecik semantiğinde değeri true ayarlanır.

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

    Daha fazla bilgi için açıklamasına SemanticResultValue(Object)bakın.

  • Bir dize değeri tümceciği veya belirli GrammarBuilder bir örnek, değeri SemanticResultValue belirten bir Object ile birlikte kullanılırsa, bu değer otomatik olarak dize değeri tümceciği veya GrammarBuilder örneğiyle ilişkilendirilir. Tümcecik veya GrammarBuilder nesne tanıma işleminde kullanılıyorsa, değer tanınan tümceciği semantiğine atanır.

    Aşağıdaki örnek bunu gösterir ve işlevsel olarak ve SemanticResultValue(Object)için açık çağrıları kullanan önceki örnekle Append eşdeğerdir. Tanıma mantığı "background" sözcüğünü kullanıyorsa, değer true tanınan semantiğine eklenir.

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

    Daha fazla bilgi için ve SemanticResultValue(String, Object)açıklamalarını SemanticResultValue(GrammarBuilder, Object) inceleyin.

tanımada tarafından Grammar kullanılmak için tüm SemanticResultValue örneklerin tarafından Grammarkullanılan nesnelerden biriyle SemanticValue ilişkilendirilmesi gerekir. Bu, bir semantik anahtar ile SemanticResultValueilişkilendirilerek gerçekleştirilir.

Anlam anahtarları bir nesnesi kullanılarak SemanticResultKey açıkça öğesine SemanticResultValueeklenebilir. SemanticResultValue açıkça bir anahtara eklenmemiş örnekler, varsayılan SemanticValueöğesinin kök anahtarına eklenir.

SemanticResultValue varsayılan kök anahtarla veya belirli SemanticResultKeybir tarafından etiketlenmiş olsun, ayarlamak Valueiçin bir kullanıldıktan sonra, bu değer değiştirilmemelidir veya tanıma işlemleri sırasında bir özel durum oluşur.

Aşağıdaki örnek bir özel duruma neden olur çünkü bir öğesinin kökünü ValueGrammarayarlar ve değiştirir.

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

Öte yandan, aşağıdaki örnekteki koda izin verilir. birden çok örneğini SemanticResultValuetanımlasa da, bunlar bir Choices nesnesine dahil edilir ve anahtarının bgOrfgTextdeğerini ayarlamak için yalnızca bir tane kullanılır.

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

Oluşturucular

SemanticResultValue(GrammarBuilder, Object)

sınıfının yeni bir örneğini SemanticResultValue başlatır ve bir semantik değeri bir GrammarBuilder nesneyle ilişkilendirir.

SemanticResultValue(Object)

sınıfının yeni bir örneğini SemanticResultValue başlatır ve bir anlam değeri belirtir.

SemanticResultValue(String, Object)

sınıfının yeni bir örneğini SemanticResultValue başlatır ve bir semantik değeri bir String nesneyle ilişkilendirir.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToGrammarBuilder()

Geçerli SemanticResultValue örnekten GrammarBuilder bir örneği oluşturur.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.