Het Amazon Machine Learning Solutions Lab (MLSL) heeft onlangs een tool gemaakt voor het annoteren van tekst met named-entity recognition (NER) en relatielabels met behulp van Amazon SageMaker Grondwaarheid. Annotators gebruiken deze tool om tekst te labelen met benoemde entiteiten en hun relaties te koppelen, en zo een dataset op te bouwen voor het trainen van state-of-the-art natural language processing (NLP) machine learning (ML) modellen. Het belangrijkste is dat dit nu openbaar beschikbaar is voor alle AWS-klanten.
Klantcase: Booking.com
Booking.com is een van 's werelds toonaangevende online reisplatforms. Begrijpen wat klanten zeggen over de meer dan 28 miljoen vastgoedvermeldingen van het bedrijf op het platform is essentieel voor het behouden van een eersteklas klantervaring. Voorheen kon Booking.com alleen traditionele sentimentanalyse gebruiken om door klanten gegenereerde beoordelingen op schaal te interpreteren. Om de specificiteit van deze interpretaties te verbeteren, wendde Booking.com zich onlangs tot de MLSL voor hulp bij het bouwen van een aangepaste geannoteerde dataset voor het trainen van een op aspecten gebaseerd sentimentanalysemodel.
Traditionele sentimentanalyse is het proces waarbij een stuk tekst wordt geclassificeerd als positief, negatief of neutraal enkelvoudig gevoel. Dit werkt om in grote lijnen te begrijpen of gebruikers tevreden of ontevreden zijn met een bepaalde ervaring. Bij traditionele sentimentanalyse kan de volgende tekst bijvoorbeeld als "neutraal" worden geclassificeerd:
Ons verblijf in het hotel was leuk. Het personeel was vriendelijk en de kamers waren schoon, maar onze bedden waren vrij oncomfortabel.
Op aspecten gebaseerde sentimentanalyse biedt een meer genuanceerd begrip van inhoud. In het geval van Booking.com, in plaats van een klantrecensie als geheel te nemen en deze categorisch te classificeren, kan het sentiment uit een recensie halen en toewijzen aan specifieke aspecten. Klantrecensies van een bepaald hotel prijzen bijvoorbeeld het smetteloze zwembad en de fitnessruimte, maar geven kritische feedback over het restaurant en de lounge.
De uitspraak die door traditionele sentimentanalyse als "neutraal" zou zijn geclassificeerd, wordt met aspectgebaseerde sentimentanalyse:
Ons verblijf in het hotel was leuk. Het personeel was vriendelijk en de kamers waren schoon, maar onze bedden waren vrij oncomfortabel.
- Hotel: Positief
- Personeel: Positief
- Kamer: Positief
- Bedden: Negatief
Booking.com wilde een aangepast, op aspecten gebaseerd sentimentanalysemodel bouwen dat hen zou vertellen welke specifieke delen van de gastervaring (uit een lijst met meer dan 50 aspecten) waren positief, negatiefof neutraal.
Voordat Booking.com een โโtrainingsdataset voor dit model kon bouwen, hadden ze een manier nodig om deze te annoteren. De annotatietool van MLSL bood de broodnodige oplossing op maat. Er is een menselijke beoordeling uitgevoerd op een grote verzameling hotelbeoordelingen. Vervolgens voltooiden annotators benoemde entiteitannotaties op tekstreeksen en zinsdelen over sentiment en gastervaring voordat ze de juiste reeksen aan elkaar koppelden.
Met het nieuwe op aspecten gebaseerde model kan Booking.com zowel accommodaties als beoordelingen personaliseren voor haar klanten. Door de positieve en negatieve aspecten van elke accommodatie te benadrukken, kunnen klanten hun perfecte match kiezen. Bovendien geven verschillende klanten om verschillende aspecten van de accommodatie, en het nieuwe model opent de mogelijkheid om de meest relevante beoordelingen aan elke klant te tonen.
Etiketteringsvereisten
Hoewel Ground Truth een ingebouwde NER-tekstannotatiemogelijkheid biedt, biedt het niet de mogelijkheid om entiteiten aan elkaar te koppelen. Met dit in gedachten hebben Booking.com en MLSL de volgende vereisten op hoog niveau uitgewerkt voor een nieuwe tool voor het herkennen van entiteiten voor tekstlabels die:
- Accepteert als invoer: tekst, entiteitslabels, relatie labels en classificatie labels.
- Accepteert optioneel als invoer vooraf geannoteerde gegevens met de voorgaande label- en relatieannotaties.
- Presenteert de annotator met niet-geannoteerde of vooraf geannoteerde tekst.
- Hiermee kunnen annotators willekeurige tekst markeren en annoteren met een entiteitslabel.
- Hiermee kunnen annotators relaties creรซren tussen twee entiteitannotaties.
- Stelt annotators in staat om eenvoudig door grote aantallen entiteitslabels te navigeren.
- Ondersteunt het groeperen van entiteitslabels in categorieรซn.
- Sta overlappende relaties toe, wat betekent dat hetzelfde geannoteerde tekstsegment kan worden gerelateerd aan meer dan รฉรฉn ander geannoteerd tekstsegment.
- Staat overlappende annotaties van entiteitslabels toe, wat betekent dat twee annotaties hetzelfde stuk tekst kunnen overlappen. De tekst 'Seattle Space Needle' kan bijvoorbeeld zowel de annotaties 'Seattle' โ 'locaties' als 'Seattle Space Needle' โ 'attracties' bevatten.
- Het uitvoerformaat is compatibel met het invoerformaat en kan worden teruggevoerd naar volgende labeltaken.
- Ondersteunt UTF-8-gecodeerde tekst met emoji en andere tekens van meerdere bytes.
- Ondersteunt talen van links naar rechts.
Voorbeeldannotatie
Beschouw het volgende document:
We hielden van de locatie van dit hotel! De lounge op het dak gaf ons een perfect zicht op de ruimtenaald. Het is ook een klein eindje rijden van de snoekmarkt en de waterkant.
Eten was alleen beschikbaar via roomservice, wat een beetje teleurstellend was, maar logisch is in deze post-pandemische wereld.
Al met al een redelijk geprijsde ervaring.
Door dit document in de nieuwe NER-annotatie te laden, ziet een werknemer de volgende interface:
In dit geval is het de taak van de werknemer om:
- Label entiteiten die verband houden met het onroerend goed (locatie, prijs, eten, etc.)
- Label entiteiten gerelateerd aan sentiment (positief, negatief of neutraal)
- Koppel eigenschapgerelateerde benoemde entiteiten aan sentimentgerelateerde trefwoorden om de gastervaring nauwkeurig vast te leggen
Annotatiesnelheid was een belangrijke overweging van de tool. Met behulp van een reeks intuรฏtieve sneltoetsen en muisbewegingen kunnen annotators de interface aansturen en:
- Annotaties van benoemde entiteiten toevoegen en verwijderen
- Voeg relaties toe tussen benoemde entiteiten
- Spring naar het begin en einde van het document
- Dien het document in
Daarnaast is er ondersteuning voor overlappende labels. Bijvoorbeeld, Seattle Space Needle
: in deze zin, Seattle
wordt geannoteerd als een locatie op zichzelf en als onderdeel van de naam van de attractie.
De voltooide annotatie biedt een meer volledige, genuanceerde analyse van de gegevens:
Relaties kunnen op vele niveaus worden geconfigureerd, van entiteitscategorieรซn tot andere entiteitscategorieรซn (bijvoorbeeld van "voedsel" tot "sentiment"), of tussen individuele entiteitstypen. Relaties zijn gericht, dus annotators kunnen een aspect als voedsel koppelen aan een sentiment, maar niet andersom (tenzij expliciet ingeschakeld). Bij het tekenen van relaties zal de annotatietool automatisch het label en de richting van de relatie afleiden.
De NER-annotatietool configureren
In dit gedeelte bespreken we hoe u de NER-annotatietool kunt aanpassen voor klantspecifieke use-cases. Dit omvat het configureren van:
- De invoertekst die moet worden geannoteerd
- Entiteitslabels
- Relatielabels
- Classificatielabels
- Vooraf geannoteerde gegevens
- Instructies voor de werknemer
We behandelen de details van de invoer- en uitvoerdocumentindelingen en geven enkele voorbeelden van elk.
Invoerdocumentformaat
De NER-annotatietool verwacht het volgende invoerdocument in JSON-indeling (Velden met een vraagteken naast de naam zijn optioneel).
In een notendop heeft het invoerformaat deze kenmerken:
- Een van beide
entityLabels
orclassificationLabels
(of beide) zijn vereist om te annoteren. - If
entityLabels
worden gegeven, danrelationshipLabels
kan toegevoegd worden. - Relaties kunnen worden toegestaan โโtussen verschillende entiteits-/categorielabels of een combinatie hiervan.
- De "bron" van een relatie is de entiteit waarmee de gerichte pijl begint, terwijl het "doel" is waar het naartoe gaat.
Veld | Type | Omschrijving |
tekst | snaar | Vereist. Voer tekst in voor annotatie. |
tokenRijen | snaar[][] | Optioneel. Aangepaste tokenisatie van invoertekst. Array van arrays van strings. Array op het hoogste niveau vertegenwoordigt elke rij tekst (regeleinden) en array op het tweede niveau vertegenwoordigt tokens op elke rij. Alle karakters/runen in de invoertekst moeten worden verantwoord in tokenRows, inclusief eventuele witruimte. |
documentId | snaar | Optioneel. Optionele waarde voor klanten om bij te houden welk document wordt geannoteerd. |
entiteitLabels | voorwerp[] | Vereist als classificatieLabels leeg is. Matrix van entiteitslabels. |
entiteitLabels[].naam | snaar | Vereist. Weergavenaam entiteitslabel. |
entiteitLabels[].categorie | snaar | Optioneel. Categorienaam entiteitslabel. |
entiteitLabels[].shortName | snaar | Optioneel. Geef deze tekst weer over geannoteerde entiteiten in plaats van de volledige naam. |
entiteitLabels[].shortCategory | snaar | Optioneel. Geef deze tekst weer in de vervolgkeuzelijst voor het selecteren van entiteiten in plaats van de eerste vier letters van de categorienaam. |
entiteitLabels.kleur | snaar | Optioneel. Hex-kleurcode met voorvoegsel "#". Indien blanco, zal het automatisch een kleur toewijzen aan het entiteitslabel. |
relatieLabels | voorwerp[] | Optioneel. Reeks relatielabels. |
relatieLabels[].naam | snaar | Vereist. Weergavenaam relatielabel. |
relationLabels[].allowedRelaties | voorwerp[] | Optioneel. Matrix van waarden die beperken aan welke typen bron- en doelentiteitslabels deze relatie kan worden toegewezen. Elk item in de array wordt samen "OF'ed". |
relationLabels[].allowedRelationships[].sourceEntityLabelCategories | draad[] | Vereist om sourceEntityLabelCategories of sourceEntityLabels (of beide) in te stellen. Lijst met categorietypen van juridische bronentiteitslabels voor deze relatie. |
relationLabels[].allowedRelationships[].targetEntityLabelCategories | draad[] | Vereist om targetEntityLabelCategories of targetEntityLabels (of beide) in te stellen. Lijst met legale labelcategorietypen voor doelentiteiten voor deze relatie. |
relationLabels[].allowedRelationships[].sourceEntityLabels | draad[] | Vereist om sourceEntityLabelCategories of sourceEntityLabels (of beide) in te stellen. Lijst met labeltypen voor juridische bronentiteiten voor deze relatie. |
relationLabels[].allowedRelationships[].sourceEntityLabels | draad[] | Vereist om targetEntityLabelCategories of targetEntityLabels (of beide) in te stellen. Lijst met juridische doelentiteitslabeltypen voor deze relatie. |
classificatieLabels | draad[] | Vereist als entiteitLabels leeg is. Lijst met classificatielabels op documentniveau. |
entiteitAnnotaties | voorwerp[] | Optioneel. Array van entiteitannotaties om invoertekst vooraf mee te annoteren. |
entiteitAnnotaties[].id | snaar | Vereist. Unieke identificatie voor deze entiteitannotatie. Gebruikt om naar deze entiteit te verwijzen in relationshipAnnotations. |
entiteitAnnotaties[].start | aantal | Vereist. Start rune-offset van deze entiteitannotatie. |
entiteitAnnotaties[].einde | aantal | Vereist. Einde rune-offset van deze entiteitannotatie. |
entiteitAnnotaties[].tekst | snaar | Vereist. Tekstinhoud tussen start- en eindrune-offset. |
entiteitAnnotaties[].label | snaar | Vereist. Labelnaam gekoppelde entiteit (van de namen in entityLabels). |
entiteitAnnotaties[].labelCategorie | snaar | Optioneel. Geassocieerde entiteitslabelcategorie (uit de categorieรซn in entityLabels). |
relatieAnnotaties | voorwerp[] | Optioneel. Array van relatie-annotaties. |
relationAnnotations[].sourceEntityAnnotationId | snaar | Vereist. Annotatie-ID van bronentiteit voor deze relatie. |
relationAnnotations[].targetEntityAnnotationId | snaar | Vereist. Annotatie-ID doelentiteit voor deze relatie. |
relatieAnnotaties[].label | snaar | Vereist. Bijbehorende relatielabelnaam. |
classificatieAnnotaties | draad[] | Optioneel. Reeks classificaties om het document vooraf mee te annoteren. |
meta | object | Optioneel. Aanvullende configuratieparameters. |
meta.instructies | snaar | Optioneel. Instructies voor de labeling-annotator in Markdown-indeling. |
meta.disableSubmitBevestiging | boolean | Optioneel. Stel in op true om het bevestigingsmodal voor verzenden uit te schakelen. |
meta.multiClassificatie | boolean | Optioneel. Stel in op true om de modus voor meerdere labels in te schakelen voor classificatieLabels. |
Hier zijn enkele voorbeelddocumenten om een โโbeter idee te krijgen van dit invoerformaat
Documenten die aan dit schema voldoen, worden aan Ground Truth geleverd als afzonderlijke regelitems in een invoermanifest.
Uitvoerdocumentformaat
Het uitvoerformaat is ontworpen om gemakkelijk terug te koppelen naar een nieuwe annotatietaak. Optionele velden in het uitvoerdocument zijn ingesteld als ze ook zijn ingesteld in het invoerdocument. Het enige verschil tussen de invoer- en uitvoerformaten is de meta
voorwerp.
Veld | Type | Omschrijving |
meta.afgewezen | boolean | Is ingesteld op waar als de annotator dit document heeft afgewezen. |
meta.afgewezenReason | snaar | De reden van de annotator voor het afwijzen van het document. |
meta.runen | draad[] | Reeks runen die verantwoordelijk zijn voor alle tekens in de invoertekst. Wordt gebruikt om begin- en eindoffsets van entiteitannotaties te berekenen. |
Hier is een voorbeeld van een uitvoerdocument dat is geannoteerd:
Runen opmerking:
Een "rune" in deze context is een enkel markeerbaar teken in tekst, inclusief multi-byte tekens zoals emoji.
- Omdat verschillende programmeertalen tekens van meerdere bytes anders weergeven, betekent het gebruik van "Runen" om elk markeerbaar teken als een enkel atomisch element te definiรซren, dat we een ondubbelzinnige manier hebben om een โโbepaalde tekstselectie te beschrijven.
- Python behandelt de Zweedse vlag bijvoorbeeld als vier tekens:
Maar JavaScript behandelt dezelfde emoji als twee karakters
Om elke dubbelzinnigheid te elimineren, behandelen we de Zweedse vlag (en alle andere emoji- en multi-byte-tekens) als een enkel atomair element.
- Offset: Rune-positie ten opzichte van invoertekst (beginnend met index 0)
NER-annotaties uitvoeren met Ground Truth
Als volledig beheerde service voor het labelen van gegevens bouwt Ground Truth trainingsdatasets voor ML. Voor deze use case gebruiken we Ground Truth om een โโverzameling tekstdocumenten naar een pool van werknemers te sturen voor annotatie. Ten slotte beoordelen we op kwaliteit.
Ground Truth kan worden geconfigureerd om een โโtaak voor het labelen van gegevens te bouwen met behulp van de nieuwe NER-tool als aangepaste sjabloon.
Concreet zullen we:
- Maak een personeelsbestand voor private labeling van werknemers om de annotatietaak uit te voeren
- Maak een Ground Truth-invoermanifest met de documenten die we willen annoteren en upload het vervolgens naar Eenvoudige opslagservice van Amazon (Amazon S3)
- Maak pre-labeltaak en post-labeltaak Lambda-functies
- Maak een Ground Truth-labeltaak met behulp van de aangepaste NER-sjabloon
- Annoteer documenten
- Bekijk de resultaten
NER-toolbronnen
Een volledige lijst met bronnen waarnaar wordt verwezen en voorbeelddocumenten is te vinden in de volgende tabel:
Het creรซren van personeelsbestand labelen
Ground Truth gebruikt SageMaker-labelpersoneel om werknemers te beheren en taken te verdelen. Creรซer een eigen personeelsbestand, een arbeidersteam genaamd ner-werker-team, en wijs jezelf toe aan het team met behulp van de instructies in Creรซer een privรฉpersoneelsbestand (Amazon SageMaker Console).
Nadat u uzelf heeft toegevoegd aan een privรฉpersoneelsbestand en uw e-mail hebt bevestigd, noteert u de URL van het werknemersportaal van de AWS Management Console:
- Navigeer naar
SageMaker
- Navigeer naar
Ground Truth โ Labeling workforces
- Selecteer het
Private
tab - Let op de URL
Labeling portal sign-in URL
Log in op het werknemersportaal om labeltaken te bekijken en eraan te werken.
Invoer manifest
Het Ground Truth-manifest voor invoergegevens is een bestand met JSON-lijnen waarin elke regel een enkele werktaak bevat. In ons geval bevat elke regel een enkel JSON-gecodeerd invoerdocument met de tekst die we willen annoteren en het NER-annotatieschema.
Download een voorbeeld van een invoermanifest reviews.manifest
oppompen van https://assets.solutions-lab.ml/NER/0.2.1/sample-data/reviews.manifest
Note: elke rij in het invoermanifest heeft een sleutel op het hoogste niveau nodig source
or source-ref
. U kunt meer leren in Gebruik een invoermanifestbestand in de Amazon SageMaker-ontwikkelaarsgids.
Upload het invoermanifest naar Amazon S3
Upload dit invoermanifest naar een S3-bucket met behulp van de AWS Management Console of vanaf de opdrachtregel en vervang daarbij your-bucket
met een echte bucketnaam.
Download sjabloon voor aangepaste werknemers
Download de sjabloon voor aangepaste werknemers van de NER-tool van https://assets.solutions-lab.ml/NER/0.2.1/worker-template.liquid.html door de bron te bekijken en de inhoud lokaal op te slaan, of vanaf de opdrachtregel:
Maak pre-labeltaak en post-labeltaak Lambda-functies
Download voorbeeld pre-labeltaak Lambda-functie: smgt-ner-pre-labeling-task-lambda.py
oppompen van https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-pre-labeling-task-lambda.py
Download voorbeeld pre-labeltaak Lambda-functie: smgt-ner-post-labeling-task-lambda.py
oppompen van https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-post-labeling-task-lambda.py
- Maak pre-labeltaak Lambda-functie vanuit de AWS Management Console:
- Navigeer naar
Lambda
- kies
Create function
- Specificeren
Function name
assmgt-ner-pre-labeling-task-lambda
- kies
Runtime
โPython 3.6
- kies
Create function
- In
Function code
โlambda_hanadler.py
, plak de inhoud vansmgt-ner-pre-labeling-task-lambda.py
- kies
Deploy
- Navigeer naar
- Creรซer post-label taak Lambda-functie vanuit de AWS Management Console:
- Navigeer naar
Lambda
- kies
Create function
- Specificeren
Function name
assmgt-ner-post-labeling-task-lambda
- kies
Runtime
โPython 3.6
- Uitvouwen
Change default execution role
- kies
Create a new role from AWS policy templates
- Voer de
Role name
:smgt-ner-post-labeling-task-lambda-role
- kies
Create function
- Selecteer het
Permissions
tab - Selecteer het
Role name
:smgt-ner-post-labeling-task-lambda-role
om de IAM-console te openen - Voeg twee beleidsregels toe aan de rol
- kies
Attach policies
- Bevestig de
AmazonS3FullAccess
beleidsmaatregelen - kies
Add inline policy
- Selecteer het
JSON
tab - Plak het volgende inline beleid:
- kies
- Navigeer terug naar de
smgt-ner-post-labeling-task-lambda
Lambda-functie configuratiepagina - Selecteer het
Configuration
tab - In
Function code
โ lambda_hanadler.py
, plak de inhoud vansmgt-ner-post-labeling-task-lambda.py
- kies
Deploy
- Navigeer naar
Maak een Ground Truth-labeltaak aan
Vanuit de AWS-beheerconsole:
- Navigeer naar de
Amazon SageMaker
service - Navigeer naar
Ground Truth
โLabeling Jobs
. - kies
Create labeling job
- Specificeer een
Job Name
- kies
Manual Data Setup
- Geef de locatie van de invoergegevensset op waar u het invoermanifest eerder hebt geรผpload (bijvoorbeeld s
3://your-bucket/ner-input/sample-smgt-input-manifest.jsonl
) - Geef de locatie van de uitvoergegevensset op om naar een andere map in dezelfde bucket te verwijzen (bijv.
s3://your-bucket/ner-output/
) - Specificeer een
IAM Role
door selecterenCreate new role
- Geef deze rol toegang tot elke S3-bucket door te selecteren
S3 buckets you specify
โAny S3 bucket
bij het maken van het beleid - Open in een nieuw AWS Management Console-venster het
IAM
console en selecteerRoles
- Zoek naar de naam van de rol die u zojuist hebt gemaakt (bijvoorbeeld
AmazonSageMaker-ExecutionRole-20210301T154158
) - Selecteer de rolnaam om de rol in de console te openen
- Voeg de volgende drie beleidsregels toe:
- Selecteer Beleid bijvoegen
- Bevestig de
AWSLambda_FullAccess
naar de rol - kies
Trust Relationships
โEdit Trust Relationships
- Bewerk de vertrouwensrelatie JSON,
- vervangen
YOUR_ACCOUNT_NUMBER
met uw numerieke AWS-accountnummer, om te lezen: - Sla de vertrouwensrelatie op
- Geef deze rol toegang tot elke S3-bucket door te selecteren
- Keer terug naar de nieuwe Ground Truth-taak in het vorige AWS Management Console-venster: onder
Task Category
selecteerCustom
- kies
Next
- kies
Worker types
:Private
- Selecteer het
Private team
:ner-worker-team
die in de vorige sectie is gemaakt - In het
Custom labeling task setup
tekstgebied, wist u de standaardinhoud en plakt u de inhoud van hetworker-template.liquid.html
eerder verkregen bestand - Geef het
Pre-labeling task Lambda function
met de eerder aangemaakte functie:smgt-ner-pre-labeling
- Geef het
Post-labeling task Lambda function
met de eerder gemaakte functie:smgt-ner-post-labeling
- kies
Create
Annoteer documenten
Zodra de Ground Truth-taak is gemaakt, kunnen we beginnen met het annoteren van documenten. Open het werknemersportaal voor ons personeel dat eerder is gemaakt (ga in de AWS Management Console naar de SageMaker
, Ground Truth โ Labeling workforces
, Private
, en open het Labeling portal sign-in URL
)
Meld u aan en selecteer de eerste labeltaak in de tabel en selecteer vervolgens "Beginnen met werken" om de annotator te openen. Voer uw annotaties uit en selecteer verzenden op alle drie de voorbeelddocumenten.
Bekijk de resultaten
Terwijl Ground Truth-annotators taken voltooien, zijn de resultaten beschikbaar in de output S3-bucket:
Zodra alle taken voor een labeltaak zijn voltooid, is de geconsolideerde uitvoer beschikbaar in de output.manifest
bestand bevindt zich hier:
Dit uitvoermanifest is een JSON-lijnenbestand met รฉรฉn geannoteerd tekstdocument per regel in het eerder gespecificeerde "Uitvoerdocumentformaat". Dit bestand is compatibel met het "Input Document Format" en kan direct worden ingevoerd in een volgende Ground Truth-taak voor nog een annotatieronde. Het kan ook worden geparseerd en naar een ML-trainingstaak worden verzonden. Enkele scenario's waarin we een tweede ronde annotaties zouden kunnen gebruiken, zijn:
- Het annotatieproces opsplitsen in twee stappen waarbij de eerste annotator entiteitannotaties identificeert en de tweede annotator relaties tekent
- Een steekproef nemen van onze
output.manifest
en het ter beoordeling naar een tweede, meer ervaren annotator sturen als kwaliteitscontrole
Aangepaste Ground Truth-annotatiesjablonen
De NER-annotatietool die in dit document wordt beschreven, is geรฏmplementeerd als een aangepaste Ground Truth-annotatiesjabloon. AWS-klanten kunnen hun eigen aangepaste annotatie-interfaces bouwen met behulp van de instructies die hier te vinden zijn:
Conclusie
Door samen te werken, konden Booking.com en Amazon MLSL een krachtig hulpmiddel voor tekstannotatie ontwikkelen dat in staat is om complexe herkenning van benoemde entiteiten en relatie-annotaties te creรซren.
We moedigen AWS-klanten met een gebruiksscenario voor NER-tekstannotaties aan om de tool te proberen die in dit bericht wordt beschreven. Als u hulp wilt bij het versnellen van het gebruik van ML in uw producten en diensten, neem dan contact op met de Amazon Machine Learning Solutions-lab.
Over de auteurs
Dan Nobel is een Software Development Engineer bij Amazon, waar hij helpt bij het bouwen van heerlijke gebruikerservaringen. In zijn vrije tijd houdt hij van lezen, sporten en avonturen beleven met zijn gezin.
Pri Nonis is een Deep Learning Architect bij het Amazon ML Solutions Lab, waar hij samenwerkt met klanten in verschillende branches, en hen helpt hun cloudmigratietraject te versnellen en hun ML-problemen op te lossen met behulp van ultramoderne oplossingen en technologieรซn.
Niharika Jayanthi is een Front End Engineer bij AWS, waar ze aangepaste annotatieoplossingen ontwikkelt voor klanten van Amazon SageMaker. Naast haar werk gaat ze graag naar musea en sport ze graag.
Amit Beka is Machine Learning Manager bij Booking.com, met meer dan 15 jaar ervaring in softwareontwikkeling en machine learning. Hij is gefascineerd door mensen en talen, en hoe computers door beide nog steeds voor een raadsel staan.
- '
- 100
- 11
- 7
- Over
- toegang
- Account
- Accounting
- over
- Actie
- toevoeging
- Extra
- Alles
- Amazone
- Amazon machinaal leren
- Amazon Sage Maker
- Dubbelzinnigheid
- analyse
- GEBIED
- Beschikbaar
- Beschikbaar voor iedereen
- AWS
- Begin
- wezen
- bouw
- Gebouw
- verzorging
- gevallen
- classificatie
- Cloud
- code
- Collectie
- complex
- computers
- Configuratie
- overweging
- troosten
- content
- inhoud
- kon
- Wij creรซren
- kritisch
- klantervaring
- Klanten
- gegevens
- diepgaand leren
- ontwikkelen
- Ontwikkelaar
- Ontwikkeling
- anders
- documenten
- Nee
- gemakkelijk
- effect
- Emoji
- aanmoedigen
- ingenieur
- etc
- voorbeeld
- uitvoering
- verwacht
- ervaring
- Ervaringen
- familie
- Fed
- feedback
- Velden
- Tot slot
- Voornaam*
- geschiktheid
- eten
- formaat
- gevonden
- vol
- functie
- gif
- gaan
- Gast
- gids
- hulp
- helpt
- hier
- Markeer
- hotel
- Hoe
- How To
- HTTPS
- IAM
- geรฏmplementeerd
- belangrijk
- Inclusief
- index
- individueel
- IT
- JavaScript
- Jobomschrijving:
- sleutel
- etikettering
- labels
- taal
- Talen
- Groot
- leidend
- LEARN
- leren
- Juridisch
- Niveau
- niveaus
- Lijn
- LINK
- Vloeistof
- Lijst
- Meldingen
- plaatselijk
- plaats
- op zoek
- machine learning
- management
- Mark
- Markt
- Match
- meta
- denken
- ML
- model
- meer
- musea
- namen
- Natuurlijke taal
- Natural Language Processing
- nodig
- nlp
- nummers
- Aanbod
- compenseren
- online.
- open
- opent
- kansen
- Overige
- Mensen
- zinnen
- platform
- platforms
- beleidsmaatregelen door te lezen.
- beleidsmaatregelen
- zwembad
- Portaal
- post-pandemie
- krachtige
- prijs
- Principal
- privaat
- Producten
- Programming
- programmeertalen
- eigendom
- zorgen voor
- biedt
- Python
- kwaliteit
- vraag
- lezing
- Relaties
- Voorwaarden
- hulpbron
- Resources
- restaurant
- Resultaten
- beoordelen
- Recensies
- Studio's
- sagemaker
- besparing
- Scale
- zin
- sentiment
- Diensten
- reeks
- Bermuda's
- Eenvoudig
- So
- Software
- software development
- Oplossingen
- OPLOSSEN
- Tussenruimte
- snelheid
- begin
- Statement
- blijven
- mediaopslag
- ondersteuning
- doelwit
- Technologies
- De Bron
- niet de tijd of
- samen
- tokenization
- tokens
- tools
- top
- hoogste niveau
- spoor
- traditioneel
- Trainingen
- reizen
- behandelen
- behandelt
- Trust
- us
- gebruikers
- waarde
- versie
- Bekijk
- Wat
- binnen
- Mijn werk
- werkte
- werknemers
- Workforce
- werkzaam
- trainen
- Bedrijven
- wereld
- s werelds
- zou
- jaar