SemanticValue Класс

Определение

Представляет семантическую организацию распознанной фразы.Represents the semantic organization of a recognized phrase.

public ref class SemanticValue sealed : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<System::String ^, System::Speech::Recognition::SemanticValue ^>>, System::Collections::Generic::IDictionary<System::String ^, System::Speech::Recognition::SemanticValue ^>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<System::String ^, System::Speech::Recognition::SemanticValue ^>>
[System.Serializable]
public sealed class SemanticValue : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string,System.Speech.Recognition.SemanticValue>>, System.Collections.Generic.IDictionary<string,System.Speech.Recognition.SemanticValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string,System.Speech.Recognition.SemanticValue>>
type SemanticValue = class
    interface IDictionary<string, SemanticValue>
    interface ICollection<KeyValuePair<string, SemanticValue>>
    interface seq<KeyValuePair<string, SemanticValue>>
    interface IEnumerable
Public NotInheritable Class SemanticValue
Implements ICollection(Of KeyValuePair(Of String, SemanticValue)), IDictionary(Of String, SemanticValue), IEnumerable(Of KeyValuePair(Of String, SemanticValue))
Наследование
SemanticValue
Атрибуты
Реализации

Примеры

В следующем примере показан обработчик SpeechRecognized события, предназначенного для обработки команд для изменения цвета переднего плана и фона.The following example shows a handler for a SpeechRecognized event designed to handle commands to change foreground and background color.

Обработчик определяет распознанные фразы, не имеющие базовой семантической структуры, выявляя Count нуль и a Value из. nullThe handler identifies recognized phrases that have no underlying semantic structure by detecting a Count of zero and a Value of null. Затем эти выходные данные распознавания обрабатываются напрямую путем анализа необработанного текста.This recognition output is then processed directly by parsing the raw text.

В других случаях обработчик использует ключи для получения RGB-компонентов имени цвета, чтобы определить, будет ли команда изменять передний или фоновый цвет или указать, что допустимый ключ не был найден.In other cases, the handler uses keys to obtain the RGB components of a color name, to determine whether the command will change the foreground or background, or to indicate that no valid key was found.

  
newGrammar.SpeechRecognized +=  
  delegate(object sender, SpeechRecognizedEventArgs eventArgs)   
  {  
  
    // Retrieve the value of the semantic property.  
    bool changeBackGround = true;  
    string errorString = "";  
    SemanticValue semantics = eventArgs.Result.Semantics;  
  
    Color newColor = Color.Empty;  
  
    try   
    {  
      if (semantics.Count == 0 && semantics.Value==null)  
      {  
        // Signifies recognition by a grammar with no semantics.  
        // Parse the string, assuming that the last word is color,  
        // and search for "background" or "foreground" in the input.  
        if (eventArgs.Result.Text.Contains("foreground"))   
        {  
          changeBackGround = false;  
        }  
        string cName = eventArgs.Result.Words[eventArgs.Result.Words.Count - 1].Text;  
        newColor = Color.FromName(cName);  
  
      }  
      else if (semantics.ContainsKey("colorStringList") ^ semantics.ContainsKey("colorRGBValueList"))   
      {  
  
        // Determine whether to change background or foreground.  
        if (semantics.ContainsKey("applyChgToBackground"))   
        {  
          changeBackGround = semantics["applyChgToBackground"].Value is bool;  
        }  
  
        // Get the RGB color value.  
        if (semantics.ContainsKey("colorStringList"))   
        {  
          newColor = Color.FromName((string)semantics["colorStringList"].Value);  
        }  
        if (semantics.ContainsKey("colorRGBValueList"))   
        {  
          newColor = System.Drawing.Color.FromArgb((int)semantics["colorRGBValueList"].Value);  
        }  
      }  
      else   
      {  
  
        // Throw an exception if the semantics do not contain the keys we  
        // support.  
        throw(new Exception("Unsupported semantics keys found."));  
      }  
    }  
  
    catch (Exception exp)   
    {  
      MessageBox.Show(String.Format("Unable to process color semantics.:\n{0}\n", exp.Message));  
      return;  
    }  
  
    // Change colors, either foreground or background.  
    if (changeBackGround)   
    {  
      BackColor = newColor;  
      float Bright = BackColor.GetBrightness();  
      float Hue = BackColor.GetHue();  
      float Sat = BackColor.GetSaturation();  
  
      // Make sure that text is readable regardless of the background.  
      if (BackColor.GetBrightness() <= .50)   
      {  
        ForeColor = Color.White;  
      }  
      else   
      {  
        ForeColor = Color.Black;  
      }  
    }  
    else   
    {  
      ForeColor = newColor;  
      float Bright = ForeColor.GetBrightness();  
      float Hue = ForeColor.GetHue();  
      float Sat = ForeColor.GetSaturation();  
  
      // Make sure that text is readable regardless of Foreground.  
      if (ForeColor.GetBrightness() <= .50)   
      {  
        BackColor = Color.White;  
      }  
      else   
      {  
        BackColor = Color.Black;  
      }  
    }  
    return;  
  };  

Комментарии

SemanticValue— Это основной объект, реализующий семантическую технологию в System. Speech.SemanticValue is the primary object that implements the semantic technology in System.Speech. Семантическая Интерпретация позволяет использовать грамматики для определения правил, используемых механизмом распознавания для корректной интерпретации звукового ввода.Semantic interpretation allows grammars to define rules for use by a recognition engine to correctly interpret audio input. Семантическая Интерпретация также позволяет механизмам распознавания выполнять упорядочение результатов, чтобы их можно было легко обрабатывать, вместо того чтобы возвращать только распознаваемые слова и последовательности слов.Semantic interpretation also enables recognition engines to organize their results so that they can be more easily processed, rather than returning only recognized words and sequences of words.

Например, выходное средство распознавания "изменить фон на красный" должно быть проанализировано и интерпретировано приложением до того, как оно будет обработано.For example, the recognition engine output "Change background to red" would have to be parsed and interpreted by an application before it could be acted upon. Grammar Объект может указать семантическую интерпретацию, чтобы упростить обработку, указав, что фраза имеет две семантические подструктуры, один для выбора фона или переднего плана (представленный текстом "фон"), а другой — для выбора цвет (представленный текстом "Red").A Grammar object can specify a semantic interpretation to make processing clearer by specifying that the phrase has two semantic substructures, one for selecting background or foreground (represented by the text "background"), and the other for selecting color (represented by the text "red").

System. Speech представляет семантику операции распознавания в дереве SemanticValue объектов.System.Speech represents the semantics of a recognition operation in a tree of SemanticValue objects.

Каждый SemanticValue экземпляр включает следующее:Each SemanticValue instance includes the following:

  • Объект Object, доступ к которому осуществляется с Value помощью свойства, используемого для обращения к экземпляру SemanticValue.An Object, accessed by means of the Value property, used to key the instance of the SemanticValue.

  • Мера точности семантического анализа, возвращаемая Confidence свойством.A measure of the accuracy of semantic parsing, returned by the Confidence property.

  • Коллекция пар "имя-значение" (KeyValuePair<TKey,TValue>) дочерних объектов, которые также SemanticValue являются экземплярами.A collection of name/value pairs (KeyValuePair<TKey,TValue>) of child objects, which are also SemanticValue instances. Дочерние узлы доступны через SemanticValue IDictionary<TKey,TValue> реализацию с использованием ключа уточняющего запроса SemanticValue строки и экземпляра, как показано в следующем примере.Child nodes are accessible through the SemanticValue implementation of IDictionary<TKey,TValue> using a string lookup key and a SemanticValue instance, as in the following example.

    foreach (KeyValuePair<String, SemanticValue> child in semantics)   
    {  
      Utils.CreateSemanticsTreeNodes(semanticsNode.Nodes, child.Value, child.Key);  
    }  
    

Модули распознавания, основанные на System. Speech, предоставляют SemanticValue допустимые экземпляры для всех выходных данных распознавания, даже для фраз без явной семантической структуры.Recognition engines based on System.Speech provide valid instances of SemanticValue for all output from recognition, even for phrases with no explicit semantic structure.

Экземпляр для фразы получается Semantics с помощью свойства RecognizedPhrase объекта (или наследуемого от него RecognitionResultобъектов, например). SemanticValueThe SemanticValue instance for a phrase is obtained using the Semantics property on the RecognizedPhrase object (or objects that inherit from it, such as RecognitionResult).

SemanticValueобъекты, полученные для распознаваемых фраз без семантической структуры, характеризуются следующим:SemanticValue objects obtained for recognized phrases without semantic structure are characterized by:

  • Отсутствие дочерних элементов (Count значение равно 0).The lack of children (Count is 0).

  • Значение свойства Valuenull.The Value property is null.

  • Искусственный семантический уровень достоверности 1,0 (возвращается Confidence).An artificial semantic confidence level of 1.0 (returned by Confidence).

Как правило, приложения SemanticValue создают экземпляры косвенно, добавляя их к SemanticResultValue Grammar объектам SemanticResultKey с помощью экземпляров и, Choices в GrammarBuilder сочетании с объектами и.Typically, applications create SemanticValue instances indirectly, adding them to Grammar objects by using SemanticResultValue and SemanticResultKey instances, in conjunction with Choices and GrammarBuilder objects.

Непосредственная конструкция SemanticValue экземпляра полезна во время создания строго типизированных грамматик.Direct construction of a SemanticValue instance is useful during the creation of strongly-typed grammars.

SemanticValueреализует интерфейсы IDictionary<TKey,TValue>, ICollection<T>и IEnumerable<T> .SemanticValue implements the IDictionary<TKey,TValue>, ICollection<T>, and IEnumerable<T> interfaces.

Конструкторы

SemanticValue(Object)

