Udostępnij za pośrednictwem


Szybki start: niestandardowe rozpoznawanie nazwanych jednostek

Skorzystaj z tego artykułu, aby rozpocząć tworzenie niestandardowego projektu NER, w którym można trenować modele niestandardowe na potrzeby niestandardowego rozpoznawania jednostek. Model to oprogramowanie sztucznej inteligencji, które jest szkolone w celu wykonania określonego zadania. W przypadku tego systemu modele wyodrębniają nazwane jednostki i są trenowane przez uczenie się na podstawie oznakowanych danych.

W tym artykule użyjemy programu Language Studio do zademonstrowania kluczowych pojęć dotyczących niestandardowego rozpoznawania jednostek nazwanych (NER). Na przykład utworzymy niestandardowy model NER w celu wyodrębnienia odpowiednich jednostek z umów kredytowych, takich jak:

  • Data umowy
  • Imię i nazwisko kredytobiorcy, adres, miasto i stan
  • Imię i nazwisko kredytodawcy, adres, miasto i stan
  • Kwoty pożyczek i odsetek

Wymagania wstępne

Tworzenie nowego zasobu języka sztucznej inteligencji platformy Azure i konta usługi Azure Storage

Zanim będzie można użyć niestandardowego modułu NER, musisz utworzyć zasób języka sztucznej inteligencji platformy Azure, który zapewni poświadczenia potrzebne do utworzenia projektu i rozpoczęcia trenowania modelu. Potrzebne będzie również konto usługi Azure Storage, na którym można przekazać zestaw danych, który będzie używany do kompilowania modelu.

Ważne

Aby szybko rozpocząć pracę, zalecamy utworzenie nowego zasobu języka sztucznej inteligencji platformy Azure, wykonując kroki opisane w tym artykule. Wykonanie kroków opisanych w tym artykule pozwoli na równoczesne utworzenie zasobu Language i konta magazynu, co jest łatwiejsze niż zrobienie tego później.

Jeśli masz istniejący zasób, którego chcesz użyć, musisz połączyć go z kontem magazynowania. Aby uzyskać informacje, zobacz wskazówki dotyczące korzystania ze wstępnie istniejącego zasobu .

Tworzenie nowego zasobu w witrynie Azure Portal

  1. Zaloguj się do witryny Azure Portal , aby utworzyć nowy zasób języka AI platformy Azure.

  2. W wyświetlonym oknie wybierz pozycję Niestandardowa klasyfikacja tekstu i niestandardowe rozpoznawanie nazwanych jednostek z funkcji dostosowanych. Wybierz pozycję Kontynuuj, aby utworzyć zasób w dolnej części ekranu.

    Zrzut ekranu przedstawiający niestandardową klasyfikację tekstu i niestandardowe rozpoznawanie nazwanych jednostek w witrynie Azure Portal.

  3. Utwórz zasób językowy według poniższych szczegółów.

    Nazwa/nazwisko opis
    Subskrypcja Swoją subskrypcję platformy Azure.
    Grupa zasobów Grupa zasobów, która będzie zawierać Twój zasób. Możesz użyć istniejącej lub utworzyć nową.
    Region Region zasobu językowego. Na przykład "Zachodnie stany USA 2".
    Nazwa/nazwisko Nazwa twojego zasobu.
    Poziom cenowy Warstwa cenowa zasobu Language. Aby wypróbować usługę, możesz użyć warstwy Bezpłatna (F0).

    Uwaga

    Jeśli zostanie wyświetlony komunikat "Twoje konto logowania nie jest właścicielem grupy zasobów wybranego konta magazynu", twoje konto musi mieć przypisaną rolę Właściciela w grupie zasobów, zanim będzie możliwe utworzenie zasobu językowego. Skontaktuj się z właścicielem subskrypcji platformy Azure, aby uzyskać pomoc.

  4. W sekcji Niestandardowa klasyfikacja tekstu i rozpoznawanie jednostek nazwanych wybierz istniejące konto magazynu lub wybierz Nowe konto magazynu. Te wartości mają pomóc Ci w rozpoczęciu pracy i niekoniecznie są to wartości konta magazynu, których będziesz chciał używać w środowiskach produkcyjnych. Aby uniknąć opóźnień podczas tworzenia projektu, połącz się z kontami magazynu w tym samym regionie co zasób językowy.

    Wartość konta magazynu Zalecana wartość
    Nazwa konta magazynu Dowolna nazwa
    Typ konta magazynu Standardowa LRS
  5. Upewnij się, że zaznaczono informację o odpowiedzialnej AI. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony, a następnie wybierz pozycję Utwórz.

