Definire finalità, espressioni ed entità
Le espressioni sono le frasi che un utente può immettere quando interagisce con un'applicazione che usa il modello linguistico. Una finalità rappresenta un'attività o un'azione che l'utente vuole eseguire o più semplicemente il significato di un'espressione. È necessario creare un modello definendo le finalità e associandole a una o più espressioni.
Si consideri ad esempio l'elenco seguente di finalità ed espressioni associate:
- GetTime:
- "Che ora è?"
- "Che ore sono?"
- "Dimmi l'ora"
- GetWeather:
- "Quali sono le previsioni meteo?"
- "Ho bisogno di un ombrello?"
- "Nevicherà?"
- TurnOnDevice
- "Accendi la luce"
- "Accendere la luce"
- "Accendi la ventola"
- Nessuno:
- "Salve"
- "Ciao"
Nel modello è necessario definire le finalità che il modello dovrà comprendere e, di conseguenza, è consigliabile riflettere sul dominio che il modello deve supportare e sui tipi di azioni o informazioni che gli utenti potrebbero richiedere. Oltre alle finalità definite, ogni modello include una finalità None, da usare per identificare in modo esplicito le espressioni che un utente può inviare, ma per le quali non è necessaria alcuna azione specifica, ad esempio formule di saluto come "ciao", o che non rientrano nell'ambito del dominio per questo modello.
Dopo aver identificato le finalità che il modello deve supportare, è importante acquisire varie espressioni di esempio diverse per ogni finalità. Raccogliere le espressioni che si ritiene verranno immesse dagli utenti, incluse quelle che hanno lo stesso significato, ma che sono strutturate in modi diversi. Tenere presenti queste linee guida:
- Acquisire più esempi diversi o modi alternativi di esprimere lo stesso concetto
- Variare la lunghezza delle espressioni da breve a media e lunga
- Variare la posizione del sostantivo o del soggetto dell'espressione. Posizionarlo all'inizio, alla fine o in un punto compreso tra i due
- Usa grammatica corretta e sbagliata in espressioni diverse per offrire esempi efficaci di dati di training
- La precisione, la coerenza e la completezza dei dati etichettati sono fattori chiave per le prestazioni del modello.
- Etichettare con precisione: etichettare sempre ogni entità con il tipo corretto. Includere solo gli elementi da estrarre, evitando dati non necessari nelle etichette.
- Etichettare in modo coerente: la stessa entità deve avere la stessa etichetta in tutte le espressioni.
- Etichettare in modo completo: etichettare tutte le istanze dell'entità in tutte le espressioni.
Le entità vengono usate per aggiungere contesto specifico alle finalità. Ad esempio, è possibile definire una finalità TurnOnDevice che può essere applicata a più dispositivi e usare entità per definire i diversi dispositivi.
Si considerino le espressioni, le finalità e le entità seguenti:
Espressione | Finalità | Entità |
---|---|---|
Che ore sono? | GetTime | |
Che ora è a Londra? | GetTime | Location (Londra) |
Quali sono le previsioni meteo per Parigi? | GetWeather | Location (Parigi) |
Mi servirà un ombrello stasera? | GetWeather | Time (stasera) |
Quali sono le previsioni per Seattle domani? | GetWeather | Location (Seattle), Time (domani) |
Accendi la luce. | TurnOnDevice | Device (luce) |
Accendi il ventilatore. | TurnOnDevice | Device (ventola) |
È possibile suddividere le entità in diversi tipi di componenti:
- Le entità apprese sono il tipo di entità più flessibile e devono essere usate nella maggior parte dei casi. È necessario definire un'entità appresa con un nome appropriato e quindi associare parole o frasi all'entità nelle espressioni di training. Quando si esegue il training del modello, questo apprende ad associare gli elementi appropriati nelle espressioni all'entità.
- Le entità List sono utili quando è necessaria un'entità con un set specifico di valori possibili, ad esempio i giorni della settimana. È possibile includere sinonimi in una definizione di entità elenco e di conseguenza è possibile definire un'entità DayOfWeek che include i valori "Domenica", "Lunedì", "Martedì" e così via, ognuna con sinonimi come "Dom", "Lun", "Mar" e così via.
- Le entità predefinite sono utili per i tipi comuni, ad esempio numeri, date/ore e nomi. Ad esempio, con l'aggiunta dei componenti predefiniti verranno rilevati automaticamente valori come "6" o organizzazioni come "Microsoft". È possibile vedere questo articolo per un elenco delle entità predefinite supportate.