RecognizedWordUnit.LexicalForm Eigenschap

Definitie

Hiermee haalt u de niet-genormaliseerde tekst van een herkend woord op.

public:
 property System::String ^ LexicalForm { System::String ^ get(); };
public string LexicalForm { get; }
member this.LexicalForm : string
Public ReadOnly Property LexicalForm As String

Waarde van eigenschap

Retourneert een String met de tekst van een herkend woord, zonder normalisatie.

Voorbeelden

In het volgende voorbeeld ziet u een routine van het hulpprogramma waarmee tekst in een van de drie indelingen wordt gegenereerd: lexical (met behulp van), genormaliseerd (met LexicalForm) Texten fonetische tekst (met behulp van Pronunciation). De tekstuitvoer wordt verkregen van een ReadOnlyCollection<T> van RecognizedWordUnit objecten, die wordt verkregen uit de Words eigenschap van het RecognizedPhrase object.

internal enum WordType
{
  Text,
  Normalized = Text,
  Lexical,
  Pronunciation
}
internal static string stringFromWordArray(
         ReadOnlyCollection<RecognizedWordUnit> words,
         WordType type)
{
  string text = "";
  foreach (RecognizedWordUnit word in words)
  {
    string wordText = "";
    if (type == WordType.Text || type == WordType.Normalized)
    {
      wordText = word.Text;
    }
    else if (type == WordType.Lexical)
    {
      wordText = word.LexicalForm;
    }
    else if (type == WordType.Pronunciation)
    {
      wordText = word.Pronunciation;
    }
    else
    {
      throw new InvalidEnumArgumentException(
          String.Format("[0}: is not a valid input", type));
    }

    // Use display attribute
    if ((word.DisplayAttributes & DisplayAttributes.OneTrailingSpace) != 0)
    {
      wordText += " ";
    }
    if ((word.DisplayAttributes & DisplayAttributes.TwoTrailingSpaces) != 0)
    {
      wordText += "  ";
    }
    if ((word.DisplayAttributes & DisplayAttributes.ConsumeLeadingSpaces) != 0)
    {
      wordText = wordText.TrimStart();
    }
    if ((word.DisplayAttributes & DisplayAttributes.ZeroTrailingSpaces) != 0)
    {
    wordText = wordText.TrimEnd();
    }

    text += wordText;

  }
  return text;
}

Opmerkingen

In de meeste gevallen zijn de waarden die door Text en LexicalForm identiek zijn. Herkenningsengines kunnen echter spraaknormalisatie gebruiken om gebruiksvriendelijkere of colloquiale tekstweergaven van audio-invoer te retourneren.

Spraaknormalisatie is het gebruik van speciale constructies of symbolen om spraak schriftelijk uit te drukken. Normalisatie kan bijvoorbeeld de gesproken woorden "een dollar en zestien centen" vervangen door "$1,16" in uitvoertekst.

Van toepassing op

Zie ook