Uw LUIS-app plannen
Belangrijk
LUIS wordt op 1 oktober 2025 buiten gebruik gesteld en vanaf 1 april 2023 kunt u geen nieuwe LUIS-resources maken. We raden u aan uw LUIS-toepassingen te migreren naar gesprekstaalbegrip om te profiteren van continue productondersteuning en meertalige mogelijkheden.
Een LUIS-app-schema (Language Understanding) bevat intenties en entiteiten die relevant zijn voor uw onderwerpdomein. De intenties classificeren gebruikersuitingen en de entiteiten halen gegevens uit de gebruikersuitingen op. Intenties en entiteiten die relevant zijn voor uw onderwerpdomein. De intenties classificeren gebruikersuitingen.
Een LUIS-app leert en presteert het meest efficiënt wanneer u deze iteratief ontwikkelt. Hier volgt een typische iteratiecyclus:
- Een nieuwe versie maken
- Bewerk het LUIS-app-schema. Dit omvat:
- Intenties met voorbeelduitingen
- Entiteiten
- Functies
- Trainen, testen en publiceren
- Testen op actief leren door utterances te controleren die naar het voorspellingseindpunt zijn verzonden
- Gegevens verzamelen uit eindpuntquery's
Uw domein identificeren
Een LUIS-app is gecentreerd rond een onderwerpdomein. U hebt bijvoorbeeld een reis-app die het boeken van tickets, vluchten, hotels en huurauto's afhandelt. Een andere app kan inhoud bieden met betrekking tot het trainen, volgen van fitnessinspanningen en het instellen van doelen. Door het domein te identificeren, kunt u woorden of woordgroepen vinden die relevant zijn voor uw domein.
Tip
LUIS biedt vooraf gedefinieerde domeinen voor veel algemene scenario's. Controleer of u een vooraf samengesteld domein kunt gebruiken als uitgangspunt voor uw app.
Uw intenties identificeren
Denk na over de intenties die belangrijk zijn voor de taak van uw toepassing.
Laten we het voorbeeld nemen van een reis-app, met functies om een vlucht te boeken en het weer te controleren op de bestemming van de gebruiker. U kunt twee intenties definiëren, BookFlight en GetWeather voor deze acties.
In een complexere app met meer functies hebt u waarschijnlijk meer intenties en moet u ze zorgvuldig definiëren, zodat ze niet te specifiek zijn. BookFlight en BookHotel moeten bijvoorbeeld afzonderlijke intenties zijn, maar BookInternationalFlight en BookDomesticFlight kunnen te vergelijkbaar zijn.
Notitie
Het is een best practice om slechts zoveel intenties te gebruiken als u nodig hebt om de functies van uw app uit te voeren. Als u te veel intenties definieert, wordt het moeilijker voor LUIS om uitingen correct te classificeren. Als u te weinig definieert, kunnen ze zo algemeen zijn dat ze elkaar overlappen.
Als u de algehele intentie van de gebruiker niet hoeft te identificeren, voegt u alle voorbeelduitingen van de gebruiker toe aan de None
intentie. Als uw app meer intenties nodig heeft, kunt u deze later maken.
Voorbeelduitingen maken voor elke intentie
Om te beginnen moet u voorkomen dat er te veel uitingen voor elke intentie worden gemaakt. Zodra u de intenties hebt vastgesteld die u nodig hebt voor uw app, maakt u 15 tot 30 voorbeelduitingen per intentie. Elke utterance moet afwijken van de eerder opgegeven utterances. Neem een verscheidenheid aan woordenaantallen, woordkeuzen, werkwoorden en interpunctie op.
Zie voor meer informatie inzicht in goede uitingen voor LUIS-apps.
Uw entiteiten identificeren
In de voorbeelduitingen identificeert u de entiteiten die u wilt uitgepakt. Als u een vlucht wilt boeken, hebt u informatie nodig zoals de bestemming, datum, luchtvaartmaatschappij, ticketcategorie en reisklasse. Maak entiteiten voor deze gegevenstypen en markeer de entiteiten in de voorbeelduitingen. Entiteiten zijn belangrijk voor het uitvoeren van een intentie.
Wanneer u bepaalt welke entiteiten in uw app moeten worden gebruikt, moet u er rekening mee houden dat er verschillende typen entiteiten zijn voor het vastleggen van relaties tussen objecttypen. Zie Entiteiten in LUIS voor meer informatie over de verschillende typen.
Tip
LUIS biedt vooraf gedefinieerde entiteiten voor algemene, gespreksgebruikersscenario's. Overweeg het gebruik van vooraf gemaakte entiteiten als uitgangspunt voor de ontwikkeling van uw toepassing.
Intenties versus entiteiten
Een intentie is het gewenste resultaat van de hele uiting, terwijl entiteiten stukjes gegevens zijn die zijn geëxtraheerd uit de utterance. Meestal zijn intenties gekoppeld aan acties die de clienttoepassing moet uitvoeren. Entiteiten zijn informatie die nodig is om deze actie uit te voeren. Vanuit een programmeerperspectief activeert een intentie een methodeaanroep en worden de entiteiten gebruikt als parameters voor die methodeaanroep.
Deze uiting moet een intentie hebben en mogelijk entiteiten hebben:
"Koop een vliegticket van Seattle naar Cairo"
Deze uiting heeft één intentie:
- Een vliegtuigticket kopen
Deze utterance kan verschillende entiteiten hebben:
- Locaties van Seattle (oorsprong) en Cairo (bestemming)
- De hoeveelheid van één ticket
Oplossing in utterances met meer dan één functie of intentie
In veel gevallen, met name bij het werken met natuurlijke gesprekken, bieden gebruikers een uiting die meer dan één functie of intentie kan bevatten. Om dit aan te pakken, is een algemene strategie om te begrijpen dat uitvoer kan worden vertegenwoordigd door zowel intenties als entiteiten. Deze weergave moet worden toegewezen aan de acties van uw clienttoepassing en hoeft niet te worden beperkt tot intenties.
Int-ent-ties is het concept dat acties (meestal begrepen als intenties) ook kunnen worden vastgelegd als entiteiten in de uitvoer van de app en worden toegewezen aan specifieke acties. Negatie is bijvoorbeeld vaak afhankelijk van intentie en entiteit voor volledige extractie. Houd rekening met de volgende twee utterances, die vergelijkbaar zijn in woordkeuze, maar verschillende resultaten hebben:
- "Plan mijn vlucht van Cairo naar Seattle"
- "Mijn vlucht annuleren van Cairo naar Seattle"
In plaats van twee afzonderlijke intenties te hebben, moet u één intentie maken met een Machine Learning-entiteit FlightAction. Deze machine learning-entiteit moet de details van de actie extraheren voor zowel het plannen als annuleren van aanvragen, en een oorspronkelijke of doellocatie.
Deze FlightAction-entiteit wordt gestructureerd met de volgende machine learning-entiteit op het hoogste niveau en subentiteiten:
- FlightAction
- Actie
- Oorprong
- Bestemming
Voor hulp bij extractie voegt u functies toe aan de subentiteiten. U kiest functies op basis van de woordenlijst die u verwacht te zien in uitingen van gebruikers en de waarden die u wilt retourneren in het voorspellingsantwoord.
Aanbevolen procedures
Uw schema plannen
Voordat u begint met het bouwen van het schema van uw app, moet u bepalen hoe en waar u van plan bent om deze app te gebruiken. Hoe grondiger en specifieker uw planning, hoe beter uw app wordt.
- Gerichte gebruikers onderzoeken
- Definieer end-to-end persona's die uw app vertegenwoordigen: stem, avatar, afhandeling van problemen (proactief, reactief)
- Kanalen van gebruikersinteracties (zoals tekst of spraak) identificeren, bestaande oplossingen overdragen of een nieuwe oplossing voor deze app maken
- End-to-end-gebruikerstraject
- Wat verwacht u dat deze app doet en niet? Wat zijn de prioriteiten van wat het moet doen?
- Wat zijn de belangrijkste use cases?
- Gegevens verzamelen - meer informatie over het verzamelen en voorbereiden van gegevens
Train en publiceer niet met elke voorbeelduiting
Voeg 10 of 15 utterances toe vóór de training en publicatie. Hiermee kunt u de impact op de nauwkeurigheid van de voorspelling bekijken. Het toevoegen van één uiting heeft mogelijk geen zichtbare invloed op de score.
Gebruik LUIS niet als trainingsplatform
LUIS is specifiek voor het domein van een taalmodel. Het is niet bedoeld om te werken als een algemeen trainingsplatform voor natuurlijke taal.
Uw app iteratief bouwen met versies
Elke ontwerpcyclus moet zich in een nieuwe versie bevinden, gekloond van een bestaande versie.
Publiceer niet te snel
Het publiceren van uw app te snel en zonder de juiste planning kan leiden tot verschillende problemen, zoals:
- Uw app werkt niet in uw werkelijke scenario op een acceptabel prestatieniveau.
- Het schema (intenties en entiteiten) is mogelijk niet geschikt en als u client-app-logica hebt ontwikkeld volgens het schema, moet u dit mogelijk opnieuw uitvoeren. Dit kan onverwachte vertragingen en extra kosten veroorzaken voor het project waaraan u werkt.
- Uitingen die u aan het model toevoegt, kunnen vooroordelen veroorzaken in de richting van voorbeelduitingen die moeilijk kunnen worden opgespoord en geïdentificeerd. Het maakt het ook lastig om dubbelzinnigheid te verwijderen nadat u zich hebt verbonden aan een bepaald schema.
Controleer de prestaties van uw app
Controleer de nauwkeurigheid van de voorspelling met behulp van een batchtestset.
Bewaar een afzonderlijke set utterances die niet worden gebruikt als voorbeeld-utterances of eindpunt-utterances. Blijf vooral de app voor uw testset verbeteren. Pas de testset aan om uitingen van echte gebruikers weer te geven. Gebruik deze testset om elke iteratie of versie van de app te evalueren.
Maak geen woordgroepenlijsten met alle mogelijke waarden
Geef enkele voorbeelden op in de woordgroepenlijsten , maar niet elk woord of elke woordgroep. LUIS generaliseert en houdt rekening met context.