Przesyłanie przykładowych danych do kontenera blob

Po utworzeniu konta usługi Azure Storage i połączeniu go z zasobem Language należy przekazać dokumenty z przykładowego zestawu danych do katalogu głównego kontenera. Te dokumenty będą później używane do trenowania modelu.

  1. Pobierz przykładowy zestaw danych z usługi GitHub.

  2. Otwórz plik .zip i wyodrębnij folder zawierający dokumenty.

  3. W witrynie Azure Portal przejdź do utworzonego konta magazynu i wybierz je.

  4. Na koncie magazynu wybierz pozycję Kontenery z menu po lewej stronie, znajdującym się poniżej obszaru Magazyn danych. Na wyświetlonym ekranie wybierz pozycję + Kontener. Nadaj kontenerowi nazwę example-data i pozostaw domyślny poziom dostępu publicznego.

    Zrzut ekranu przedstawiający stronę główną konta pamięci masowej.

  5. Po utworzeniu kontenera wybierz go. Następnie wybierz przycisk Przekaż, aby wybrać pliki .txt i .json pobrane wcześniej.

    Zrzut ekranu przedstawiający przycisk przesyłania plików na konto przechowywania.

Podany przykładowy zestaw danych zawiera 20 umów kredytowych. Każda umowa obejmuje dwie strony: kredytodawcę i kredytobiorcę. Możesz użyć dostarczonego pliku przykładowego, aby wyodrębnić odpowiednie informacje dla: obu stron, daty umowy, kwoty pożyczki i stopy procentowej.

Tworzenie niestandardowego projektu rozpoznawania nazwanych jednostek

Po skonfigurowaniu zasobu i konta magazynu utwórz nowy niestandardowy projekt NER. Projekt to obszar roboczy umożliwiający tworzenie niestandardowych modeli uczenia maszynowego na podstawie danych. Twój projekt może być dostępny tylko przez Ciebie i inne osoby, które mają dostęp do używanego zasobu językowego.

  1. Zaloguj się do programu Language Studio. Zostanie wyświetlone okno umożliwiające wybranie subskrypcji i zasobu językowego. Wybierz zasób języka utworzony w powyższym kroku.

  2. W sekcji Wyodrębnij informacje w programie Language Studio wybierz pozycję Rozpoznawanie niestandardowych jednostek nazwanych.

    Zrzut ekranu przedstawiający lokalizację niestandardowego modułu NER na stronie docelowej programu Language Studio.

  3. Wybierz pozycję Utwórz nowy projekt z górnego menu na stronie projektów. Utworzenie projektu umożliwi tagowanie danych, trenowanie, ocenianie, ulepszanie i wdrażanie modeli.

    Zrzut ekranu przedstawiający stronę tworzenia projektu.

  4. Po kliknięciu Utwórz nowy projekt zostanie wyświetlone okno, które pozwoli połączyć konto storage. Jeśli masz już połączone konto zasobów, zobaczysz połączone konto. Jeśli nie, wybierz konto magazynu z wyświetlonej listy rozwijanej i wybierz pozycję Połącz konto magazynu. Spowoduje to ustawienie wymaganych ról dla konta magazynu. Ten krok może spowodować zwrócenie błędu, jeśli nie jesteś przypisany jako właściciel konta magazynowego.

    Uwaga

    • Ten krok należy wykonać tylko raz dla każdego nowego zasobu, którego używasz.
    • Ten proces jest nieodwracalny, jeśli połączysz konto magazynu z zasobem językowym, nie będzie można go później odłączyć.
    • Zasoby językowe można połączyć tylko z jednym kontem magazynu.

    Zrzut ekranu przedstawiający ekran połączenia z magazynem.

  5. Wprowadź informacje o projekcie, w tym nazwę, opis i język plików w projekcie. Jeśli używasz przykładowego zestawu danych, wybierz pozycję Angielski. Nie będzie można później zmienić nazwy projektu. Wybierz Dalej

    Napiwek

    Zestaw danych nie musi być całkowicie w tym samym języku. Można mieć wiele dokumentów, z których każda ma różne obsługiwane języki. Jeśli zestaw danych zawiera dokumenty różnych języków lub jeśli oczekujesz tekstu z różnych języków w czasie wykonywania, wybierz opcję Włącz zestaw danych wielojęzyczny po wprowadzeniu podstawowych informacji dla projektu. Tę opcję można włączyć później na stronie Ustawienia projektu.

  6. Wybierz kontener, do którego przesłałeś swój zestaw danych. Jeśli dane zostały już oznaczone etykietą, upewnij się, że jest on zgodny z obsługiwanym formatem i wybierz pozycję Tak, moje pliki są już oznaczone etykietami, a plik etykiet JSON został sformatowany i wybierz plik etykiet z menu rozwijanego. Wybierz Dalej.

  7. Przejrzyj wprowadzone dane i wybierz pozycję Utwórz projekt.

Szkolenie modelu

Zazwyczaj po utworzeniu projektu możesz zacząć oznaczać dokumenty , które masz w kontenerze połączonym z projektem. Na potrzeby tego przewodnika szybkiego startu zaimportowano przykładowy otagowany zestaw danych i zainicjowano projekt przy użyciu przykładowego pliku tagów JSON.

Aby rozpocząć trenowanie modelu z poziomu programu Language Studio:

  1. Wybierz pozycję Zadania szkoleniowe z menu po lewej stronie.

  2. Wybierz pozycję Start a training job (Rozpocznij zadanie szkoleniowe) z górnego menu.

  3. Wybierz pozycję Train a new model (Trenowanie nowego modelu ) i wpisz nazwę modelu w polu tekstowym. Możesz również zastąpić istniejący model , wybierając tę opcję i wybierając model, który chcesz zastąpić z menu rozwijanego. Zastępowanie wytrenowanego modelu jest nieodwracalne, ale nie będzie to miało wpływu na wdrożone modele, dopóki nie wdrożysz nowego modelu.

    Tworzenie nowego zadania szkoleniowego

  4. Wybierz metodę dzielenia danych. Możesz wybrać opcję Automatyczne dzielenie zestawu testowego z danych treningowych, gdzie system podzieli dane oznaczone etykietami między zestawy treningowe i testowe, zgodnie z określonymi wartościami procentowymi. Możesz też użyć ręcznego podziału danych treningowych i testowych. Ta opcja jest włączona tylko w przypadku dodania dokumentów do zestawu testów podczas etykietowania danych. Zobacz How to train a model (Jak wytrenować model ), aby uzyskać informacje na temat dzielenia danych.

  5. Wybierz przycisk Train (Trenuj).

  6. Jeśli wybierzesz identyfikator zadania trenowania z listy, zostanie wyświetlone okienko boczne, w którym można sprawdzić postęp trenowania, stan zadania i inne szczegóły dotyczące tego zadania.

    Uwaga

    • Tylko pomyślnie ukończone zadania szkoleniowe będą generować modele.
    • Trenowanie może potrwać od kilku minut do kilku godzin w zależności od rozmiaru oznaczonych danych.
    • Jednocześnie może być uruchomione tylko jedno zadanie treningowe. Nie można uruchomić innego zadania szkoleniowego w tym samym projekcie, dopóki bieżące zadanie nie zostanie ukończone.

Wdrażanie modelu

Zazwyczaj po trenowaniu modelu należy przejrzeć jego szczegóły oceny i wprowadzić ulepszenia w razie potrzeby. W tym przewodniku szybkiego startu wdrożysz swój model i udostępnisz go, aby wypróbować go w Language Studio albo możesz wywołać interfejs API do przewidywania.

