SemanticResultValue Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een semantische waarde en koppelt de waarde eventueel aan een onderdeel van een grammatica voor spraakherkenning.
public ref class SemanticResultValue
public class SemanticResultValue
type SemanticResultValue = class
Public Class SemanticResultValue
- Overname
-
SemanticResultValue
Voorbeelden
Het volgende voorbeeld retourneert een Grammar die de opdracht 'Set/Change/Alter Foreground/Background ... [kleurenlijst]". SemanticResultValue en SemanticResultKey exemplaren (in combinatie met Choices en GrammarBuilder objecten) worden gebruikt om semantiek te definiëren die bij herkenning kan worden geparseerd. De geparseerde semantiek bepaalt welke kleur is aangevraagd en of de voorgrond of achtergrond moet worden gewijzigd.
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;
}
Opmerkingen
Het gebruik van SemanticResultValue en SemanticResultKey objecten, in combinatie met GrammarBuilder en Choices, is de eenvoudigste manier om een semantische structuur voor een Grammarte ontwerpen. Semantische informatie voor een woordgroep wordt geopend door een exemplaar van SemanticValue, via de Semantics eigenschap op RecognizedPhrase.
Note
Waarden die worden beheerd door SemanticResultValue objecten, worden gedefinieerd door Object exemplaren die worden doorgegeven aan hun constructors. Het onderliggende type hiervan moet zijn, int, of . floatstringboolObject Elk ander type voorkomt de constructie van een Grammar exemplaar met de SemanticResultValue.
Het typische gebruik van een SemanticResultValue exemplaar koppelt het exemplaar aan een herkenbaar onderdeel van een Grammar, zoals een woordgroep, een regel of een Choices object. Als het bijbehorende onderdeel wordt gebruikt als onderdeel van een herkenningsbewerking, wordt deze SemanticResultValue gebruikt om een waarde te definiëren in de semantiek van de geretourneerde woordgroep.
Er zijn twee basismethoden voor het koppelen van een SemanticResultValue exemplaar aan een grammatica-element, afhankelijk van de constructor die wordt gebruikt om het SemanticResultValuete maken.
Als alleen de waarde (opgegeven door een exemplaar van Object) wordt gebruikt om een SemanticResultValue object samen te stellen, wordt de SemanticResultValue waarde gekoppeld aan het grammaticaonderdeel dat eraan voorafging, naast een GrammarBuilder object.
Als in het onderstaande codefragment bijvoorbeeld een Grammar geconstrueerd met dit GrammarBuilder exemplaar het woord 'achtergrond' herkent, wordt een waarde
trueingesteld in de herkende woordgroepsemantiek.GrammarBuilder backgroundGB=new GrammarBuilder("background"); backgroundGB.Append(new SemanticResultValue(true));Zie de beschrijving van SemanticResultValue(Object).
Als een tekenreekswaardegroep of een specifiek GrammarBuilder exemplaar wordt gebruikt, samen met een Object waarde die een SemanticResultValue waarde aangeeft, wordt die waarde automatisch gekoppeld aan de tekenreekswaardezin of het GrammarBuilder exemplaar. Als de woordgroep of GrammarBuilder het object wordt gebruikt in het proces van herkenning, wordt de waarde toegewezen aan de semantiek van de herkende woordgroep.
Het volgende voorbeeld illustreert dit en is functioneel gelijk aan het voorgaande voorbeeld, waarin expliciete aanroepen naar Append en SemanticResultValue(Object). Als de herkenningslogica het woord 'achtergrond' gebruikt, wordt de waarde
truetoegevoegd aan de herkende semantiek.fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background", true));Zie de beschrijving van SemanticResultValue(GrammarBuilder, Object) en SemanticResultValue(String, Object)voor meer informatie.
Als u wilt worden gebruikt door een Grammar herkenning, moeten alle SemanticResultValue exemplaren worden gekoppeld aan een van de SemanticValue objecten die door die Grammarinstantie worden gebruikt. Dit wordt gedaan door een semantische sleutel te koppelen aan de SemanticResultValue.
Semantische sleutels kunnen expliciet aan een SemanticResultValueobject worden gekoppeld.SemanticResultKey SemanticResultValue exemplaren die niet expliciet zijn gekoppeld aan een sleutel, worden gekoppeld aan de hoofdsleutel van de standaardwaarde SemanticValue.
Nadat een SemanticResultValue is gebruikt om de Valuewaarde in te stellen, ongeacht of deze is getagd met de standaardhoofdsleutel of door een bepaalde waarde SemanticResultKey, mag deze waarde niet worden gewijzigd of treedt er een uitzondering op tijdens de herkenningsbewerkingen.
In het volgende voorbeeld wordt een uitzondering veroorzaakt omdat deze wordt ingesteld en vervolgens de hoofdmap Value van een Grammar.
GrammarBuilder gb=new GrammarBuilder();
gb.Append(new SemanticResultValue("One"));
gb.Append(new SemanticResultValue("Two"));
Aan de andere kant is de code in het volgende voorbeeld toegestaan. Hoewel er meerdere exemplaren van SemanticResultValueworden gedefinieerd, worden ze opgenomen in een Choices object en wordt er maar één gebruikt om de waarde van de sleutel bgOrfgTextin te stellen.
Choices fgOrbgChoice = new Choices();
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background"));
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground"));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgText", fgOrbgChoice);
Constructors
| Name | Description |
|---|---|
| SemanticResultValue(GrammarBuilder, Object) |
Initialiseert een nieuw exemplaar van de SemanticResultValue klasse en koppelt een semantische waarde aan een GrammarBuilder object. |
| SemanticResultValue(Object) |
Initialiseert een nieuw exemplaar van de SemanticResultValue klasse en geeft een semantische waarde op. |
| SemanticResultValue(String, Object) |
Initialiseert een nieuw exemplaar van de SemanticResultValue klasse en koppelt een semantische waarde aan een String object. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToGrammarBuilder() |
Retourneert een exemplaar van GrammarBuilder het huidige SemanticResultValue exemplaar. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |