Condividi tramite


Proprietà RecognizerContext.WordList

Aggiornamento: novembre 2007

Ottiene o imposta l'oggetto WordList utilizzato per migliorare i risultati del riconoscimento.

Spazio dei nomi:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Sintassi

'Dichiarazione
Public Property WordList As WordList
'Utilizzo
Dim instance As RecognizerContext
Dim value As WordList

value = instance.WordList

instance.WordList = value
public WordList WordList { get; set; }
public:
property WordList^ WordList {
    WordList^ get ();
    void set (WordList^ value);
}
/** @property */
public WordList get_WordList()
/** @property */
public  void set_WordList(WordList value)
public function get WordList () : WordList
public function set WordList (value : WordList)

Valore proprietà

Tipo: Microsoft.Ink.WordList
Elenco di parole utilizzato per migliorare i risultati del riconoscimento. L'oggetto restituito è una copia di lavoro interna dell'elenco di parole sottostante, non un riferimento diretto.

Note

Prima di poter utilizzare questa proprietà, è necessario inizializzarla creando un'istanza di un oggetto newWordList e assegnando l'oggetto appena creato alla proprietà WordList.

L'impostazione della proprietà WordList ha esito positivo solo se la proprietà Strokes è nullriferimento null (Nothing in Visual Basic). È necessario impostare la proprietà WordList prima di associare un insieme Strokes alla proprietà Strokes dell'oggetto RecognizerContext oppure è necessario impostare la proprietà Strokes su nullriferimento null (Nothing in Visual Basic) e successivamente impostare la proprietà WordList.

Nota

Se si utilizza quest'ultimo metodo, potrebbe essere necessario riassociare l'insieme Strokes alla proprietà Strokes dell'oggetto RecognizerContext.

Per rimuovere l'elenco di parole corrente e utilizzare il dizionario dell'utente, impostare la proprietà WordList su nullriferimento null (Nothing in Visual Basic). Qualsiasi modifica successiva dell'oggetto WordList non modifica il risultato del riconoscimento.

L'esecuzione di una verifica per controllare se questa proprietà è stata impostata su nullriferimento null (Nothing in Visual Basic) non è significativa. Il valore restituito dalla funzione di accesso get è sempre diverso da null. Questa operazione è illustrata nell'esempio seguente.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = Nothing
If (Not RC.WordList Is Nothing) Then ' always true
    ' but this won't work, throws a null reference exception
    RC.WordList.Add("thunk")
End If
RecognizerContext RC = new RecognizerContext();
RC.WordList = null;
if (RC.WordList != null) // always true
{
    // but this won't work, throws a null reference exception
    RC.WordList.Add("thunk");
}

Poiché il valore restituito di questa proprietà è una copia di lavoro interna dell'elenco di parole sottostante e non un riferimento diretto, qualsiasi aggiunta di parole o frasi effettuata non può essere utilizzata durante il riconoscimento finché la proprietà WordList non viene riassegnata. Si consideri quanto segue:

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
' test if string is supported - false
Dim isTestStrSupported As Boolean = RC.IsStringSupported(testStr)
' get a copy of the WordList
Dim WL As WordList = RC.WordList
' add the string to the copy
WL.Add(testStr)
' test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr)
' assign copy back to the WordList property
RC.WordList = WL
' test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr)
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
// test if string is supported - false
bool isTestStrSupported = RC.IsStringSupported(testStr);
// get a copy of the WordList
WordList WL = RC.WordList;
// add the string to the copy
WL.Add(testStr);
// test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr);
// assign copy back to the WordList property
RC.WordList = WL;
// test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr);

Nell'esempio precedente, la parola di prova viene aggiunta alla copia interna della proprietà WordList e la copia viene quindi assegnata nuovamente alla proprietà WordList.

In alternativa, è possibile aggiungere la parola di prova alla proprietà WordList stessa. In questo caso, vengono apportate modifiche alla copia di lavoro interna e pertanto è necessario assegnare nuovamente la proprietà WordList prima che la parola appena aggiunta possa essere utilizzata durante il riconoscimento.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
' test if string is supported - false
Dim isTestStrSupported As Boolean = RC.IsStringSupported(testStr)
' get a copy of the WordList
Dim WL As WordList = RC.WordList
' add the string to the WordList property itself
RC.WordList.Add(testStr)
' test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr)
' assign copy back to the WordList property
RC.WordList = WL
' test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr)
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
// test if string is supported - false
bool isTestStrSupported = RC.IsStringSupported(testStr);
// get a copy of the WordList
WordList WL = RC.WordList;
// add the string to the WordList property itself
RC.WordList.Add(testStr);
// test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr);
// assign copy back to the WordList property
RC.WordList = WL;
// test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr);

Quando si assegna nuovamente la proprietà WordList con la copia ottenuta tramite la funzione di accesso della proprietà get, il contenuto modificato non sostituisce l'oggetto WordList originale. Al contrario, viene aggiunto il delta all'oggetto WordList originale. Se si desidera sostituire l'oggetto WordList originale, utilizzare una delle tecniche seguenti:

  1. Creare un nuovo oggetto RecognizerContext e assegnargli l'oggetto WordList modificato.

  2. Creare un nuovo oggetto WordList e assegnarlo all'oggetto RecognizerContext esistente.

Utilizzare la proprietà Factoid per limitare la ricerca all'elenco di parole associato al contesto. Per migliorare i risultati, può essere necessario anche impostare la proprietà RecognitionFlags.

Dopo l'impostazione di un controllo oggetto, non è possibile impostare la proprietà WordList. Questa operazione impedisce a un controllo oggetto di fare riferimento a un elenco di parole che probabilmente non esiste. Il tentativo di eseguire questa operazione genera un'eccezione COM indicante che il metodo è stato chiamato dopo l'esecuzione della chiamata del processo o l'impostazione del controllo oggetto.

Se una stringa viene aggiunta a un elenco delle parole, vengono aggiunte in modo implicito anche le relative versioni in lettere maiuscole. Ad esempio, se si aggiunge "ciao" in modo implicito vengono anche aggiunti "Ciao" e "CIAO".

Per cancellare l'oggetto WordList, impostarlo come un oggetto WordList vuoto.

Esempi

In questo esempio, viene creata un'istanza di un oggetto RecognizerContext e viene assegnato un nuovo oggetto WordList alla proprietà WordList. Il metodo IsStringSupported viene quindi utilizzato per determinare se una stringa specificata è supportata. In caso contrario, la stringa viene aggiunta all'oggetto WordList.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
If Not RC.IsStringSupported(testStr) Then
    Dim WL As WordList = RC.WordList
    WL.Add(testStr)
    ' testStr is not available for use in recognition
    ' until the WordList property is re-assigned
    RC.WordList = WL
End If
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
if (!RC.IsStringSupported(testStr))
{
    WordList WL = RC.WordList;
    WL.Add(testStr);
    // testStr is not available for use in recognition
    // until the WordList property is re-assigned
    RC.WordList = WL;
}

Piattaforme

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

RecognizerContext Classe

Membri RecognizerContext

Spazio dei nomi Microsoft.Ink

RecognizerContext

WordList

RecognizerContext.Strokes

RecognizerContext.Factoid

RecognizerContext.RecognitionFlags