Aby wdrożyć model z poziomu programu Language Studio:

  1. Wybierz pozycję Deploying a model (Wdrażanie modelu ) z menu po lewej stronie.

  2. Wybierz pozycję Dodaj wdrożenie , aby rozpocząć nowe zadanie wdrażania.

    Zrzut ekranu przedstawiający przycisk wdrażania

  3. Wybierz pozycję Utwórz nowe wdrożenie, aby utworzyć nowe wdrożenie i przypisać wytrenowany model z poniższej listy rozwijanej. Możesz również zastąpić istniejące wdrożenie , wybierając tę opcję i wybierając wytrenowany model, który chcesz przypisać do niego z listy rozwijanej poniżej.

    Uwaga

    Zastąpienie istniejącego wdrożenia nie wymaga zmian w wywołaniu API prognozowania, ale uzyskane wyniki będą oparte na nowo przydzielonym modelu.

    Zrzut ekranu przedstawiający ekran wdrażania

  4. Wybierz pozycję Wdróż , aby uruchomić zadanie wdrożenia.

  5. Po pomyślnym wdrożeniu obok zostanie wyświetlona data wygaśnięcia. Wygaśnięcie wdrożenia jest wtedy, gdy wdrożony model będzie niedostępny do przewidywania, co zwykle występuje dwanaście miesięcy po wygaśnięciu konfiguracji trenowania.

Testowanie modelu

Po wdrożeniu modelu możesz zacząć używać go do wyodrębniania jednostek z tekstu za pomocą interfejsu API przewidywania. W tym szybkim przewodniku użyjesz Language Studio do przesłania zadania rozpoznawania jednostek niestandardowych i wizualizacji wyników. W pobranym wcześniej przykładowym zestawie danych możesz znaleźć niektóre dokumenty testowe, których można użyć w tym kroku.

Aby przetestować wdrożone modele z poziomu programu Language Studio:

  1. Wybierz pozycję Testowanie wdrożeń z menu po lewej stronie.

  2. Wybierz wdrożenie, które chcesz przetestować. Można testować tylko modele przypisane do wdrożeń.

  3. W przypadku projektów wielojęzycznych z listy rozwijanej języka wybierz język testowego tekstu.

  4. Wybierz wdrożenie, którego chcesz użyć do zapytania/testowania z listy rozwijanej.

  5. Możesz wprowadzić tekst, który chcesz przesłać w ramach żądania lub przekazać .txt plik do użycia.

  6. Wybierz pozycję Uruchom test z górnego menu.

  7. Na karcie Wyniki można zobaczyć wyodrębnione jednostki z tekstu oraz ich typy. Odpowiedź JSON można również wyświetlić na karcie JSON .

Zrzut ekranu przedstawiający wyniki testu modelu.

Czyszczenie zasobów

Jeśli projekt nie jest już potrzebny, możesz usunąć projekt przy użyciu programu Language Studio. Wybierz pozycję Niestandardowe rozpoznawanie nazwanych jednostek (NER) u góry, wybierz projekt, który chcesz usunąć, a następnie wybierz pozycję Usuń z górnego menu.

Wymagania wstępne

Tworzenie nowego zasobu języka sztucznej inteligencji platformy Azure i konta usługi Azure Storage

Zanim będzie można użyć niestandardowego modułu NER, musisz utworzyć zasób języka sztucznej inteligencji platformy Azure, który zapewni poświadczenia potrzebne do utworzenia projektu i rozpoczęcia trenowania modelu. Potrzebne będzie również konto usługi Azure Storage, na którym można przekazać zestaw danych, który będzie używany podczas tworzenia modelu.

Ważne

Aby szybko rozpocząć pracę, zalecamy utworzenie nowego zasobu języka sztucznej inteligencji platformy Azure, wykonując kroki opisane w tym artykule, które umożliwią utworzenie zasobu języka oraz utworzenie i/lub połączenie konta magazynu w tym samym czasie, co jest łatwiejsze niż późniejsze.

Jeśli masz istniejący zasób, którego chcesz użyć, musisz połączyć go z kontem magazynowym. Aby uzyskać informacje, zobacz tworzenie projektu .

