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 meer maken. We raden u aan uw LUIS-toepassingen te migreren naar conversatietaalbegrip om te profiteren van continue productondersteuning en meertalige mogelijkheden.

Een Language Understanding-app-schema (LUIS) bevat intenties en entiteiten die relevant zijn voor uw onderwerpdomein. De intenties classificeren uitingen van gebruikers en de entiteiten extraheren gegevens uit de gebruikersuitingen. Intenties en entiteiten die relevant zijn voor uw onderwerpdomein. Met de intenties worden uitingen van gebruikers geclassificeerd.

Een LUIS-app leert en presteert het efficiëntst wanneer u deze iteratief ontwikkelt. Hier volgt een typische iteratiecyclus:

  1. Een nieuwe versie maken
  2. Bewerk het SCHEMA van de LUIS-app. Dit omvat:
    • Intenties met voorbeelduitingen
    • Entiteiten
    • Functies
  3. Trainen, testen en publiceren
  4. Testen op actief leren door utterances te controleren die naar het voorspellingseindpunt zijn verzonden
  5. Gegevens verzamelen van eindpuntquery's

Een schermopname van de ontwerpcyclus

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 verwerkt. Een andere app kan inhoud bieden met betrekking tot het trainen, bijhouden van fitness-inspanningen en het stellen van doelen. Door het domein te identificeren, kunt u woorden of woordgroepen vinden die relevant zijn voor uw domein.

Tip

LUIS biedt vooraf samengestelde 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 eens kijken naar het voorbeeld van een reis-app, met functies om een vlucht te boeken en het weer op de bestemming van de gebruiker te controleren. 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 deze zorgvuldig definiëren, zodat ze niet te specifiek zijn. BookFlight en BookHotel moeten bijvoorbeeld afzonderlijke intenties zijn, maar BookInternationalFlight en BookDomesticFlight lijken mogelijk te veel op elkaar.

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, zijn deze mogelijk zo algemeen dat ze elkaar overlappen.

Als u de intentie van de gebruiker niet hoeft te identificeren, voegt u alle voorbeelduitingen van gebruikers 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 u te veel uitingen voor elke intentie maakt. Zodra u de intenties hebt bepaald 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, woordkeuzes, werkwoorden en interpunctie op.

Zie Understanding good utterances for LUIS apps (Goede uitingen voor LUIS-apps begrijpen) voor meer informatie.

Uw entiteiten identificeren

Identificeer in de voorbeelduitingen de entiteiten die u wilt geëxtraheerd. 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 vervolgens de entiteiten in de voorbeelduitingen. Entiteiten zijn belangrijk voor het bereiken 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 veelvoorkomende scenario's met gespreksgebruikers. 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 zou een intentie een methodeaanroep activeren en worden de entiteiten gebruikt als parameters voor die methodeaanroep.

Deze utterance moet een intentie hebben en kan entiteiten hebben:

"Koop een vliegticket van Seattle naar Caïro"

Deze utterance heeft één intentie:

  • Een vliegticket kopen

Deze utterance kan verschillende entiteiten hebben:

  • Locaties van Seattle (oorsprong) en Caïro (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 te verhelpen, is het een algemene strategie om te begrijpen dat uitvoer kan worden vertegenwoordigd door zowel intenties als entiteiten. Deze weergave moet kunnen 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 kunnen 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 qua woordkeuze vergelijkbaar zijn, maar verschillende resultaten hebben:

  • "Plan mijn vlucht van Caïro naar Seattle"
  • "Mijn vlucht van Caïro naar Seattle annuleren"

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 oorsprong- of doellocatie.

Deze FlightAction-entiteit wordt gestructureerd met de volgende machine learning-entiteit en subentiteiten op het hoogste niveau:

  • FlightAction
    • Actie
    • Oorsprong
    • Doel

Als hulp bij het extraheren voegt u functies toe aan de subentiteiten. U kiest functies op basis van de woordenschat 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 deze app wilt gebruiken. Hoe gedetailleerder en specifieker uw planning, hoe beter uw app wordt.

  • Gerichte gebruikers onderzoeken
  • Definieer end-to-end persona's om uw app te vertegenwoordigen: stem, avatar, afhandeling van problemen (proactief, reactief)
  • Kanalen identificeren van gebruikersinteracties (zoals tekst of spraak), het overdragen aan bestaande oplossingen of het maken van een nieuwe oplossing voor deze app
  • End-to-end gebruikerstraject
    • Wat verwacht u dat deze app wel en niet doet? Wat zijn de prioriteiten van wat het zou moeten 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 voordat u gaat trainen en publiceren. Hiermee kunt u de impact op de nauwkeurigheid van de voorspelling zien. 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 deel uitmaken van een nieuwe versie, gekloond vanuit een bestaande versie.

Niet te snel publiceren

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 logica voor client-apps hebt ontwikkeld volgens het schema, moet u het mogelijk opnieuw uitvoeren. Dit kan leiden tot onverwachte vertragingen en extra kosten voor het project waaraan u werkt.
  • Uitingen die u aan het model toevoegt, kunnen vooroordelen veroorzaken ten aanzien van voorbeelduitingen die moeilijk kunnen worden opgespoord en geïdentificeerd. Het maakt het ook moeilijk om dubbelzinnigheid te verwijderen nadat u een bepaald schema hebt doorgevoerd.

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 een paar voorbeelden op in de woordgroepenlijsten , maar niet elk woord of elke woordgroep. LUIS generaliseert en houdt rekening met context.

Volgende stappen

Intenties