Extrahera data från yttrandetext med avsikter och entiteter
Viktigt!
LUIS dras tillbaka den 1 oktober 2025 och från och med den 1 april 2023 kommer du inte att kunna skapa nya LUIS-resurser. Vi rekommenderar att du migrerar dina LUIS-program till förståelse för konversationsspråk för att dra nytta av fortsatt produktsupport och flerspråkiga funktioner.
LUIS ger dig möjlighet att hämta information från en användares naturliga språkyttranden. Informationen extraheras på ett sätt som kan användas av ett program, ett program eller en chattrobot för att vidta åtgärder. I följande avsnitt får du lära dig vilka data som returneras från avsikter och entiteter med exempel på JSON.
De svåraste data att extrahera är maskininlärningsdata eftersom det inte är en exakt textmatchning. Dataextrahering av maskininlärningsentiteter måste ingå i redigeringscykeln tills du är säker på att du får de data du förväntar dig.
Dataplats och nyckelanvändning
LUIS extraherar data från användarens yttrande vid den publicerade slutpunkten. HTTPS-begäran (POST eller GET) innehåller yttrandet samt några valfria konfigurationer, till exempel mellanlagrings- eller produktionsmiljöer.
V2-förutsägelseslutpunktsbegäran
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
V3-förutsägelseslutpunktsbegäran
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
appID
Är tillgängligt på sidan Inställningar för din LUIS-app samt en del av URL:en (efter /apps/
) när du redigerar LUIS-appen. subscription-key
är slutpunktsnyckeln som används för att fråga din app. Du kan använda din kostnadsfria redigerings-/startnyckel medan du lär dig LUIS, men det är viktigt att ändra slutpunktsnyckeln till en nyckel som stöder din förväntade LUIS-användning. Enheten timezoneOffset
är minuter.
HTTPS-svaret innehåller all avsikts- och entitetsinformation som LUIS kan fastställa baserat på den aktuella publicerade modellen för antingen mellanlagrings- eller produktionsslutpunkten. Slutpunkts-URL:en finns på LUIS-webbplatsen i avsnittet Hantera på sidan Nycklar och slutpunkter .
Data från avsikter
De primära data är det namn på den mest poänggivande avsikten. Slutpunktssvaret är:
{
"query": "when do you open next?",
"topScoringIntent": {
"intent": "GetStoreInfo",
"score": 0.984749258
},
"entities": []
}
Dataobjekt | Datatyp | Dataplats | Värde |
---|---|---|---|
Avsikt | String | topScoringIntent.intent | "GetStoreInfo" |
Om din chattrobot eller LUIS-anropande app fattar ett beslut baserat på mer än en avsiktspoäng returnerar du alla avsikters poäng.
Ange parametern querystring, verbose=true
. Slutpunktssvaret är:
{
"query": "when do you open next?",
"topScoringIntent": {
"intent": "GetStoreInfo",
"score": 0.984749258
},
"intents": [
{
"intent": "GetStoreInfo",
"score": 0.984749258
},
{
"intent": "None",
"score": 0.2040639
}
],
"entities": []
}
Avsikterna sorteras från högsta till lägsta poäng.
Dataobjekt | Datatyp | Dataplats | Värde | Poäng |
---|---|---|---|---|
Avsikt | String | intents[0].intent | "GetStoreInfo" | 0.984749258 |
Avsikt | String | intents[1].intent | "Ingen" | 0.0168218873 |
Om du lägger till fördefinierade domäner anger avsiktsnamnet domänen, till exempel Utilties
eller Communication
samt avsikten:
{
"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": []
}
Domän | Dataobjekt | Datatyp | Dataplats | Värde |
---|---|---|---|---|
Verktyg | Avsikt | String | intents[0].intent | "Verktyg. VisaNästa" |
Kommunikation | Avsikt | String | intents[1].intent | Kommunikation. StartOver" |
Avsikt | String | intents[2].intent | "Ingen" |
Data från entiteter
De flesta chattrobotar och program behöver mer än avsiktsnamnet. Dessa ytterligare, valfria data kommer från entiteter som identifieras i yttrandet. Varje typ av entitet returnerar olika information om matchningen.
Ett ord eller en fras i ett yttrande kan matcha mer än en entitet. I så fall returneras varje matchande entitet med dess poäng.
Alla entiteter returneras i entitetsmatrisen för svaret från slutpunkten
Tokeniserad entitet som returneras
Granska tokensupporten i LUIS.
Fördefinierade entitetsdata
Fördefinierade entiteter identifieras baserat på en reguljär uttrycksmatchning med projektet Recognizers-Text med öppen källkod. Fördefinierade entiteter returneras i entitetsmatrisen och använder typnamnet prefixet med builtin::
.
Lista entitetsdata
Listentiteter representerar en fast, stängd uppsättning relaterade ord tillsammans med deras synonymer. LUIS identifierar inte ytterligare värden för listentiteter. Använd funktionen Rekommendera om du vill se förslag på nya ord baserat på den aktuella listan. Om det finns fler än en listentitet med samma värde returneras varje entitet i slutpunktsfrågan.
Entitetsdata för reguljära uttryck
En entitet med reguljära uttryck extraherar en entitet baserat på ett reguljärt uttryck som du anger.
Extrahera namn
Det är svårt att hämta namn från ett yttrande eftersom ett namn kan vara nästan vilken kombination som helst av bokstäver och ord. Beroende på vilken typ av namn du extraherar har du flera alternativ. Följande förslag är inte regler utan fler riktlinjer.
Lägga till fördefinierade PersonName- och GeographyV2-entiteter
PersonName- och GeographyV2-entiteter är tillgängliga i vissa språkkulturer.
Namn på personer
Personers namn kan ha något litet format beroende på språk och kultur. Använd antingen en fördefinierad personName-entitet eller en enkel entitet med roller med för- och efternamn.
Om du använder den enkla entiteten ser du till att ge exempel som använder för- och efternamn i olika delar av yttrandet, i yttranden med olika längd och yttranden i alla avsikter, inklusive avsikten Ingen. Granska slutpunktsyttranden regelbundet för att märka namn som inte förutsagts korrekt.
Namn på platser
Platsnamn anges och kallas för städer, län, delstater, provinser och länder/regioner. Använd den fördefinierade entiteten geographyV2 för att extrahera platsinformation.
Nya och nya namn
Vissa appar måste kunna hitta nya och nya namn, till exempel produkter eller företag. Dessa typer av namn är den svåraste typen av dataextrahering. Börja med en enkel entitet och lägg till en fraslista. Granska slutpunktsyttranden regelbundet för att märka namn som inte förutsagts korrekt.
Pattern.any-entitetsdata
Pattern.any är en platshållare med variabel längd som endast används i ett mönsters mallyttrande för att markera var entiteten börjar och slutar. Entiteten som används i mönstret måste hittas för att mönstret ska kunna tillämpas.
Attitydanalys
Om attitydanalys konfigureras vid publicering innehåller LUIS json-svaret attitydanalys. Läs mer om attitydanalys i dokumentationen för Språktjänsten .
Extrahering av entitetsdata för nyckelfraser
Entiteten extrahering av nyckelfraser returnerar nyckelfraser i yttrandet som tillhandahålls av språktjänsten.
Data som matchar flera entiteter
LUIS returnerar alla entiteter som identifierats i yttrandet. Därför kan chattroboten behöva fatta ett beslut baserat på resultatet.
Data som matchar flera listentiteter
Om ett ord eller en fras matchar mer än en listentitet returnerar slutpunktsfrågan varje listentitet.
För frågan when is the best time to go to red rock?
, och appen har ordet red
i mer än en lista, identifierar LUIS alla entiteter och returnerar en matris med entiteter som en del av JSON-slutpunktssvaret.
Nästa steg
Mer information om hur du lägger till entiteter i LUIS-appen finns i Lägga till entiteter .