Tworzenie nowego zasobu w witrynie Azure Portal

  1. Zaloguj się do witryny Azure Portal , aby utworzyć nowy zasób języka AI platformy Azure.

  2. W wyświetlonym oknie wybierz pozycję Niestandardowa klasyfikacja tekstu i niestandardowe rozpoznawanie nazwanych jednostek z funkcji niestandardowych. Wybierz pozycję Kontynuuj, aby utworzyć zasób w dolnej części ekranu.

    Zrzut ekranu przedstawiający niestandardową klasyfikację tekstu i niestandardowe rozpoznawanie nazwanych jednostek w witrynie Azure Portal.

  3. Utwórz zasób języka z następującymi szczegółami.

    Nazwa/nazwisko opis
    Subskrypcja Swoją subskrypcję platformy Azure.
    Grupa zasobów Grupa zasobów, która będzie zawierać twój zasób. Możesz użyć istniejącej lub utworzyć nową.
    Region Region dla zasobu Język. Na przykład "Zachodnie stany USA 2".
    Nazwa/nazwisko Nazwa dla twojego zasobu.
    Poziom cenowy Warstwa cenowa zasobu Language. Aby wypróbować usługę, możesz użyć warstwy Bezpłatna (F0).

    Uwaga

    Jeśli zostanie wyświetlony komunikat "Twoje konto logowania nie jest właścicielem grupy zasobów wybranego konta magazynu", Twoje konto musi mieć przypisaną rolę właściciela w tej grupie zasobów, zanim będzie można utworzyć zasób językowy. Skontaktuj się z właścicielem subskrypcji platformy Azure, aby uzyskać pomoc.

  4. W sekcji Niestandardowa klasyfikacja tekstu i niestandardowe rozpoznawanie nazwanych jednostek wybierz istniejące konto magazynu lub wybierz Nowe konto magazynu. Te wartości są pomocnicze, aby ułatwić rozpoczęcie pracy i to niekoniecznie są wartości konta przechowywania, których zechcesz użyć w środowiskach produkcyjnych. Aby uniknąć opóźnień podczas kompilowania projektu, połącz się z kontami magazynu znajdującymi się w tym samym regionie co Twoje zasoby językowe.

    Wartość konta magazynu Zalecana wartość
    Nazwa konta magazynu Dowolna nazwa
    Typ konta magazynu Standardowa LRS
  5. Upewnij się, że zaznaczono Responsible AI Notice. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony, a następnie wybierz pozycję Utwórz.

Przesyłanie przykładowych danych do kontenera blob

Po utworzeniu konta usługi Azure Storage i połączeniu go z zasobem Language należy przekazać dokumenty z przykładowego zestawu danych do katalogu głównego kontenera. Te dokumenty będą później używane do trenowania modelu.

  1. Pobierz przykładowy zestaw danych z usługi GitHub.

  2. Otwórz plik .zip i wyodrębnij folder zawierający dokumenty.

  3. W portalu Azure portal przejdź do stworzonego konta magazynowego i wybierz je.

  4. Na koncie magazynu wybierz Kontenery z menu po lewej stronie, znajdującym się poniżej Magazyn danych. Na wyświetlonym ekranie wybierz pozycję + Kontener. Nadaj kontenerowi nazwę example-data i pozostaw domyślny poziom dostępu publicznego.

    Zrzut ekranu przedstawiający stronę główną konta magazynowego.

  5. Po utworzeniu kontenera wybierz go. Następnie wybierz przycisk Przekaż, aby wybrać pliki .txt i .json pobrane wcześniej.

    Zrzut ekranu przedstawiający przycisk przesyłania plików do konta magazynowego.

Podany przykładowy zestaw danych zawiera 20 umów kredytowych. Każda umowa obejmuje dwie strony: kredytodawcę i kredytobiorcę. Możesz użyć dostarczonego pliku przykładowego, aby wyodrębnić odpowiednie informacje dla: obu stron, daty umowy, kwoty pożyczki i stopy procentowej.

Uzyskaj swoje klucze zasobów i punkt końcowy

  1. Przejdź do strony przeglądu zasobu w witrynie Azure Portal

  2. Z menu po lewej stronie wybierz pozycję Klucze i punkt końcowy. Użyjesz punktu końcowego i klucza dla żądań API

    Zrzut ekranu przedstawiający stronę klucza i punktu końcowego w witrynie Azure Portal

Tworzenie niestandardowego projektu NER

Po skonfigurowaniu zasobu i konta magazynu utwórz nowy niestandardowy projekt NER. Projekt to obszar roboczy umożliwiający tworzenie niestandardowych modeli uczenia maszynowego na podstawie danych. Twój projekt jest dostępny tylko dla Ciebie i innych osób, które mają dostęp do używanego zasobu językowego.

Użyj pliku tagów pobranego z przykładowych danych w poprzednim kroku i dodaj go do treści następującego żądania.

Wyzwalanie zadania importowania projektu

Prześlij żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON, aby zaimportować plik etykiet. Upewnij się, że plik etykiet jest zgodne z akceptowanym formatem.