Инициализирует новый экземпляр класса SemanticValue и указывает семантическое значение.Initializes a new instance of the SemanticValue class and specifies a semantic value.

SemanticValue(String, Object, Single)

Инициализирует новый экземпляр класса SemanticValue и определяет семантическое значение, имя ключа и уровень доверия.Initializes a new instance of the SemanticValue class and specifies a semantic value, a key name, and a confidence level.

Свойства

Confidence

Возвращает относительную меры точности смыслового анализа, который вернул текущий экземпляр SemanticValue.Returns a relative measure of the certainty as to the correctness of the semantic parsing that returned the current instance of SemanticValue.

Count

Возвращает количество дочерних объектов SemanticValue под текущим экземпляром SemanticValue.Returns the number of child SemanticValue objects under the current SemanticValue instance.

Item[String]

Возвращает дочерние экземпляры SemanticValue, относящиеся к текущему SemanticValue.Returns child SemanticValue instances that belong to the current SemanticValue.

Value

Свойство, доступное только для чтения, которое возвращает сведения, содержащихся в текущем SemanticValue.A read-only property that returns the information contained in the current SemanticValue.

Методы

Contains(KeyValuePair<String,SemanticValue>)

Указывает, содержит ли текущая коллекция экземпляров SemanticValue конкретный ключ и конкретный экземпляр SemanticValue, представленный в виде пары "ключ-значение".Indicates whether the current SemanticValue instance collection contains a specific key and a specific instance of SemanticValue expressed as a key/value pair.

ContainsKey(String)

Указывает, содержит ли текущая коллекция экземпляров SemanticValue дочерний экземпляр SemanticValue с заданной строкой ключа.Indicates whether the current SemanticValue instance collection contains a child SemanticValue instance with a given key string.

Equals(Object)

Определяет, является ли указанный объект экземпляром SemanticValue и равен ли он текущему экземпляру SemanticValue.Determines whether a specified object is an instance of SemanticValue and equal to the current instance of SemanticValue.

GetHashCode()

Предоставляет хэш-код для объекта SemanticValue.Provides a hash code for a SemanticValue object.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection<KeyValuePair<String,SemanticValue>>.Add(KeyValuePair<String,SemanticValue>)

Добавляет указанный ключ и SemanticValue в коллекцию.Adds the specified key and SemanticValue to the collection.

ICollection<KeyValuePair<String,SemanticValue>>.Clear()

Удаляет все пары "ключ-значение" из коллекции.Removes all key/value pairs from the collection.

ICollection<KeyValuePair<String,SemanticValue>>.CopyTo(KeyValuePair<String,SemanticValue>[], Int32)

Копирует пару "ключ-значение" в определенное расположение в целевом массиве.Copies a key/value pair to a specific location in a targeted array.

ICollection<KeyValuePair<String,SemanticValue>>.IsReadOnly

Возвращает значение, указывающее на то, доступна ли коллекция только для чтения.Gets a value that indicates whether the collection is read-only.

ICollection<KeyValuePair<String,SemanticValue>>.Remove(KeyValuePair<String,SemanticValue>)

Удаляет указанный ключ и SemanticValue из коллекции.Removes the specified key and SemanticValue from the collection.

IDictionary<String,SemanticValue>.Add(String, SemanticValue)

Добавляет указанный ключ и SemanticValue в словарь.Adds the specified key and SemanticValue to the dictionary.

IDictionary<String,SemanticValue>.Keys

Получает коллекцию, содержащую ключи из словаря пар "ключ-значение".Gets a collection that contains the keys from a dictionary of key/value pairs.

IDictionary<String,SemanticValue>.Remove(String)

Удаляет указанный ключ и SemanticValue из словаря.Removes the specified key and SemanticValue from the dictionary.

IDictionary<String,SemanticValue>.TryGetValue(String, SemanticValue)

Возвращает значение SemanticValue, связанное с указанным ключом.Gets the SemanticValue associated with the specified key.

IDictionary<String,SemanticValue>.Values

Получает коллекцию, содержащую значения из словаря пар "ключ-значение".Gets a collection that contains the values from a dictionary of key/value pairs.

IEnumerable.GetEnumerator()

Возвращает перечислитель, который осуществляет итерацию по коллекции.Returns an enumerator that iterates through a collection.

IEnumerable<KeyValuePair<String,SemanticValue>>.GetEnumerator()

Возвращает перечислитель, который осуществляет итерацию по коллекции.Returns an enumerator that iterates through a collection.

Методы расширения

CopyToDataTable<T>(IEnumerable<T>)

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре T, равном DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Возвращает коллекцию подчиненных узлов каждого документа и элемента в исходной коллекции.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Возвращает коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a filtered collection of the child elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Возвращает коллекцию дочерних узлов каждого документа и элемента в исходной коллекции.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Удаление каждого узла в исходной коллекции из родительского узла.Removes every node in the source collection from its parent node.

Применяется к

Дополнительно