Delen via


Een decomposeerbare LUIS-toepassing bouwen

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.

In deze zelfstudie kunt u een TELECOM LUIS-toepassing maken die verschillende gebruikersintenties kan voorspellen. Aan het einde van de zelfstudie moeten we een telecomtoepassing hebben die gebruikersintenties kan voorspellen op basis van tekst die door gebruikers wordt verstrekt.

We verwerken verschillende gebruikersscenario's (intenties), zoals:

  • Registreren voor een nieuwe telecomlijn
  • Een bestaande laag bijwerken
  • Een factuur betalen

In deze zelfstudie leert u het volgende:

  1. Een LUIS-toepassing maken
  2. Intents maken
  3. Entiteiten toevoegen
  4. Utterances toevoegen
  5. Voorbeelden van uitingen labelen
  6. Een app trainen
  7. Een app publiceren
  8. Voorspellingen ophalen van het gepubliceerde eindpunt

Een LUIS-toepassing maken

  1. Aanmelden bij de LUIS-portal

  2. Maak een nieuwe toepassing door +Nieuwe app te selecteren.

    Een schermopname van het scherm voor het maken van toepassingen.

  3. Voer in het venster dat wordt weergegeven de naam 'Telecom Tutorial' in, waarbij de standaardcultuur, Engels, behouden blijft. De andere velden zijn optioneel, niet instellen. Selecteer Gereed.

    Een schermopname van de velden voor het maken van de LUIS-toepassing.

Gebruikersintenties als intents

Het eerste wat u in de sectie Bouwen ziet, zijn de intenties van de app. Intenties vertegenwoordigen een taak of een actie die een gebruiker wil uitvoeren.

Stelt u zich een telecom LUIS-toepassing voor, wat zou een gebruiker nodig hebben?

Ze moeten waarschijnlijk een soort gebruikersactie uitvoeren of om hulp vragen. Een andere gebruiker kan zijn of haar laag bijwerken of een factuur betalen

Het resulterende schema is als volgt. Zie best practices voor het plannen van het schema voor meer informatie.

Bedoeling Doel
UserActions Gebruikersacties bepalen
Help Hulp vragen
UpdateTier Huidige laag bijwerken
PayBill Openstaande factuur betalen
Geen Bepaal of de gebruiker een vraag stelt die de LUIS-app niet kan beantwoorden. Deze intentie wordt geleverd als onderdeel van het maken van de app en kan niet worden verwijderd.

Een nieuwe intentie maken

Een intent wordt gebruikt om uitingen van gebruikers in te delen volgens de gebruikersintentie, die blijkt uit de natuurlijke taal in een tekst.

Voor het classificeren van een uiting heeft de intentie voorbeelden nodig van gebruikersuitingen die moeten worden geclassificeerd met deze intentie.

  1. Selecteer Opbouwen in het bovenste navigatiemenu en selecteer vervolgens Intenties aan de linkerkant van het scherm. Selecteer + Maken om een nieuwe intentie te maken. Voer de naam van de nieuwe intentie in, UserAction en selecteer Gereed

    UserAction kan een van de vele intenties zijn. Sommige gebruikers willen zich bijvoorbeeld registreren voor een nieuwe regel, terwijl anderen vragen om informatie op te halen.

  2. Voeg verschillende voorbeelden van utterances toe aan deze intent waarnaar een gebruiker waarschijnlijk zal vragen:

    • Hallo! Ik wil me registreren voor een nieuwe regel
    • Kan ik me registreren voor een nieuwe regel?
    • Hallo, ik wil een nieuwe regel
    • Ik ben mijn regelnummer vergeten!
    • Ik wil een nieuw regelnummer

    Een schermopname met voorbeelduitingen voor de intent UserAction.

Voor de intentie PayBill kunnen sommige utterances het volgende zijn:

  • Ik wil mijn factuur betalen
  • Mijn factuur vereffenen
  • Factuur betalen
  • Ik wil mijn huidige saldo sluiten
  • Hee. Ik wil de huidige factuur betalen

Door voorbeelden van uitingen op te geven traint u LUIS in het soort uitingen dat voor deze intent kan worden voorspeld. Dit zijn positieve voorbeelden. De uitingen in alle andere intents worden behandeld als negatieve voorbeelden voor deze intent. Hoe meer voorbeelduitingen u toevoegt, hoe beter de voorspellingen van uw app zijn.