Jeśli projekt o tej samej nazwie już istnieje, dane tego projektu zostaną zastąpione.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest wrażliwa na wielkość liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do twojego zasobu. Służy do uwierzytelniania żądań interfejsu API.

Ciało

Użyj następującego kodu JSON w żądaniu. Zastąp poniższe wartości zastępcze własnymi wartościami.

{
    "projectFileVersion": "{API-VERSION}",
    "stringIndexType": "Utf16CodeUnit",
    "metadata": {
        "projectName": "{PROJECT-NAME}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Klucz Symbol zastępczy Wartość Przykład
api-version {API-VERSION} Wersja wywoływanego interfejsu API. Używana tutaj wersja musi być tą samą wersją interfejsu API w adresie URL. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-03-01-preview
projectName {PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
projectKind CustomEntityRecognition Twój typ projektu. CustomEntityRecognition
language {LANGUAGE-CODE} Ciąg określający kod języka dokumentów używanych w projekcie. Jeśli projekt jest projektem wielojęzycznym, wybierz kod języka większości dokumentów. en-us
multilingual true Wartość logiczna, która umożliwia posiadanie dokumentów w wielu językach w zestawie danych, a po wdrożeniu modelu można wykonywać zapytania względem modelu w dowolnym obsługiwanym języku (niekoniecznie zawarte w dokumentach szkoleniowych. Aby uzyskać informacje na temat obsługi wielojęzycznej, zobacz obsługa języków. true
storageInputContainerName {CONTAINER-NAME} Nazwa kontenera usługi Azure Storage, do którego przesłałeś swoje dokumenty. myContainer
entities Tablica zawierająca wszystkie typy jednostek, które znajdują się w projekcie. Są to typy jednostek, które zostaną wyodrębnione z dokumentów.
documents Tablica zawierająca wszystkie dokumenty w projekcie i listę jednostek oznaczonych w każdym dokumencie. []
location {DOCUMENT-NAME} Lokalizacja dokumentów w kontenerze magazynu. Ponieważ wszystkie dokumenty znajdują się w katalogu głównym kontenera, to powinno być nazwą dokumentu. doc1.txt
dataset {DATASET} Zestaw testowy, do którego ten plik zostanie przypisany podczas dzielenia danych przed rozpoczęciem trenowania. Aby uzyskać więcej informacji na temat podziału danych, zobacz Jak wytrenować model . Możliwe wartości dla tego pola to Train i Test. Train

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 , że zadanie zostało przesłane poprawnie. W nagłówkach odpowiedzi wyodrębnij wartość operation-location. Zostanie on sformatowany w następujący sposób:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Użyjesz tego adresu URL, aby uzyskać stan zadania importu.

Możliwe scenariusze błędów dla tego żądania:

  • Wybrany zasób nie ma odpowiednich uprawnień dla konta usługi przechowywania.
  • Określona storageInputContainerName wartość nie istnieje.
  • Jest używany nieprawidłowy kod języka lub jeśli typ kodu języka nie jest ciągiem.
  • multilingual wartość jest ciągiem znaków, a nie wartością logiczną.

Sprawdź stan zadania importu

Użyj następującego żądania GET , aby uzyskać stan importowania projektu. Zastąp poniższe wartości symboli zastępczych własnymi wartościami.

Adres URL żądania

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest czuła na wielkość liter. myProject
{JOB-ID} Identyfikator do lokalizacji statusu trenowania twojego modelu. Ta wartość znajduje się w wartości nagłówka location otrzymanej w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do twojego zasobu. Służy do uwierzytelniania żądań interfejsu API.

Szkolenie modelu

Zazwyczaj po utworzeniu projektu możesz zacząć oznaczać dokumenty , które masz w kontenerze połączonym z projektem. Na potrzeby tego przewodnika szybkiego startu zaimportowano przykładowy otagowany zestaw danych i zainicjowano projekt przy użyciu przykładowego pliku tagów JSON.

Rozpoczynanie zadania szkoleniowego

Po zaimportowaniu projektu możesz rozpocząć trenowanie modelu.

Prześlij żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON, aby przesłać zadanie szkoleniowe. Zastąp poniższe wartości zastępcze własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość uwzględnia wielkość liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Twój klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść żądania

Użyj następującego kodu JSON w treści żądania. Model otrzyma {MODEL-NAME} po zakończeniu treningu. Tylko pomyślne zadania treningowe stworzą modele.

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
Klucz Symbol zastępczy Wartość Przykład
Etykieta modelu {MODEL-NAME} Nazwa modelu, która zostanie przypisana do modelu po pomyślnym wytrenowaniu. myModel
trainingConfigVersion {CONFIG-VERSION} Jest to wersja modelu, która będzie używana do trenowania modelu. 2022-05-01
opcje oceny Opcja dzielenia danych między zestawy trenowania i testowania. {}
rodzaj percentage Metody dzielenia. Możliwe wartości to percentage lub manual. Aby uzyskać więcej informacji, zobacz Jak wytrenować model . percentage
procentPodziałuTreningu 80 Procent oznakowanych danych, które mają zostać uwzględnione w zestawie treningowym. Zalecana wartość to 80. 80
testingSplitPercentage 20 Procent oznakowanych danych, które mają zostać uwzględnione w zestawie testów. Zalecana wartość to 20. 20

Uwaga

Wartości trainingSplitPercentage i testingSplitPercentage są wymagane tylko wtedy, gdy Kind jest ustawiona wartość percentage , a suma obu wartości procentowych powinna być równa 100.

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 , że zadanie zostało przesłane poprawnie. W nagłówkach odpowiedzi wyodrębnij wartość location. Zostanie on sformatowany w następujący sposób:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Możesz użyć tego adresu URL, aby uzyskać stan trenowania.

Sprawdź stan zadania szkoleniowego

Trenowanie może potrwać od 10 do 30 minut dla tego przykładowego zestawu danych. Następujące żądanie umożliwia kontynuowanie sondowania stanu zadania szkoleniowego do momentu pomyślnego ukończenia zadania.

Użyj następującego żądania GET , aby uzyskać stan postępu trenowania modelu. Zastąp poniższe wartości zastępcze własnymi wartościami.

Adres URL żądania

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest rozróżnialna ze względu na wielkość liter. myProject
{JOB-ID} Identyfikator do określania stanu treningu modelu. Ta wartość znajduje się w wartości nagłówka location otrzymanej w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do twojego zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść odpowiedzi

Po wysłaniu żądania otrzymasz następującą odpowiedź.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

Wdrażanie modelu

Zazwyczaj po trenowaniu modelu należy przejrzeć jego szczegóły oceny i w razie potrzeby wprowadzić ulepszenia. W tym przewodniku szybkiego startu wdrożysz model i udostępnisz go do wypróbowania w Language Studio lub możesz wywołać API przewidywań.

Uruchamianie zadania wdrożenia

Prześlij żądanie PUT przy użyciu następującego adresu URL, nagłówków i treści JSON, aby przesłać zadanie wdrożenia. Zastąp poniższe wartości symboli zastępczych własnymi wartościami.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{DEPLOYMENT-NAME} Nazwa wdrożenia. Ta wartość uwzględnia wielkość liter. staging
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do twojego zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść żądania

Użyj następującego kodu JSON w treści żądania. Użyj nazwy modelu, który chcesz przypisać do wdrożenia.

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Klucz Symbol zastępczy Wartość Przykład
etykietaWytrenowanegoModelu {MODEL-NAME} Nazwa modelu przypisana do wdrożenia. Można przypisywać tylko pomyślnie wytrenowane modele. Ta wartość jest uwzględniana w wielkości liter. myModel

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 , że zadanie zostało przesłane poprawnie. W nagłówkach odpowiedzi wyodrębnij wartość operation-location. Zostanie on sformatowany w następujący sposób:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Możesz użyć tego adresu URL, aby uzyskać stan wdrożenia.

Pobierz stan zadania wdrożenia

Użyj następującego żądania GET , aby wykonać zapytanie dotyczące stanu zadania wdrożenia. Możesz użyć adresu URL otrzymanego z poprzedniego kroku lub zastąpić poniższe wartości symboli zastępczych własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{DEPLOYMENT-NAME} Nazwa twojego wdrożenia. Ta wartość uwzględnia wielkość liter. staging
{JOB-ID} Identyfikator do śledzenia stanu trenowania modelu. Jest to wartość nagłówka location otrzymana w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść odpowiedzi

Po wysłaniu żądania otrzymasz następującą odpowiedź. Kontynuuj sondowanie tego punktu końcowego , aż parametr status zmieni się na "sukces". Powinien zostać wyświetlony 200 kod wskazujący powodzenie żądania.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Wyodrębnij niestandardowe encje

Po wdrożeniu modelu możesz zacząć używać go do wyodrębniania jednostek z tekstu przy użyciu interfejsu API przewidywania. W pobranym wcześniej przykładowym zestawie danych można znaleźć niektóre dokumenty testowe, których można użyć w tym kroku.

Prześlij niestandardowe zadanie NER

Użyj tego żądania POST , aby uruchomić zadanie klasyfikacji tekstu.

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz, który zapewnia dostęp do tego interfejsu API.

Treść

{
  "displayName": "Extracting entities",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomEntityRecognition",
      "taskName": "Entity Recognition",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Klucz Symbol zastępczy Wartość Przykład
displayName {JOB-NAME} Nazwa zadania. MyJobName
documents [{},{}] Lista dokumentów do wykonywania zadań. [{},{}]
id {DOC-ID} Nazwa lub identyfikator dokumentu. doc1
language {LANGUAGE-CODE} Ciąg określający kod języka dokumentu. Jeśli ten klucz nie zostanie określony, usługa przyjmie domyślny język projektu wybranego podczas tworzenia projektu. Aby uzyskać listę obsługiwanych kodów języków, zobacz Obsługa języków. en-us
text {DOC-TEXT} Dokumentuj zadanie, na którym będą uruchamiane inne zadania. Lorem ipsum dolor sit amet
tasks Lista zadań, które chcemy wykonać. []
taskName CustomEntityRecognition Nazwa zadania RozpoznawanieSpecjalnychEncji
parameters Lista parametrów do przekazania do zadania.
project-name {PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
deployment-name {DEPLOYMENT-NAME} Nazwa twojego wdrożenia. Ta wartość uwzględnia wielkość liter. prod

Odpowiedź

Otrzymasz odpowiedź 202 wskazującą na to, że zadanie zostało pomyślnie przesłane. W nagłówkach odpowiedzi wyodrębnij element operation-location. operation-location jest sformatowany w następujący sposób:

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

Możesz użyć tego adresu URL, aby wykonać zapytanie dotyczące stanu ukończenia zadania i uzyskać wyniki po zakończeniu zadania.

Pobieranie wyników zadania

Użyj następującego żądania GET , aby wykonać zapytanie dotyczące stanu/wyników zadania niestandardowego rozpoznawania jednostek.

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz, który zapewnia dostęp do tego interfejsu API.

Treść odpowiedzi

Odpowiedź będzie dokumentem JSON z następującymi parametrami

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxx-xxxxx-xxxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "EntityRecognitionLROResults",
        "taskName": "Recognize Entities",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "entities": [
                {
                  "category": "Event",
                  "confidenceScore": 0.61,
                  "length": 4,
                  "offset": 18,
                  "text": "trip"
                },
                {
                  "category": "Location",
                  "confidenceScore": 0.82,
                  "length": 7,
                  "offset": 26,
                  "subcategory": "GPE",
                  "text": "Seattle"
                },
                {
                  "category": "DateTime",
                  "confidenceScore": 0.8,
                  "length": 9,
                  "offset": 34,
                  "subcategory": "DateRange",
                  "text": "last week"
                }
              ],
              "id": "1",
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

Czyszczenie zasobów

Jeśli projekt nie jest już potrzebny, możesz go usunąć za pomocą następującego żądania DELETE . Zastąp wartości domyślne własnymi wartościami.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Po wysłaniu żądania API otrzymasz odpowiedź 202 wskazującą powodzenie, co oznacza, że projekt został usunięty. Zakończenie pomyślnego wywołania skutkuje nagłówkiem Operation-Location, który jest używany do sprawdzania stanu zadania.

Następne kroki

Po utworzeniu modelu wyodrębniania jednostek można wykonywać następujące czynności:

Po rozpoczęciu tworzenia własnych niestandardowych projektów NER skorzystaj z artykułów z instrukcjami, aby dowiedzieć się więcej na temat tagowania, trenowania i używania modelu w bardziej szczegółowy sposób: