Amazon Machine Learning Solutions Lab (MLSL) stworzyło niedawno narzędzie do adnotacji tekstu z rozpoznawaniem jednostek nazwanych (NER) i etykietami relacji za pomocą Amazon SageMaker Ground Prawda. Adnotatorzy używają tego narzędzia do etykietowania tekstu nazwanymi jednostkami i łączenia ich relacji, tworząc w ten sposób zestaw danych do szkolenia najnowocześniejszych modeli uczenia maszynowego (ML) przetwarzania języka naturalnego (NLP). Co najważniejsze, jest to teraz publicznie dostępne dla wszystkich klientów AWS.
Przypadek użycia klienta: Booking.com
Booking.com jest jedną z wiodących na świecie internetowych platform turystycznych. Zrozumienie, co klienci mówią o ponad 28 milionach ofert nieruchomości firmy na platformie, jest niezbędne do utrzymania najwyższej jakości obsługi klienta. Wcześniej Booking.com mógł wykorzystywać tylko tradycyjną analizę nastrojów do interpretacji opinii generowanych przez klientów na dużą skalę. Chcąc udoskonalić specyfikę tych interpretacji, firma Booking.com zwróciła się ostatnio do MLSL o pomoc w zbudowaniu niestandardowego zestawu danych z adnotacjami do trenowania modelu analizy nastrojów opartego na aspektach.
Tradycyjna analiza nastrojów to proces klasyfikowania fragmentu tekstu jako pozytywnego, negatywnego lub neutralnego, np pojedynczy sentyment. Działa to w celu ogólnego zrozumienia, czy użytkownicy są zadowoleni, czy niezadowoleni z określonego doświadczenia. Na przykład w przypadku tradycyjnej analizy nastrojów następujący tekst można sklasyfikować jako „neutralny”:
Nasz pobyt w hotelu był miły. Personel był przyjazny, a pokoje były czyste, ale nasze łóżka były dość niewygodne.
Analiza nastrojów oparta na aspektach zapewnia bardziej szczegółowe zrozumienie treści. W przypadku Booking.com, zamiast brać recenzję klienta jako całość i klasyfikować ją kategorycznie, może wziąć sentyment z recenzji i przypisać go do określonych aspektów. Na przykład recenzje klientów danego hotelu mogą chwalić nieskazitelny basen i strefę fitness, ale zawierać krytyczne opinie na temat restauracji i salonu.
Stwierdzenie, które w tradycyjnej analizie nastrojów zostałoby sklasyfikowane jako „neutralne”, w przypadku analizy nastrojów opartej na aspektach stanie się:
Nasz pobyt w hotelu był miły. Personel był przyjazny, a pokoje były czyste, ale nasze łóżka były dość niewygodne.
- Hotel: pozytywny
- Personel: pozytywny
- Pokój: pozytywny
- Łóżka: negatywne
Booking.com starał się zbudować niestandardowy model analizy nastrojów oparty na aspektach, który powiedziałby im, które konkretne części doświadczenia gościa (z listy ponad 50 aspektów) były pozytywny, ujemnylub neutralny.
Zanim Booking.com mógł zbudować zestaw danych szkoleniowych dla tego modelu, potrzebował sposobu na dodanie do niego adnotacji. Narzędzie adnotacji MLSL dostarczyło bardzo potrzebnego, dostosowanego rozwiązania. Ocena ludzka została przeprowadzona na dużym zbiorze recenzji hoteli. Następnie adnotatorzy uzupełniali adnotacje nazwanych jednostek w zakresach tekstu i frazach dotyczących nastrojów i doświadczeń gości, zanim połączyli ze sobą odpowiednie zakresy.
Nowy model oparty na aspektach pozwala Booking.com personalizować zarówno zakwaterowanie, jak i recenzje dla swoich klientów. Podkreślenie pozytywnych i negatywnych aspektów każdego zakwaterowania umożliwia klientom wybór idealnego dopasowania. Ponadto różni klienci dbają o różne aspekty zakwaterowania, a nowy model daje możliwość pokazania każdemu z nich najbardziej odpowiednich recenzji.
Wymagania dotyczące etykietowania
Chociaż Ground Truth zapewnia wbudowaną funkcję adnotacji tekstowych NER, nie zapewnia możliwości łączenia jednostek. Mając to na uwadze, Booking.com i MLSL opracowały następujące ogólne wymagania dotyczące nowego narzędzia do oznaczania tekstu rozpoznawania nazw, które:
- Akceptuje jako dane wejściowe: XNUMX, etykiety podmiotów, etykiety relacji, etykiety klasyfikacyjne.
- Opcjonalnie akceptuje jako dane wejściowe wstępnie opatrzone adnotacjami z poprzedzającą etykietą i adnotacjami relacji.
- Przedstawia adnotatorowi tekst bez adnotacji lub z adnotacją wstępną.
- Umożliwia adnotatorom wyróżnianie i dodawanie adnotacji do dowolnego tekstu za pomocą etykiety elementu.
- Umożliwia adnotatorom tworzenie relacji między dwoma adnotacjami encji.
- Umożliwia adnotatorom łatwe poruszanie się po dużej liczbie etykiet jednostek.
- Obsługuje grupowanie etykiet jednostek w kategorie.
- Zezwalaj na nakładające się relacje, co oznacza, że ten sam segment tekstu z adnotacjami może być powiązany z więcej niż jednym innym segmentem tekstu z adnotacjami.
- Zezwala na nakładanie się adnotacji na etykiecie elementu, co oznacza, że dwie adnotacje mogą nakładać się na ten sam fragment tekstu. Na przykład tekst „Seattle Space Needle” może zawierać zarówno adnotacje „Seattle” → „lokalizacje”, jak i „Seattle Space Needle” → „atrakcje”.
- Format wyjściowy jest zgodny z formatem wejściowym i może być wykorzystany w kolejnych zadaniach etykietowania.
- Obsługuje tekst zakodowany w UTF-8 zawierający emotikony i inne znaki wielobajtowe.
- Obsługuje języki pisane od lewej do prawej.
Przykładowa adnotacja
Rozważ następujący dokument:
Uwielbialiśmy lokalizację tego hotelu! Salon na dachu dał nam doskonały widok na kosmiczną igłę. Jest to również kilka minut jazdy od rynku szczupaków i nabrzeża.
Jedzenie było dostępne tylko za pośrednictwem obsługi pokoju, co było trochę rozczarowujące, ale ma sens w tym postpandemicznym świecie.
Ogólnie rzecz biorąc, niedrogie doświadczenie.
Załadowanie tego dokumentu do nowej adnotacji NER przedstawia pracownika z następującym interfejsem:
W takim przypadku zadaniem pracownika jest:
- Oznacz elementy związane z nieruchomością (lokalizacja, cena, jedzenie itp.)
- Oznacz jednostki związane z nastrojem (pozytywne, negatywne lub neutralne)
- Połącz nazwane podmioty związane z obiektem ze słowami kluczowymi związanymi z nastrojami, aby dokładnie uchwycić wrażenia gości
Szybkość adnotacji była ważnym aspektem narzędzia. Korzystając z sekwencji intuicyjnych skrótów klawiaturowych i gestów myszy, adnotatorzy mogą sterować interfejsem i:
- Dodawaj i usuwaj adnotacje nazwanych jednostek
- Dodaj relacje między nazwanymi jednostkami
- Przejdź na początek i koniec dokumentu
- Prześlij dokument
Ponadto istnieje obsługa nakładających się etykiet. Na przykład, Seattle Space Needle
: w tym zdaniu Seattle
jest opisana zarówno jako samo miejsce, jak i jako część nazwy atrakcji.
Wypełniona adnotacja zapewnia pełniejszą, bardziej szczegółową analizę danych:
Relacje można konfigurować na wielu poziomach, od kategorii encji do innych kategorii encji (na przykład od „jedzenia” do „nastroju”) lub między poszczególnymi typami encji. Relacje są ukierunkowane, więc adnotatorzy mogą łączyć aspekt, taki jak jedzenie, z nastrojem, ale nie odwrotnie (chyba że zostało to wyraźnie włączone). Podczas rysowania relacji narzędzie do adnotacji automatycznie określi etykietę relacji i kierunek.
Konfigurowanie narzędzia adnotacji NER
W tej sekcji omówimy, jak dostosować narzędzie adnotacji NER do przypadków użycia specyficznych dla klienta. Obejmuje to konfigurację:
- Tekst wejściowy do adnotacji
- Etykiety jednostek
- Etykiety relacji
- Etykiety klasyfikacyjne
- Wstępnie opatrzone adnotacjami dane
- Instrukcje dla pracowników
Omówimy specyfikę formatów dokumentów wejściowych i wyjściowych, a także przedstawimy kilka przykładów każdego z nich.
Wprowadź format dokumentu
Narzędzie adnotacji NER oczekuje następującego dokumentu wejściowego w formacie JSON (pola ze znakiem zapytania obok nazwy są opcjonalne).
W skrócie, format wejściowy ma następujące cechy:
- Bądź
entityLabels
orclassificationLabels
(lub oba) są wymagane do adnotacji. - If
entityLabels
są podane, torelationshipLabels
można dodać. - Relacje mogą być dozwolone między różnymi etykietami encji/kategorii lub ich mieszanką.
- „Źródłem” relacji jest jednostka, od której zaczyna się skierowana strzałka, podczas gdy „celem” jest miejsce, do którego zmierza.
Pole | Rodzaj Nieruchomości | Opis |
XNUMX | ciąg | Wymagany. Wprowadź tekst do adnotacji. |
TokenRows | strunowy[][] | Opcjonalny. Niestandardowa tokenizacja tekstu wejściowego. Tablica tablic łańcuchów. Tablica najwyższego poziomu reprezentuje każdy wiersz tekstu (podziały wierszy), a tablica drugiego poziomu reprezentuje tokeny w każdym wierszu. Wszystkie znaki/runy w tekście wejściowym muszą być uwzględnione w tokenRows, w tym wszelkie spacje. |
identyfikator dokumentu | ciąg | Opcjonalny. Opcjonalna wartość umożliwiająca klientom śledzenie adnotacji w dokumencie. |
etykiety encji | obiekt[] | Wymagane, jeśli klasyfikacjiLabels jest pusta. Tablica etykiet jednostek. |
bytyLabels[].nazwa | ciąg | Wymagany. Wyświetlana nazwa etykiety jednostki. |
encjaLabels[].kategoria | ciąg | Opcjonalny. Nazwa kategorii etykiety jednostki. |
Etykiety encji[].krótkaNazwa | ciąg | Opcjonalny. Wyświetlaj ten tekst nad elementami z adnotacjami zamiast pełnej nazwy. |
etykietajednostki[].shortKategoria | ciąg | Opcjonalny. Wyświetl ten tekst w menu rozwijanym wyboru adnotacji encji zamiast pierwszych czterech liter nazwy kategorii. |
encjaLabels.kolor | ciąg | Opcjonalny. Szesnastkowy kod koloru z prefiksem „#”. Jeśli pole jest puste, automatycznie przypisze kolor do etykiety elementu. |
Etykiety relacji | obiekt[] | Opcjonalny. Tablica etykiet relacji. |
etykiety relacji[].nazwa | ciąg | Wymagany. Wyświetlana nazwa etykiety relacji. |
etykiety relacji[].dozwoloneRelacje | obiekt[] | Opcjonalny. Tablica wartości ograniczających typy etykiet jednostek źródłowych i docelowych, do których można przypisać tę relację. Każdy element w tablicy jest połączony „OR”. |
labele relacji[].allowedRelationships[].sourceEntityLabelCategories | strunowy[] | Wymagane do ustawienia sourceEntityLabelCategories lub sourceEntityLabels (lub obu). Lista typów kategorii etykiet prawnych podmiotów źródłowych dla tej relacji. |
etykiety relacji[].dozwoloneRelacje[].targetEntityLabelCategories | strunowy[] | Wymagane do ustawienia targetEntityLabelCategories lub targetEntityLabels (lub obu). Lista typów kategorii etykiet prawnych podmiotów docelowych dla tej relacji. |
Etykiety relacji[].dozwoloneRelacje[].sourceEntityLabels | strunowy[] | Wymagane do ustawienia sourceEntityLabelCategories lub sourceEntityLabels (lub obu). Lista typów etykiet prawnych podmiotów źródłowych dla tej relacji. |
Etykiety relacji[].dozwoloneRelacje[].sourceEntityLabels | strunowy[] | Wymagane do ustawienia targetEntityLabelCategories lub targetEntityLabels (lub obu). Lista typów etykiet prawnego podmiotu docelowego dla tej relacji. |
klasyfikacjaEtykiety | strunowy[] | Wymagane, jeśli EntityLabels jest puste. Lista etykiet klasyfikacyjnych na poziomie dokumentu. |
adnotacje encji | obiekt[] | Opcjonalny. Tablica adnotacji encji do wstępnego opisywania tekstu wejściowego. |
EntityAdnotations[].id | ciąg | Wymagany. Unikalny identyfikator tej adnotacji encji. Służy do odwoływania się do tej jednostki w relacjiAnnotations. |
EntityAdnotations[].start | numer | Wymagany. Rozpocznij przesunięcie runy tej adnotacji encji. |
EntityAdnotations[].end | numer | Wymagany. Końcowe przesunięcie runy tej adnotacji encji. |
bytAdnotacje[].tekst | ciąg | Wymagany. Treść tekstowa między początkowym i końcowym przesunięciem runy. |
bytAdnotacje[].etykieta | ciąg | Wymagany. Nazwa powiązanej etykiety encji (na podstawie nazw w EntityLabels). |
EntityAdnotations[].labelCategory | ciąg | Opcjonalne. Kategoria etykiety powiązanej jednostki (z kategorii w entityLabels). |
relacjeAdnotacje | obiekt[] | Opcjonalny. Tablica adnotacji relacji. |
relacjeAnnotacje[].sourceEntityAnnotationId | ciąg | Wymagany. Identyfikator adnotacji encji źródłowej dla tej relacji. |
relacjiAdnotacje[].targetEntityAnnotationId | ciąg | Wymagany. Identyfikator adnotacji encji docelowej dla tej relacji. |
relacjaAdnotacje[].etykieta | ciąg | Wymagany. Powiązana nazwa etykiety relacji. |
klasyfikacjaAdnotacje | strunowy[] | Opcjonalny. Tablica klasyfikacji do wstępnego opisywania dokumentu. |
meta | przedmiot | Opcjonalny. Dodatkowe parametry konfiguracyjne. |
meta.instrukcje | ciąg | Opcjonalny. Instrukcje dotyczące adnotatora etykiet w formacie Markdown. |
meta.disablePrześlijPotwierdzenie | boolean | Opcjonalny. Ustaw wartość true, aby wyłączyć modalne potwierdzenie przesłania. |
meta.multiKlasyfikacja | boolean | Opcjonalny. Ustaw wartość true, aby włączyć tryb wielu etykiet dla klasyificationLabels. |
Oto kilka przykładowych dokumentów, aby lepiej zrozumieć ten format wejściowy
Dokumenty zgodne z tym schematem są dostarczane do Ground Truth jako pojedyncze pozycje w manifeście wejściowym.
Format dokumentu wyjściowego
Format wyjściowy został zaprojektowany w taki sposób, aby można było łatwo przekazać informacje zwrotne do nowego zadania adnotacji. Pola opcjonalne w dokumencie wyjściowym są ustawione, jeśli są również ustawione w dokumencie wejściowym. Jedyną różnicą między formatami wejściowymi i wyjściowymi jest meta
obiekt.
Pole | Rodzaj Nieruchomości | Opis |
meta.odrzucony | boolean | Jest ustawiona na true, jeśli adnotator odrzucił ten dokument. |
meta.odrzuconyPowód | ciąg | Podany przez adnotatora powód odrzucenia dokumentu. |
meta.runy | strunowy[] | Tablica run odpowiadająca wszystkim znakom w tekście wejściowym. Służy do obliczania przesunięć początku i końca adnotacji elementu. |
Oto przykładowy dokument wyjściowy z adnotacjami:
Uwaga dotycząca run:
„Runa” w tym kontekście to pojedynczy wyróżniający się znak w tekście, w tym znaki wielobajtowe, takie jak emoji.
- Ponieważ różne języki programowania inaczej reprezentują znaki wielobajtowe, użycie „Run” do zdefiniowania każdego podświetlanego znaku jako pojedynczego elementu atomowego oznacza, że mamy jednoznaczny sposób opisania dowolnego zaznaczonego tekstu.
- Na przykład Python traktuje szwedzką flagę jako cztery znaki:
Ale JavaScript traktuje te same emotikony jako dwa znaki
Aby wyeliminować wszelkie niejasności, będziemy traktować szwedzką flagę (oraz wszystkie inne emotikony i znaki wielobajtowe) jako pojedynczy element atomowy.
- Przesunięcie: Pozycja runy względem tekstu wejściowego (zaczynając od indeksu 0)
Wykonywanie adnotacji NER za pomocą podstawowej prawdy
Jako w pełni zarządzana usługa etykietowania danych, Ground Truth tworzy zestawy danych szkoleniowych dla ML. W tym przypadku użyjemy Ground Truth do wysłania zbioru dokumentów tekstowych do puli procesów roboczych w celu adnotacji. Na koniec sprawdzamy jakość.
Ground Truth można skonfigurować do tworzenia zadania etykietowania danych przy użyciu nowego narzędzia NER jako niestandardowego szablonu.
W szczególności będziemy:
- Utwórz prywatną siłę roboczą pracowników, aby wykonać zadanie adnotacji
- Utwórz manifest wejściowy Ground Truth z dokumentami, które chcemy opatrzyć adnotacjami, a następnie prześlij go do Usługa Amazon Simple Storage (Amazon S3)
- Utwórz zadanie przed etykietowaniem i zadanie po etykietowaniu Funkcje Lambda
- Utwórz zadanie etykietowania Ground Truth, korzystając z niestandardowego szablonu NER
- Dodaj adnotacje do dokumentów
- Sprawdź wyniki
Zasoby narzędzia NER
Pełną listę odnośnych zasobów i przykładowych dokumentów można znaleźć w poniższej tabeli:
Etykietowanie tworzenia siły roboczej
Ground Truth wykorzystuje pracowników etykietujących SageMaker do zarządzania pracownikami i rozdzielania zadań. Utwórz prywatną siłę roboczą, zespół pracowników o nazwie ner-worker-team i przypisz się do zespołu, postępując zgodnie z instrukcjami znajdującymi się w Utwórz prywatną siłę roboczą (konsola Amazon SageMaker).
Po dodaniu się do prywatnej siły roboczej i potwierdzeniu adresu e-mail zanotuj adres URL portalu pracownika z konsoli zarządzania AWS:
- Nawigować do
SageMaker
- Nawigować do
Ground Truth → Labeling workforces
- Wybierz
Private
Zakładka - Zanotuj adres URL
Labeling portal sign-in URL
Zaloguj się do portalu roboczego, aby wyświetlić i rozpocząć pracę nad zadaniami etykietowania.
Manifest wejściowy
Manifest danych wejściowych Ground Truth to plik wierszy JSON, w którym każdy wiersz zawiera jedno zadanie procesu roboczego. W naszym przypadku każda linia będzie zawierać pojedynczy dokument wejściowy zakodowany w formacie JSON zawierający tekst, który chcemy opatrzyć adnotacją, oraz schemat adnotacji NER.
Pobierz przykładowy manifest danych wejściowych reviews.manifest
od https://assets.solutions-lab.ml/NER/0.2.1/sample-data/reviews.manifest
Note: każdy wiersz w manifeście wejściowym wymaga klucza najwyższego poziomu source
or source-ref
. Możesz dowiedzieć się więcej w Użyj wejściowego pliku manifestu w Przewodniku programisty Amazon SageMaker.
Prześlij manifest wejściowy do Amazon S3
Prześlij ten manifest wejściowy do zasobnika S3 za pomocą konsoli zarządzania AWS lub z wiersza poleceń, zastępując w ten sposób your-bucket
z rzeczywistą nazwą zasobnika.
Pobierz niestandardowy szablon pracownika
Pobierz szablon niestandardowego procesu roboczego narzędzia NER z https://assets.solutions-lab.ml/NER/0.2.1/worker-template.liquid.html przeglądając źródło i zapisując zawartość lokalnie lub z wiersza poleceń:
Utwórz zadanie przed etykietowaniem i zadanie po etykietowaniu Funkcje Lambda
Pobierz przykładowe zadanie wstępnego etykietowania Funkcja Lambda: smgt-ner-pre-labeling-task-lambda.py
od https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-pre-labeling-task-lambda.py
Pobierz przykładowe zadanie wstępnego etykietowania Funkcja Lambda: smgt-ner-post-labeling-task-lambda.py
od https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-post-labeling-task-lambda.py
- Utwórz zadanie wstępnego etykietowania Funkcja Lambda z konsoli zarządzania AWS:
- Nawigować do
Lambda
- Wybierz
Create function
- Sprecyzować
Function name
assmgt-ner-pre-labeling-task-lambda
- Wybierz
Runtime
→Python 3.6
- Wybierz
Create function
- In
Function code
→lambda_hanadler.py
, wklej zawartośćsmgt-ner-pre-labeling-task-lambda.py
- Wybierz
Deploy
- Nawigować do
- Utwórz funkcję Lambda zadania po etykietowaniu z konsoli zarządzania AWS:
- Nawigować do
Lambda
- Wybierz
Create function
- Sprecyzować
Function name
assmgt-ner-post-labeling-task-lambda
- Wybierz
Runtime
→Python 3.6
- Rozszerzać
Change default execution role
- Wybierz
Create a new role from AWS policy templates
- Wpisz
Role name
:smgt-ner-post-labeling-task-lambda-role
- Wybierz
Create function
- Wybierz
Permissions
Zakładka - Wybierz
Role name
:smgt-ner-post-labeling-task-lambda-role
aby otworzyć konsolę IAM - Dodaj dwie zasady do roli
- Wybierz
Attach policies
- Dołącz
AmazonS3FullAccess
polityka - Wybierz
Add inline policy
- Wybierz
JSON
Zakładka - Wklej następujące zasady wbudowane:
- Wybierz
- Wróć do
smgt-ner-post-labeling-task-lambda
Strona konfiguracji funkcji Lambda - Wybierz
Configuration
Zakładka - In
Function code
→ lambda_hanadler.py
, wklej zawartośćsmgt-ner-post-labeling-task-lambda.py
- Wybierz
Deploy
- Nawigować do
Utwórz zadanie etykietowania Ground Truth
Z konsoli zarządzania AWS:
- Nawiguj do
Amazon SageMaker
usługa - Nawigować do
Ground Truth
→Labeling Jobs
. - Wybierz
Create labeling job
- Określ plik
Job Name
- Wybierz
Manual Data Setup
- Określ lokalizację wejściowego zestawu danych, w której wcześniej przekazano manifest wejściowy (np
3://your-bucket/ner-input/sample-smgt-input-manifest.jsonl
) - Określ lokalizację wyjściowego zestawu danych, aby wskazywała inny folder w tym samym zasobniku (np.
s3://your-bucket/ner-output/
) - Określ plik
IAM Role
WybierającCreate new role
- Zezwól tej roli na dostęp do dowolnego zasobnika S3, wybierając
S3 buckets you specify
→Any S3 bucket
podczas tworzenia polityki - W nowym oknie konsoli zarządzania AWS otwórz plik
IAM
konsola i wybierzRoles
- Wyszukaj nazwę właśnie utworzonej roli (np.
AmazonSageMaker-ExecutionRole-20210301T154158
) - Wybierz nazwę roli, aby otworzyć rolę w konsoli
- Dołącz następujące trzy zasady:
- Wybierz Dołącz zasady
- Dołącz
AWSLambda_FullAccess
do roli - Wybierz
Trust Relationships
→Edit Trust Relationships
- Edytuj JSON relacji zaufania,
- zastąpić
YOUR_ACCOUNT_NUMBER
swoim numerycznym numerem konta AWS, aby przeczytać: - Zachowaj relację zaufania
- Zezwól tej roli na dostęp do dowolnego zasobnika S3, wybierając
- Wróć do nowego zadania Ground Truth w poprzednim oknie AWS Management Console: pod
Task Category
, WybierzCustom
- Wybierz
Next
- Wybierz
Worker types
:Private
- Wybierz
Private team
:ner-worker-team
utworzony w poprzedniej sekcji - W
Custom labeling task setup
pole tekstowe, wyczyść domyślną zawartość i wklej zawartość plikuworker-template.liquid.html
plik uzyskany wcześniej - Określ
Pre-labeling task Lambda function
z wcześniej utworzoną funkcją:smgt-ner-pre-labeling
- Określ
Post-labeling task Lambda function
z utworzoną wcześniej funkcją:smgt-ner-post-labeling
- Wybierz
Create
Dodaj adnotacje do dokumentów
Po utworzeniu zadania Ground Truth możemy rozpocząć dodawanie adnotacji do dokumentów. Otwórz utworzony wcześniej portal pracowników dla naszych pracowników (w konsoli zarządzania AWS przejdź do pliku SageMaker
, Ground Truth → Labeling workforces
, Private
i otwórz plik Labeling portal sign-in URL
)
Zaloguj się i wybierz pierwsze zadanie etykietowania w tabeli, a następnie wybierz „Rozpocznij pracę”, aby otworzyć adnotatora. Wykonaj adnotacje i wybierz opcję prześlij we wszystkich trzech przykładowych dokumentach.
Sprawdź wyniki
Gdy adnotatorzy Ground Truth wykonają zadania, wyniki będą dostępne w wyjściowym zasobniku S3:
Po zakończeniu wszystkich zadań związanych z zadaniem etykietowania skonsolidowane dane wyjściowe są dostępne w formacie output.manifest
plik znajdujący się tutaj:
Ten manifest wyjściowy to plik wierszy JSON z jednym dokumentem tekstowym z adnotacjami na wiersz w określonym wcześniej „formacie dokumentu wyjściowego”. Ten plik jest zgodny z „Formatem dokumentu wejściowego” i można go wprowadzić bezpośrednio do kolejnego zadania Ground Truth w celu kolejnej rundy adnotacji. Alternatywnie można go przeanalizować i wysłać do zadania szkoleniowego ML. Oto niektóre scenariusze, w których możemy zastosować drugą rundę adnotacji:
- Podział procesu adnotacji na dwa etapy, w których pierwszy adnotator identyfikuje adnotacje encji, a drugi adnotator rysuje relacje
- Pobierając próbkę naszego
output.manifest
i wysłanie go do drugiego, bardziej doświadczonego adnotatora do przeglądu w ramach kontroli jakości
Niestandardowe szablony adnotacji Ground Truth
Narzędzie adnotacji NER opisane w tym dokumencie jest zaimplementowane jako niestandardowy szablon adnotacji Ground Truth. Klienci AWS mogą tworzyć własne niestandardowe interfejsy adnotacji, korzystając z instrukcji znajdujących się tutaj:
Wnioski
Dzięki współpracy Booking.com i Amazon MLSL były w stanie opracować potężne narzędzie do adnotacji tekstowych, które jest w stanie tworzyć złożone rozpoznawanie nazwanych podmiotów i adnotacje dotyczące relacji.
Zachęcamy klientów AWS z przypadkiem użycia adnotacji tekstowych NER do wypróbowania narzędzia opisanego w tym poście. Jeśli potrzebujesz pomocy w przyspieszeniu korzystania z uczenia maszynowego w swoich produktach i usługach, skontaktuj się z Laboratorium rozwiązań do uczenia maszynowego Amazon Amazon.
O autorach
Dana Noble'a jest inżynierem ds. rozwoju oprogramowania w Amazon, gdzie pomaga budować wspaniałe wrażenia użytkowników. W wolnym czasie lubi czytać, ćwiczyć i przeżywać przygody z rodziną.
Pri Nonis jest architektem głębokiego uczenia się w laboratorium Amazon ML Solutions Lab, gdzie pracuje z klientami z różnych branż i pomaga im przyspieszyć migrację do chmury oraz rozwiązywać problemy związane z ML przy użyciu najnowocześniejszych rozwiązań i technologii.
Niharika Jayanthi jest Front End Engineer w AWS, gdzie opracowuje niestandardowe rozwiązania adnotacji dla klientów Amazon SageMaker. Poza pracą lubi chodzić do muzeów i ćwiczyć.
Amit Beka jest menedżerem uczenia maszynowego w Booking.com, z ponad 15-letnim doświadczeniem w tworzeniu oprogramowania i uczeniu maszynowym. Jest zafascynowany ludźmi i językami oraz tym, jak komputery wciąż są zagadkowe dla obu.
- '
- 100
- 11
- 7
- O nas
- dostęp
- Konto
- Księgowość
- w poprzek
- Działania
- dodatek
- Dodatkowy
- Wszystkie kategorie
- Amazonka
- Uczenie maszynowe Amazon
- Amazon Sage Maker
- Dwuznaczność
- analiza
- POWIERZCHNIA
- dostępny
- Dostępne dla wszystkich
- AWS
- Początek
- jest
- budować
- Budowanie
- który
- Etui
- klasyfikacja
- Chmura
- kod
- kolekcja
- kompleks
- komputery
- systemu
- wynagrodzenie
- Konsola
- zawartość
- treść
- mógłby
- Tworzenie
- krytyczny
- doświadczenie klienta
- Klientów
- dane
- głęboka nauka
- rozwijać
- Deweloper
- oprogramowania
- różne
- dokumenty
- Nie
- z łatwością
- efekt
- Emotikon
- zachęcać
- inżynier
- itp
- przykład
- egzekucja
- oczekuje
- doświadczenie
- Doświadczenia
- członków Twojej rodziny
- nakarmiony
- informacja zwrotna
- Łąka
- W końcu
- i terminów, a
- ZDROWIE I FITNESS
- jedzenie
- format
- znaleziono
- pełny
- funkcjonować
- gif
- będzie
- Gość
- poprowadzi
- pomoc
- pomaga
- tutaj
- Atrakcja
- hotel
- W jaki sposób
- How To
- HTTPS
- IAM
- realizowane
- ważny
- Włącznie z
- wskaźnik
- indywidualny
- IT
- JAVASCRIPT
- Praca
- podróż
- Klawisz
- etykietowanie
- Etykiety
- język
- Języki
- duży
- prowadzący
- UCZYĆ SIĘ
- nauka
- Regulamin
- poziom
- poziomy
- Linia
- LINK
- Ciecz
- Lista
- ofert
- lokalnie
- lokalizacja
- poszukuje
- uczenie maszynowe
- i konserwacjami
- znak
- rynek
- Mecz
- Meta
- nic
- ML
- model
- jeszcze
- Muzea
- Nazwy
- Język naturalny
- Przetwarzanie języka naturalnego
- potrzebne
- nlp
- z naszej
- Oferty
- offset
- Online
- koncepcja
- otwiera
- Okazja
- Inne
- Ludzie
- Zwroty
- Platforma
- Platformy
- polityka
- polityka
- basen
- Portal
- po pandemii
- mocny
- Cena
- Główny
- prywatny
- wygląda tak
- Produkty
- Programowanie
- języki programowania
- własność
- zapewniać
- zapewnia
- Python
- jakość
- pytanie
- Czytający
- Relacje
- wymagania
- Zasób
- Zasoby
- restauracja
- Efekt
- przeglądu
- Recenzje
- Pokoje
- sagemaker
- oszczędność
- Skala
- rozsądek
- sentyment
- Usługi
- zestaw
- Short
- Prosty
- So
- Tworzenie
- rozwoju oprogramowania
- Rozwiązania
- ROZWIĄZANIA
- Typ przestrzeni
- prędkość
- początek
- Zestawienie sprzedaży
- pobyt
- przechowywanie
- wsparcie
- cel
- Technologies
- Źródło
- czas
- razem
- tokenizacja
- Żetony
- narzędzie
- Top
- najwyższy poziom
- śledzić
- tradycyjny
- Trening
- podróżować
- leczyć
- traktuje
- Zaufaj
- us
- Użytkownicy
- wartość
- wersja
- Zobacz i wysłuchaj
- Co
- w ciągu
- Praca
- pracował
- pracowników
- Siła robocza
- pracujący
- wypracowanie
- działa
- świat
- świat
- by
- lat