Gegevens extraheren uit utterancetekst met intenties en entiteiten
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.
LUIS biedt u de mogelijkheid om informatie op te halen uit de uitingen van natuurlijke taal van een gebruiker. De informatie wordt geëxtraheerd op een manier die kan worden gebruikt door een programma, toepassing of chatbot om actie te ondernemen. In de volgende secties leert u welke gegevens worden geretourneerd uit intenties en entiteiten met voorbeelden van JSON.
De moeilijkste gegevens die moeten worden geëxtraheerd, zijn de machine learning-gegevens, omdat deze geen exacte tekstovereenkomst zijn. Gegevensextractie van de machine learning-entiteiten moet deel uitmaken van de ontwerpcyclus totdat u zeker weet dat u de verwachte gegevens ontvangt.
Gebruik van gegevenslocatie en sleutel
LUIS extraheert gegevens uit de uiting van de gebruiker op het gepubliceerde eindpunt. De HTTPS-aanvraag (POST of GET) bevat de utterance en enkele optionele configuraties, zoals faserings- of productieomgevingen.
Aanvraag voor V2-voorspellingseindpunt
https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&q=book 2 tickets to paris
Aanvraag voor V3-voorspellingseindpunt
https://westus.api.cognitive.microsoft.com/luis/v3.0-preview/apps/<appID>/slots/<slot-type>/predict?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&query=book 2 tickets to paris
De appID
app is beschikbaar op de pagina Instellingen van uw LUIS-app, evenals een deel van de URL (na /apps/
) wanneer u die LUIS-app bewerkt. Dit subscription-key
is de eindpuntsleutel die wordt gebruikt voor het uitvoeren van query's op uw app. Hoewel u uw gratis creatie-/starterssleutel kunt gebruiken terwijl u LUIS leert, is het belangrijk om de eindpuntsleutel te wijzigen in een sleutel die ondersteuning biedt voor uw verwachte LUIS-gebruik. De timezoneOffset
eenheid is minuten.
Het HTTPS-antwoord bevat alle intentie- en entiteitsgegevens die LUIS kan bepalen op basis van het huidige gepubliceerde model van het faserings- of productie-eindpunt. De eindpunt-URL vindt u op de LUIS-website , in de sectie Beheren , op de pagina Sleutels en eindpunten .
Gegevens uit intenties
De primaire gegevens zijn de naam van de beste scorende intentie. Het eindpuntantwoord is:
{
"query": "when do you open next?",
"topScoringIntent": {
"intent": "GetStoreInfo",
"score": 0.984749258
},
"entities": []
}
Gegevensobject | Gegevenstype | Gegevenslocatie | Weergegeven als |
---|---|---|---|
Intentie | String | topScoringIntent.intent | "GetStoreInfo" |
Als uw chatbot of luis-aanroepende app een beslissing neemt op basis van meer dan één intentiescore, retourneert u alle scores van de intenties.
Stel de querytekenreeksparameter in. verbose=true
Het eindpuntantwoord is:
{
"query": "when do you open next?",
"topScoringIntent": {
"intent": "GetStoreInfo",
"score": 0.984749258
},
"intents": [
{
"intent": "GetStoreInfo",
"score": 0.984749258
},
{
"intent": "None",
"score": 0.2040639
}
],
"entities": []
}
De intenties worden gerangschikt van hoogste naar laagste score.
Gegevensobject | Gegevenstype | Gegevenslocatie | Weergegeven als | Score |
---|---|---|---|---|
Intentie | String | intents[0].intent | "GetStoreInfo" | 0.984749258 |
Intentie | String | intents[1].intent | "None" | 0.0168218873 |
Als u vooraf gedefinieerde domeinen toevoegt, geeft de intentienaam het domein aan, zoals Utilties
of Communication
de intentie:
{
"query": "Turn on the lights next monday at 9am",
"topScoringIntent": {
"intent": "Utilities.ShowNext",
"score": 0.07842206
},
"intents": [
{
"intent": "Utilities.ShowNext",
"score": 0.07842206
},
{
"intent": "Communication.StartOver",
"score": 0.0239675418
},
{
"intent": "None",
"score": 0.0168218873
}],
"entities": []
}
Domein | Gegevensobject | Gegevenstype | Gegevenslocatie | Weergegeven als |
---|---|---|---|---|
Hulpprogramma's | Intentie | String | intents[0].intent | "Hulpprogramma's. ShowNext" |
Communicatie | Intentie | String | intents[1].intent | Communicatie. StartOver" |
Intentie | String | intents[2].intent | "None" |
Gegevens van entiteiten
De meeste chatbots en toepassingen hebben meer nodig dan de intentienaam. Deze aanvullende, optionele gegevens zijn afkomstig van entiteiten die zijn gedetecteerd in de utterance. Elk type entiteit retourneert verschillende informatie over de overeenkomst.
Eén woord of woordgroep in een utterance kan overeenkomen met meer dan één entiteit. In dat geval wordt elke overeenkomende entiteit geretourneerd met de bijbehorende score.
Alle entiteiten worden geretourneerd in de matrix met entiteiten van het antwoord van het eindpunt
Tokenized entiteit geretourneerd
Controleer de tokenondersteuning in LUIS.
Vooraf gemaakte entiteitsgegevens
Vooraf gemaakte entiteiten worden gedetecteerd op basis van een reguliere expressieovereenkomst met behulp van het opensource Recognizers-Text-project . Vooraf gemaakte entiteiten worden geretourneerd in de matrix met entiteiten en gebruiken de typenaam met het voorvoegsel builtin::
.
Entiteitsgegevens weergeven
Lijstentiteiten vertegenwoordigen een vaste, gesloten set gerelateerde woorden, samen met hun synoniemen. LUIS detecteert geen aanvullende waarden voor lijstentiteiten. Gebruik de functie Aanbevelen om suggesties voor nieuwe woorden weer te geven op basis van de huidige lijst. Als er meer dan één lijstentiteit met dezelfde waarde is, wordt elke entiteit geretourneerd in de eindpuntquery.
Entiteitsgegevens voor reguliere expressies
Een entiteit met een reguliere expressie extraheert een entiteit op basis van een reguliere expressie die u opgeeft.
Namen extraheren
Het ophalen van namen uit een uiting is moeilijk omdat een naam vrijwel elke combinatie van letters en woorden kan zijn. Afhankelijk van het type naam dat u ophaalt, hebt u verschillende opties. De volgende suggesties zijn geen regels, maar meer richtlijnen.
Vooraf gemaakte PersonName- en GeographyV2-entiteiten toevoegen
Entiteiten PersonName en GeographyV2 zijn beschikbaar in sommige taalculturen.
Namen van personen
De naam van personen kan een kleine notatie hebben, afhankelijk van de taal en cultuur. Gebruik een vooraf gedefinieerde personName-entiteit of een eenvoudige entiteit met rollen voor- en achternaam.
Als u de eenvoudige entiteit gebruikt, moet u voorbeelden geven die gebruikmaken van de voor- en achternaam in verschillende delen van de utterance, in uitingen van verschillende lengten en uitingen voor alle intenties, inclusief de intentie None. Controleer regelmatig eindpuntuitingen om namen te labelen die niet correct zijn voorspeld.
Namen van plaatsen
Locatienamen worden ingesteld en bekend als steden, provincies, provincies en landen/regio's. Gebruik de vooraf gedefinieerde entiteit geographyV2 om locatiegegevens te extraheren.
Nieuwe en opkomende namen
Sommige apps moeten nieuwe en opkomende namen kunnen vinden, zoals producten of bedrijven. Deze typen namen zijn het moeilijkste type gegevensextractie. Begin met een eenvoudige entiteit en voeg een woordgroepenlijst toe. Controleer regelmatig eindpuntuitingen om namen te labelen die niet correct zijn voorspeld.
Pattern.any-entiteitsgegevens
Pattern.any is een tijdelijke aanduiding voor variabele lengte die alleen wordt gebruikt in de sjabloonuiting van een patroon om aan te geven waar de entiteit begint en eindigt. De entiteit die in het patroon wordt gebruikt, moet worden gevonden om het patroon toe te passen.
Sentimentanalyse
Als sentimentanalyse is geconfigureerd tijdens het publiceren, bevat het JSON-antwoord van LUIS sentimentanalyse. Meer informatie over sentimentanalyse vindt u in de documentatie van de Language-service .
Entiteitsgegevens voor sleuteltermextractie
De entiteit sleuteltermextractie retourneert sleuteltermen in de uiting, geleverd door de Language-service.
Gegevens die overeenkomen met meerdere entiteiten
LUIS retourneert alle entiteiten die zijn gedetecteerd in de utterance. Als gevolg hiervan moet uw chatbot mogelijk een beslissing nemen op basis van de resultaten.
Gegevens die overeenkomen met meerdere lijstentiteiten
Als een woord of woordgroep overeenkomt met meer dan één lijstentiteit, retourneert de eindpuntquery elke entiteit Lijst.
Voor de query when is the best time to go to red rock?
en de app het woord red
in meer dan één lijst bevat, herkent LUIS alle entiteiten en retourneert een matrix met entiteiten als onderdeel van het JSON-eindpuntantwoord.
Volgende stappen
Zie Entiteiten toevoegen voor meer informatie over het toevoegen van entiteiten aan uw LUIS-app.