Deze utterances zijn alleen bedoeld voor demonstratiedoeleinden. Een app moet minstens 15-30 uitingen hebben met verschillende lengten, woordvolgordes, werkwoordtijden, grammaticale juistheid, interpunctie en aantal woorden.

De resterende intenties maken

Voer de bovenstaande stappen uit om de volgende intenties toe te voegen aan de app:

"Help"

  • "Ik heb hulp nodig"
  • "Ik heb hulp nodig"
  • "Help alstublieft"
  • "Kan iemand mij ondersteunen?"
  • "Ik zit vast, kan je me helpen"
  • "Kan ik hulp krijgen?"

"UpdateTier"

  • "Ik wil mijn laag bijwerken"
  • 'Mijn laag bijwerken'
  • "Ik wil overschakelen naar vip-laag"
  • 'Mijn abonnement wijzigen in de standard-laag'

Voorbeelduitingen voor de intentie None

De clienttoepassing moet weten of een uiting niet zinvol of gepast is voor de toepassing. De intentie None wordt toegevoegd aan elke toepassing als onderdeel van het aanmaakproces om te bepalen of een uiting niet door de clienttoepassing moet worden beantwoord.

Als LUIS de intentie None retourneert voor een uiting, kan uw clienttoepassing vragen of de gebruiker het gesprek wil beëindigen of meer aanwijzingen wil geven om het gesprek voort te zetten.

Als u de intentie None leeg laat, wordt een uiting die buiten het onderwerpdomein moet worden voorspeld, voorspeld in een van de bestaande intenties van het onderwerpdomein. Het resultaat is dat de clienttoepassing, zoals een chatbot, onjuiste bewerkingen uitvoert op basis van een onjuiste voorspelling.

  1. Selecteer Intents in het linkerpaneel.

  2. Selecteer de intent None. Voeg drie uitingen toe die uw gebruiker kan invoeren, maar die niet relevant zijn voor uw Telecom-app. In deze voorbeelden mogen geen woorden worden gebruikt die u verwacht in uw onderwerpdomein, zoals laag, upgrade, registratie, factuur.

    • "Wanneer is mijn vlucht?"
    • "Ik moet mijn pizzabestelling alsjeblieft wijzigen"
    • "Wat is het weer voor vandaag?"

Entiteiten toevoegen

Een entiteit is een item of element dat relevant is voor de intentie van de gebruiker. Entiteiten definiëren gegevens die kunnen worden geëxtraheerd uit de uiting en zijn essentieel om de vereiste actie van een gebruiker te voltooien.

  1. Selecteer Entiteiten in de sectie Build.

  2. Als u een nieuwe entiteit wilt toevoegen, selecteert u +Maken

    In dit voorbeeld maken we twee entiteiten, 'UpdateTierInfo' als machine learning-entiteitstype en 'Laag' als entiteitstype lijst. Met Luis kunt u ook verschillende entiteitstypen maken.

  3. Voer 'UpdateTierInfo' in het venster dat wordt weergegeven en selecteer Machine geleerd uit de beschikbare typen. Selecteer het vak Structuur toevoegen om een structuur aan deze entiteit toe te voegen.

    Een schermopname van een entiteit.

  4. Selecteer Volgende.

  5. Als u een onderliggende subentiteit wilt toevoegen, selecteert u het symbool '+' en begint u met het toevoegen van het kind. Voor ons entiteitsvoorbeeld ' UpdateTierInfo' hebben we drie dingen nodig:

    • OriginalTier
    • NewTier
    • Telefoonnummer

    Een schermopname van subentiteiten in de app.

  6. Selecteer Maken nadat u alle SUBentiteiten hebt toegevoegd.

    We maken een andere entiteit met de naam Laag, maar deze keer is het een lijstentiteit en bevat deze alle lagen die we kunnen bieden: Standard-laag, Premium-laag en VIP-laag.

  7. Hiervoor gaat u naar het tabblad Entiteiten en drukt u op +create en selecteert u een lijst van de typen in het scherm dat wordt weergegeven.

  8. Voeg de items toe aan uw lijst en desgewenst kunt u synoniemen toevoegen om ervoor te zorgen dat alle gevallen van die vermelding worden begrepen.

    Een schermopname van een lijstentiteit.

  9. Ga nu terug naar de entiteit UpdateTierInfo en voeg de entiteit 'tier' toe als een functie voor de entiteiten OriginalTier en NewTier die we eerder hebben gemaakt. Het ziet er ongeveer als volgt uit:

    Een schermopname van de functies van een entiteit.

    We hebben laag toegevoegd als een functie voor zowel 'originalTier' als 'newTier', en we hebben de entiteit 'Phonenumber' toegevoegd, wat een Regex-type is. Deze kan op dezelfde manier worden gemaakt als we een ML en een lijstentiteit hebben gemaakt.

We hebben nu intenties gemaakt, voorbeelduitingen toegevoegd en entiteiten toegevoegd. We hebben vier intenties gemaakt (behalve de intentie 'none') en drie entiteiten.

Voorbeelden van uitingen labelen

De door de machine geleerde entiteit wordt gemaakt en de subentiteiten beschikken over functies. Voor het voltooien van de extractieverbetering moeten de voorbeelduitingen worden gelabeld met de subentiteiten.

Er zijn twee manieren om uitingen te labelen:

  1. Het hulpprogramma voor labelen gebruiken

    1. Open het entiteitspalet en selecteer het symbool '@' in de contextuele werkbalk.
    2. Selecteer elke entiteitrij in het palet en gebruik vervolgens de paletcursor om de entiteit te selecteren in elke voorbeelduiting.
  2. Markeer de tekst door de cursor te slepen. Markeer met de cursor de tekst die u wilt labelen. In de volgende afbeelding hebben we vip - laag gemarkeerd en de entiteit NewTier geselecteerd.

    Een schermopname van het labelen van utterances.

De app trainen

Selecteer rechts bovenaan op de LUIS-website de knop Train.

Voordat u gaat trainen, moet u ervoor zorgen dat er ten minste één uiting is voor elke intentie.

Een schermopname van de maar voor het trainen van een app.

Publiceer de app.

Om een voorspelling van LUIS te ontvangen in een chatbot of een andere clienttoepassing, moet u de app publiceren naar het voorspellingseindpunt. Als u wilt publiceren, moet u uw toepassing het eerste trainen.

  1. Selecteer Publiceren in de navigatiebalk rechtsboven.

    Een schermopname van de knop voor het publiceren van een app.

  2. Selecteer de Productiesite en selecteer vervolgens Gereed.

    Een schermopname van de productiesitekiezer.

  3. Selecteer Uw eindpunt-URL's openen in de melding om naar de pagina Azure-resources te gaan. U kunt de URL's alleen zien als u een voorspellingsresource hebt die aan de app is gekoppeld. U kunt ook de pagina Azure-resources vinden door aan de linkerkant van het scherm op Beheren te klikken.

    Een schermopname van de melding voor eindpunttoegang.

Intentvoorspelling ophalen

  1. Selecteer Beheren in het menu rechtsboven en selecteer vervolgens Azure-resources aan de linkerkant.

  2. Kopieer de URL van de voorbeeldquery en plak deze in een nieuw browsertabblad.

    De eindpunt-URL heeft de volgende indeling.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. Ga naar het einde van de URL in de adresbalk en vervang de query= tekenreeksparameter door:

    "Hallo! Ik ben op zoek naar een nieuw nummer alsjeblieft."

    De utterance-query wordt doorgegeven in de URI. Deze utterance is niet hetzelfde als een van de voorbeelduitingen en moet een goede test zijn om te controleren of LUIS de Intent UserAction voorspelt als de meest scorende intentie.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

Het JSON-resultaat identificeert de hoogste score-intentie als de eigenschap prediction.topIntent . Alle scores liggen tussen 1 en 0, met de betere score dichterbij 1.

Volgende stappen voor clienttoepassing

In deze zelfstudie hebt u een LUIS-app gemaakt, intenties, entiteiten gemaakt, voorbeelduitingen toegevoegd aan elke intentie, voorbeelduitingen toegevoegd aan de intentie None, getraind, gepubliceerd en getest op het eindpunt. Dit zijn de basisstappen voor het compileren van een LUIS-model.

LUIS biedt geen antwoorden op uitingen van gebruikers, maar identificeert alleen welk type informatie wordt gevraagd in natuurlijke taal. De gespreksopvolging wordt geleverd door de clienttoepassing, zoals een Azure-bot.

Resources opschonen

Wanneer u de LUIS-app niet meer nodig hebt, kunt u deze verwijderen. Hiervoor selecteert u Mijn apps in het menu linksboven. Selecteer het beletselteken ( ... ) rechts van de naam van de app in de lijst met apps en selecteer Verwijderen. Selecteer ok in het pop-updialoogvenster met de naam App verwijderen.