Entiteiten in LUIS

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

Uiting Voorspelde intentie Geëxtraheerde entiteiten Uitleg
Hallo hoe gaat het? Begroeting - U kunt niets extraheren.
Ik wil een kleine pizza bestellen orderPizza 'klein' De entiteit 'Grootte' wordt geëxtraheerd als 'klein'.
Licht in de slaapkamers uitschakelen Afslag 'slaapkamers' De entiteit 'Room' wordt geëxtraheerd als 'slaapkamers'.
Saldo controleren in mijn spaarrekening die eindigt op 4406 checkBalance "besparingen", "4406" De entiteit accountType wordt geëxtraheerd als 'savings' en de entiteit accountNumber wordt geëxtraheerd als '4406'.
3 tickets naar New York kopen buyTickets "3", "New York" De entiteit ticketsCount wordt geëxtraheerd als '3' en de entiteit 'Destination' wordt geëxtraheerd als 'New York'.

Entiteiten zijn optioneel, maar worden aanbevolen. U hoeft geen entiteiten te maken voor elk concept in uw app, alleen voor de volgende dingen:

  • De clienttoepassing heeft de gegevens nodig, of
  • De entiteit fungeert als hint of signaal naar een andere entiteit of intentie. Ga naar Entiteiten als functies voor meer informatie over entiteiten als Functies.

Entiteitstypen

Als u een entiteit wilt maken, moet u deze een naam en een type geven. Er zijn verschillende typen entiteiten in LUIS.

Lijstentiteit

Een entiteit List vertegenwoordigt een vaste, gesloten set gerelateerde woorden samen met hun synoniemen. U kunt lijstentiteiten gebruiken om meerdere synoniemen of variaties te herkennen en een genormaliseerde uitvoer voor deze entiteiten te extraheren. Gebruik de aanbevelingsoptie om suggesties te zien voor nieuwe woorden op basis van de huidige lijst.

Een entiteit list is niet machine-learned, wat betekent dat LUIS geen aanvullende waarden voor lijstentiteiten detecteert. LUIS markeert een overeenkomst met een item in een lijst als een entiteit in het antwoord.

Overeenkomst in lijstentiteiten is zowel casegevoelig als moet een exacte overeenkomst zijn om te worden geëxtraheerd. Genormaliseerde waarden worden ook gebruikt bij het overeenkomen met de lijstentiteit. Bijvoorbeeld:

Genormaliseerde waarde Synoniemen
Klein sm, sml, zeer klein, kleinste
Middelgroot md, mdm, normaal, gemiddeld, midden
Groot lg, lrg, groot

Zie het naslagartikel over list entities voor meer informatie.

Regex-entiteit

Een entiteit in de reguliere expressie extraheert een entiteit op basis van een patroon voor reguliere expressies dat u op geeft. Het negeert het geval en negeert culturele variant. Reguliere expressie is het beste voor gestructureerde tekst of een vooraf gedefinieerde reeks alfanumerieke waarden die in een bepaalde indeling worden verwacht. Bijvoorbeeld:

Entiteit Reguliere expressie Voorbeeld
Vluchtnummer flight [A-Z] {2} [0-9]{4} flight AS 1234
Creditcardnummer [0-9]{16} 5478789865437632

Zie het naslagartikel over regex-entiteiten voor meer informatie.

Vooraf gebouwde entiteit

LUIS biedt een set vooraf gebouwde entiteiten voor het herkennen van algemene typen gegevens, zoals naam, datum, nummer en valuta. Het gedrag van vooraf gebouwde entiteiten is vast. De ondersteuning voor vooraf gebouwde entiteiten is afhankelijk van de cultuur van de LUIS-app. Bijvoorbeeld:

Vooraf gebouwde entiteit Voorbeeldwaarde
PersonName James, Bill, Tom
DatetimeV2 2019-05-02, 2 mei 08:00 op 2 mei 2019

Zie het naslagartikel over vooraf gebouwde entiteiten voor meer informatie.

Pattern.Any-entiteit

Een patroon. Elke entiteit is een tijdelijke aanduiding met variabele lengte die alleen wordt gebruikt in de sjabloon-utterance van een patroon om te markeren waar de entiteit begint en eindigt. Het volgt een specifieke regel of een specifiek patroon en wordt het beste gebruikt voor zinnen met een vaste lexicale structuur. Bijvoorbeeld:

Voorbeeld van een utterance Patroon Entiteit
Kan ik een burger a.u.u.a. hebben? Kan ik een {{{ hebben} [please][?] burger
Kan ik een pizza hebben? Kan ik een {{{ hebben} [please][?] Pizza
Waar vind ik The Great Gatsby? Waar vind ik {bookName}? The Great Gatsby

Zie het referentieartikel over Pattern.Any-entiteiten voor meer informatie.

Machine learned-entiteit (ML)

De entiteit Machine Learned maakt gebruik van context om entiteiten te extraheren op basis van gelabelde voorbeelden. Het is de voorkeursentiteit voor het bouwen van LUIS-toepassingen. Het is afhankelijk van machine learning algoritmen en vereist dat labels met succes worden aangepast aan uw toepassing. Gebruik een ML om gegevens te identificeren die niet altijd goed zijn opgemaakt, maar dezelfde betekenis hebben.

Voorbeeld van een utterance Geëxtraheerde productentiteit
Ik wil een boek kopen. "boek"
Kan ik deze schoenen kopen? "schoenen"
Voeg deze shorts toe aan mijn winkelwagen. 'shorts'

Meer informatie over door Machine geleerde entiteiten vindt u hier.

Zie het naslagartikel over door machine geleerde entiteiten voor meer informatie.

ML entiteit met structuur

Een ML entiteit kan bestaan uit kleinere subentiteiten, die elk hun eigen eigenschappen kunnen hebben. Adres kan bijvoorbeeld de volgende structuur hebben:

  • Adres: 4567 Main Street, NY, 98052, USA
    • Gebouwnummer: 4567
    • Straatnaam: Hoofdweg
    • Staat: NY
    • Postcode: 98052
    • Land: VS

Effectieve ML bouwen

Volg deze best practices om effectief door machine geleerde entiteiten te bouwen:

  • Als u een machine learned-entiteit met subentiteiten hebt, moet u ervoor zorgen dat de verschillende orders en varianten van de entiteit en subentiteiten worden weergegeven in de gelabelde utterances. Gelabelde voorbeelduitingen moeten alle geldige formulieren bevatten, en entiteiten bevatten die worden weergegeven en die niet aanwezig zijn en ook de volgorde van de utterance wijzigen.

  • Vermijd overfitting van de entiteiten naar een zeer vaste set. Overfitting vindt plaats wanneer het model niet goed generaliseert en een veelvoorkomende probleem is in machine learning modellen. Dit impliceert dat de app niet op de juiste manier zou werken met nieuwe typen voorbeelden. Op zijn beurt moet u de gelabelde voorbeeld-utterances variëren, zodat de app verder kan generaliseren dan de beperkte voorbeelden die u op biedt.

  • Uw labels moeten consistent zijn voor alle intenties. Dit omvat zelfs utterances die u op geeft in de intentie None die deze entiteit bevat. Anders kan het model de reeksen niet effectief bepalen.

Entiteiten als functies

Een andere belangrijke functie van entiteiten is om deze te gebruiken als kenmerken of eigenschappen te onderscheiden voor andere intenties of entiteiten, zodat uw systeem deze observeert en leert.

Entiteiten als functies voor intenties

U kunt entiteiten gebruiken als signaal voor een intentie. De aanwezigheid van een bepaalde entiteit in de utterance kan bijvoorbeeld onderscheiden van welke intentie deze valt.

Voorbeeld van een utterance Entiteit Intentie
Boek me een strijd met New York. Plaats Vlucht boeken
Boek de belangrijkste vergaderruimte voor mij. Room Ruimte reserveren

Entiteiten als functie voor entiteiten

U kunt entiteiten ook gebruiken als indicator van de aanwezigheid van andere entiteiten. Een veelvoorkomende voorbeeld hiervan is het gebruik van een vooraf gebouwde entiteit als een functie voor een ML entiteit. Als u een vluchtboekingssysteem bouwt en uw uiting lijkt op 'Book me a flight from Seattle', dan hebt u Origin City en Destination City als ML entiteiten. Het is een goed idee om de vooraf gebouwde entiteit te GeographyV2 gebruiken als een functie voor beide entiteiten.

Zie het referentieartikel GeographyV2-entiteiten voor meer informatie.

U kunt entiteiten ook gebruiken als vereiste functies voor andere entiteiten. Dit helpt bij het oplossen van geëxtraheerde entiteiten. Als u bijvoorbeeld een toepassing voor het bestellen van pizza's maakt en u een ML-entiteit hebt, kunt u een lijstentiteit maken en deze gebruiken als een vereiste functie Size SizeList voor de Size entiteit. Uw toepassing retourneert de genormaliseerde waarde als de geëxtraheerde entiteit uit de utterance.

Zie functies voor meer informatie en vooraf gebouwde entiteiten voor meer informatie over de oplossing van vooraf gebouwde entiteiten die beschikbaar zijn in uw cultuur.

Status en fouten van entiteitsvoorspelling

In de LUIS-portal ziet u het volgende wanneer de entiteit een andere entiteitsvoorspelling heeft dan de entiteit die u hebt gelabeld voor een voorbeelduiting. Deze andere score is gebaseerd op het huidige getrainde model.

De LUIS-portal laat zien wanneer de entiteit een andere entiteitsvoorspelling heeft dan de entiteit die u hebt geselecteerd voor een voorbeelduiting

De tekst die de fout veroorzaakt, wordt gemarkeerd in de voorbeelduiting en de voorbeelduitingslijn heeft een foutindicator aan de rechterkant, weergegeven als een rode driehoek.

Probeer een of meer van de volgende opties om entiteitsfouten op te lossen:

  • De gemarkeerde tekst is verkeerd gelabeld. Als u dit wilt oplossen, controleert u het label, corrigeert u het en gaat u de app opnieuw trainen.
  • Maak een functie voor de entiteit om het concept van de entiteit te identificeren.
  • Voeg meer voorbeeld-utterances toe en label deze met de entiteit.
  • Bekijk actieve leersuggesties voor alle uitingen die worden ontvangen op het voorspellings-eindpunt, zodat u het concept van de entiteit kunt identificeren.

Volgende stappen