Zbieranie danych dla aplikacji
Ważne
Usługa LUIS zostanie wycofana 1 października 2025 r. i od 1 kwietnia 2023 r. nie będzie można utworzyć nowych zasobów usługi LUIS. Zalecamy migrację aplikacji LUIS do interpretacji języka konwersacyjnego, aby korzystać z ciągłej pomocy technicznej i wielojęzycznych możliwości produktów.
Aplikacja Usługi Language Understanding (LUIS) potrzebuje danych w ramach tworzenia aplikacji.
Dane używane w usłudze LUIS
Usługa LUIS używa tekstu jako danych do trenowania i testowania aplikacji LUIS pod kątem klasyfikacji intencji i wyodrębniania jednostek. Potrzebujesz wystarczająco dużego zestawu danych, który ma wystarczającą ilość danych, aby utworzyć oddzielne zestawy danych dla trenowania i testowania, które mają różnorodność i dystrybucję, które zostały szczegółowo wymienione poniżej. Dane w każdym z tych zestawów nie powinny się nakładać.
Wybór danych szkoleniowych na przykład wypowiedzi
Wybierz wypowiedzi dla zestawu szkoleniowego na podstawie następujących kryteriów:
Rzeczywiste dane są najlepsze:
- Rzeczywiste dane z aplikacji klienckiej: wybierz wypowiedzi, które są rzeczywistymi danymi z aplikacji klienckiej. Jeśli klient wysyła formularz internetowy z zapytaniem dzisiaj i tworzysz bota, możesz zacząć od użycia danych formularza internetowego.
- Dane pozyskiwane przez tłum: jeśli nie masz żadnych istniejących danych, rozważ pozyskiwanie wypowiedzi przez tłum. Spróbuj uzyskać najlepsze przybliżenie rzeczywistych danych wyświetlanych przez aplikację w wypowiedziach z rzeczywistej populacji użytkowników dla danego scenariusza. Wypowiedzi ludzkie oparte na tłumach są lepsze niż wypowiedź wygenerowana komputerowo. Podczas tworzenia zestawu danych syntetycznych wypowiedzi generowanych na określonych wzorcach brakuje dużej części naturalnej odmiany, które będą widoczne dla osób tworzących wypowiedzi i nie zostaną uogólnione w środowisku produkcyjnym.
Różnorodność danych:
- Różnorodność regionów: upewnij się, że dane dla każdej intencji są tak zróżnicowane, jak to możliwe, w tym frazy (wybór słów) i gramatyka. Jeśli uczysz intencji dotyczących zasad kadr dotyczących dni urlopowych, upewnij się, że masz wypowiedzi reprezentujące terminy, które są używane dla wszystkich regionów, które obsługujesz. Na przykład w Europie ludzie mogą zapytać i
taking a holiday
w USA mogą zapytać otaking vacation days
. - Różnorodność języków: jeśli masz użytkowników z różnymi językami ojczystymi komunikującymi się w drugim języku, upewnij się, że masz wypowiedzi reprezentujące osoby nienatywne.
- Różnorodność danych wejściowych: rozważ ścieżkę danych wejściowych. W przypadku zbierania danych z jednej osoby, działu lub urządzenia wejściowego (mikrofonu) prawdopodobnie brakuje różnorodności, która będzie ważna dla twojej aplikacji, aby dowiedzieć się więcej o wszystkich ścieżkach wejściowych.
- Różnorodność interpunkcji: należy wziąć pod uwagę, że ludzie używają różnych poziomów interpunkcji w aplikacjach tekstowych i upewnij się, że masz różnorodność sposobu używania interpunkcji. Jeśli używasz danych pochodzących z mowy, nie będą miały żadnej interpunkcji, więc dane nie powinny też być.
- Różnorodność regionów: upewnij się, że dane dla każdej intencji są tak zróżnicowane, jak to możliwe, w tym frazy (wybór słów) i gramatyka. Jeśli uczysz intencji dotyczących zasad kadr dotyczących dni urlopowych, upewnij się, że masz wypowiedzi reprezentujące terminy, które są używane dla wszystkich regionów, które obsługujesz. Na przykład w Europie ludzie mogą zapytać i
Dystrybucja danych: upewnij się, że dane rozłożone między intencjami reprezentują taką samą dystrybucję danych, które otrzymuje aplikacja kliencka. Jeśli aplikacja LUIS będzie klasyfikować wypowiedzi, które są żądaniami zaplanowanych urlopu (50%), ale zobaczy również wypowiedzi dotyczące pozostałych dni urlopu (20%), zatwierdzanie liści (20%) i niektóre poza zakresem i czatem (10%), zestaw danych powinien mieć przykładowe wartości procentowe każdego typu wypowiedzi.
Użyj wszystkich formularzy danych: jeśli aplikacja usługi LUIS będzie przyjmować dane w wielu formularzach, pamiętaj, aby uwzględnić te formularze w wypowiedziach szkoleniowych. Jeśli na przykład aplikacja kliencka przyjmuje zarówno mowę, jak i wpisywane dane wejściowe tekstu, musisz mieć mowę na tekst wygenerowanych wypowiedzi, a także wpisywane wypowiedzi. Zobaczysz różne różnice w tym, jak ludzie mówią od sposobu ich wpisywania, a także różne błędy w rozpoznawaniu mowy i literówce. Wszystkie te odmiany powinny być reprezentowane w danych treningowych.
Pozytywne i negatywne przykłady: aby nauczyć aplikację usługi LUIS, musi dowiedzieć się, czym jest intencja (pozytywna) i czym nie jest (negatywna). W usłudze LUIS wypowiedzi mogą być pozytywne tylko dla jednej intencji. Po dodaniu wypowiedzi do intencji usługa LUIS automatycznie tworzy tę samą przykładową wypowiedź negatywną dla wszystkich pozostałych intencji.
Dane poza zakresem aplikacji: jeśli aplikacja będzie widzieć wypowiedzi, które wykraczają poza zdefiniowane intencje, upewnij się, że zostały one podane. Przykłady, które nie są przypisane do określonej zdefiniowanej intencji, zostaną oznaczone intencją None . Ważne jest, aby mieć realistyczne przykłady intencji None , aby prawidłowo przewidywać wypowiedzi, które wykraczają poza zakres zdefiniowanych intencji.
Jeśli na przykład tworzysz bota hr skoncentrowanego na czasie urlopu i masz trzy intencje:
- planowanie lub edytowanie urlopu
- Dowiedzieć się więcej o dostępnych dniach urlopu
- zatwierdzanie/odrzucanie urlopu
Chcesz mieć pewność, że masz wypowiedzi, które obejmują obie te intencje, ale także te, które obejmują potencjalne wypowiedzi poza tym zakresem, które aplikacja powinna obsługiwać w następujący sposób:
What are my medical benefits?
Who is my HR rep?
tell me a joke
Rzadkie przykłady: Aplikacja musi mieć rzadkie przykłady, a także typowe przykłady. Jeśli twoja aplikacja nigdy nie widziała rzadkich przykładów, nie będzie można ich zidentyfikować w środowisku produkcyjnym. Jeśli używasz rzeczywistych danych, będziesz w stanie dokładniej przewidzieć sposób działania aplikacji LUIS w środowisku produkcyjnym.
Jakość zamiast ilości
Przed dodaniem kolejnych danych należy wziąć pod uwagę jakość istniejących danych. W usłudze LUIS używasz nauczania maszynowego. Kombinacja etykiet i zdefiniowanych funkcji uczenia maszynowego jest używana przez aplikację usługi LUIS. Nie polega po prostu na ilości etykiet, aby zapewnić najlepsze przewidywanie. Różnorodność przykładów i ich reprezentacja tego, co aplikacja usługi LUIS zobaczy w środowisku produkcyjnym, jest najważniejszą częścią.
Wstępne przetwarzanie danych
Poniższe kroki przetwarzania wstępnego pomogą w utworzeniu lepszej aplikacji usługi LUIS:
- Usuń duplikaty: zduplikowane wypowiedzi nie będą bolać, ale nie pomagają, więc usunięcie ich spowoduje zapisanie czasu etykietowania.
- Zastosuj te same preprocesy aplikacji klienckiej: jeśli aplikacja kliencka, która wywołuje punkt końcowy przewidywania usługi LUIS, stosuje przetwarzanie danych w czasie wykonywania przed wysłaniem tekstu do usługi LUIS, należy wytrenować aplikację LUIS na danych przetwarzanych w taki sam sposób.
- Nie stosuj nowych procesów oczyszczania, których aplikacja kliencka nie używa: jeśli aplikacja kliencka akceptuje tekst generowany bezpośrednio przez mowę bez żadnego czyszczenia, takiego jak gramatyka lub interpunkcja, wypowiedzi muszą odzwierciedlać te same elementy, w tym wszelkie brakujące znaki interpunkcyjne i inne błędne rozpoznawanie, musisz uwzględnić.
- Nie usuwaj danych: nie usuwaj źle sformułowanych danych wejściowych, które mogą zostać pobrane z funkcji rozpoznawania mowy, przypadkowego naciśnięcia lub błędnie wtypowanego/błędnie napisanego tekstu. Jeśli aplikacja będzie widzieć takie dane wejściowe, ważne jest, aby były trenowane i testowane na nich. Dodaj źle sformułowaną intencję wejściową , jeśli nie spodziewasz się, że aplikacja będzie ją rozumieć. Oznacz te dane etykietami, aby pomóc aplikacji LUIS przewidzieć poprawną odpowiedź w czasie wykonywania. Aplikacja kliencka może wybrać odpowiednią odpowiedź na niezrozumiałe wypowiedzi, takie jak
Please try again
.
Etykietowanie danych
- Tekst etykiety tak, jakby był poprawny: przykładowe wypowiedzi powinny zawierać wszystkie formy jednostki oznaczonej etykietą. Obejmuje to tekst, który jest błędnie napisany, błędnie typowany i błędnie przetłumaczony.
Przegląd danych po tym, jak aplikacja usługi LUIS jest w środowisku produkcyjnym
Przejrzyj wypowiedzi punktu końcowego, aby monitorować rzeczywisty ruch wypowiedzi po wdrożeniu aplikacji w środowisku produkcyjnym. Dzięki temu możesz zaktualizować wypowiedzi szkoleniowe przy użyciu rzeczywistych danych, co poprawi twoją aplikację. Każda aplikacja utworzona przy użyciu danych scenariusza opartego na crowd source lub innym niż rzeczywistym będzie musiała zostać ulepszona w oparciu o rzeczywiste użycie.
Wybór danych testowych na potrzeby testowania wsadowego
Wszystkie zasady wymienione powyżej dotyczące wypowiedzi szkoleniowych mają zastosowanie do wypowiedzi, których należy użyć dla zestawu testów. Upewnij się, że rozkład między intencjami i jednostkami odzwierciedla rzeczywisty rozkład tak blisko, jak to możliwe.
Nie używaj ponownie wypowiedzi z zestawu treningowego w zestawie testów. Jest to niepoprawnie uprzedzać wyniki i nie daje właściwego wskazania, jak aplikacja LUIS będzie działać w środowisku produkcyjnym.
Po opublikowaniu pierwszej wersji aplikacji należy zaktualizować zestaw testów przy użyciu wypowiedzi z rzeczywistego ruchu, aby upewnić się, że zestaw testowy odzwierciedla dystrybucję produkcyjną i można monitorować realistyczną wydajność w czasie.
Następne kroki
Dowiedz się, jak usługa LUIS zmienia dane przed przewidywaniem