Intencje
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 migrowanie aplikacji usługi LUIS do interpretacji języka konwersacyjnego , aby korzystać z ciągłej pomocy technicznej produktu i możliwości wielojęzycznych.
Intencja reprezentuje zadanie lub akcję, którą użytkownik chce wykonać. Jest to cel lub cel wyrażony w wypowiedzi użytkownika.
Zdefiniuj zestaw intencji, który odpowiada akcjom, które użytkownicy chcą wykonać w aplikacji. Na przykład aplikacja turystyczna będzie miała kilka intencji:
Intencje aplikacji podróży | Przykładowe wypowiedzi |
---|---|
BookFlight | "Zarezerwuj mi lot do Rio w przyszłym tygodniu" "Fly me to Rio on the 24th" "Potrzebuję biletu lotniczego w najbliższą niedzielę do Rio de Janeiro" |
Powitanie | „Hi” (Cześć) "Hello" „Good morning” (Dzień dobry) |
CheckWeather (Sprawdzanie pogody) | "Jaka jest pogoda jak w Bostonie?" "Pokaż mi prognozę na ten weekend" |
Brak | "Get me a cookie przepis" "Czy Lakers wygrali?" |
Wszystkie aplikacje mają wstępnie zdefiniowaną intencję "None", czyli intencję rezerwową.
Wstępnie utworzone intencje
Usługa LUIS udostępnia wstępnie utworzone intencje i ich wypowiedzi dla każdej ze wstępnie utworzonych domen. Intencje można dodać bez dodawania całej domeny. Dodawanie intencji to proces dodawania intencji i jej wypowiedzi do aplikacji. Można zmodyfikować zarówno nazwę intencji, jak i listę wypowiedzi.
Zwracanie wyników wszystkich intencji
Do jednej intencji przypisuje się wypowiedź. Gdy usługa LUIS odbiera wypowiedź, domyślnie zwraca ona najwyższą intencję dla tej wypowiedzi.
Jeśli chcesz uzyskać wyniki dla wszystkich intencji wypowiedzi, możesz podać flagę w ciągu zapytania interfejsu API przewidywania.
Wersja interfejsu API przewidywania | Flaga |
---|---|
Wersja 2 | verbose=true |
Wersja 3 | show-all-intents=true |
Intencja w porównaniu z jednostką
Intencja reprezentuje akcję, jaką aplikacja powinna wykonać dla użytkownika na podstawie całej wypowiedzi. Wypowiedź może mieć tylko jedną intencję oceniania, ale może mieć wiele jednostek.
Utwórz intencję, gdy intencja użytkownika wyzwoli akcję w aplikacji klienckiej, na przykład wywołanie funkcji checkweather() z powyższej tabeli. Następnie utwórz jednostki reprezentujące parametry wymagane do wykonania akcji.
Zamiar | Jednostka | Przykładowa wypowiedź |
---|---|---|
CheckWeather (Sprawdzanie pogody) | { "type": "location", "entity": "Seattle" } { "type": "builtin.datetimeV2.date","entity": "tomorrow","resolution":"2018-05-23" } |
Jaka jest pogoda jak w ?Seattle tomorrow |
CheckWeather (Sprawdzanie pogody) | { "type": "date_range", "entity": "this weekend" } | Pokaż prognozę dla this weekend |
Intencja None
Intencja None została utworzona, ale pozostawiona jako pusta celowo. Intencja None jest wymaganą intencją i nie można jej usunąć ani zmienić jej nazwy. Wypełnij ją wypowiedziami, które znajdują się poza Twoją domeną.
Intencja None jest intencją rezerwową i powinna zawierać 10% całkowitej wypowiedzi. Ważne jest, aby każda aplikacja była używana do uczenia wypowiedzi usługi LUIS, które nie są ważne w domenie aplikacji (w obszarze tematu). Jeśli nie dodasz żadnych wypowiedzi dla intencji None , usługa LUIS wymusza wypowiedzi spoza domeny do jednej z intencji domeny. Spowoduje to niesymetryczność wyników przewidywania przez nauczenie usługi LUIS nieprawidłowej intencji wypowiedzi.
Gdy wypowiedź jest przewidywana jako intencja None, aplikacja kliencka może zadać więcej pytań lub podać menu, aby przekierować użytkownika do prawidłowych wyborów.
Negatywne intencje
Jeśli chcesz określić negatywne i pozytywne intencje, takie jak "Chcę samochodu" i "Niechcę samochodu", możesz utworzyć dwie intencje (jeden pozytywny i jeden ujemny) i dodać odpowiednie wypowiedzi dla każdego. Możesz też utworzyć pojedynczą intencję i oznaczyć dwa różne pozytywne i negatywne terminy jako jednostkę.
Intencje i wzorce
Jeśli masz przykładowe wypowiedzi, które można zdefiniować w części lub całości jako wyrażenie regularne, rozważ użycie jednostki wyrażenia regularnego sparowanej ze wzorcem.
Użycie jednostki wyrażenia regularnego gwarantuje wyodrębnianie danych, aby wzorzec był zgodny. Dopasowanie wzorca gwarantuje zwrócenie dokładnej intencji.
Saldo intencji
Intencje domeny aplikacji powinny mieć równowagę wypowiedzi w każdej intencji. Na przykład nie mają większości intencji z 10 wypowiedziami i inną intencją z 500 wypowiedziami. Nie jest to zrównoważone. W takiej sytuacji warto przejrzeć intencję z 500 wypowiedziami, aby sprawdzić, czy wiele intencji można zreorganizować w wzorzec.
Intencja None nie jest uwzględniona w saldu. Ta intencja powinna zawierać 10% całkowitej wypowiedzi w aplikacji.
Limity intencji
Przejrzyj limity, aby dowiedzieć się, ile intencji można dodać do modelu.
Porada
Jeśli potrzebujesz więcej niż maksymalnej liczby intencji, zastanów się, czy system używa zbyt wielu intencji i określ, czy wiele intencji ma być połączonych w pojedynczą intencję z jednostkami. Intencje, które są zbyt podobne, mogą utrudnić usłudze LUIS rozróżnienie między nimi. Intencje powinny być wystarczająco zróżnicowane, aby przechwytywać główne zadania, o które prosi użytkownik, ale nie muszą przechwytywać każdej ścieżki używanej przez kod. Na przykład dwie intencje: BookFlight() i FlightCustomerService() mogą być oddzielne intencje w aplikacji podróży, ale BookInternationalFlight() i BookDomesticFlight() są zbyt podobne. Jeśli system musi je odróżnić, użyj jednostek lub innych logiki, a nie intencji.
Zażądaj pomocy dotyczącej aplikacji ze znaczną liczbą intencji
Jeśli zmniejszenie liczby intencji lub podzielenie intencji na wiele aplikacji nie zadziała, skontaktuj się z pomocą techniczną. Jeśli subskrypcja platformy Azure obejmuje usługi pomocy technicznej, skontaktuj się z pomocą techniczną platformy Azure.
Najlepsze rozwiązania dotyczące intencji:
Definiowanie odrębnych intencji
Upewnij się, że słownictwo dla każdej intencji jest tylko dla tej intencji i nie nakłada się na inną intencję. Jeśli na przykład chcesz mieć aplikację, która obsługuje aranżacje podróży, takie jak loty lotnicze i hotele, możesz wybrać te obszary podmiotu jako oddzielne intencje lub tę samą intencję z jednostkami dla określonych danych wewnątrz wypowiedzi.
Jeśli słownictwo między dwiema intencjami jest takie samo, połącz intencję i użyj jednostek.
Rozważmy następujące przykładowe wypowiedzi:
- Zarezerwuj lot
- Zarezerwuj hotel
"Zarezerwuj lot" i "zarezerwuj hotel" użyj tego samego słownictwa "book a <noun>". Ten format jest taki sam, więc powinien być taki sam, jak w przypadku różnych słów lotu i hotelu, co wyodrębnione jednostki.
Dodawanie funkcji do intencji
Funkcje opisują pojęcia dotyczące intencji. Funkcja może być listą fraz wyrazów, które są istotne dla tej intencji lub jednostki istotnej dla tej intencji.
Znajdź słodkie miejsce dla intencji
Użyj danych przewidywania z usługi LUIS, aby określić, czy intencje nakładają się na siebie. Nakładające się intencje mylą usługę LUIS. W rezultacie intencja oceniania jest zbyt bliska innej intencji. Ponieważ usługa LUIS nie używa dokładnie tej samej ścieżki przez dane do trenowania za każdym razem, nakładające się intencje mają szansę być pierwszym lub drugim w trenowaniu. Chcesz, aby wynik wypowiedzi dla każdej intencji był dalej od siebie, więc ta wariancja nie ma miejsce. Dobre rozróżnienie intencji powinno prowadzić do oczekiwanej najwyższej intencji za każdym razem.
Równoważenie wypowiedzi w intencjach
Aby przewidywania usługi LUIS były dokładne, ilość przykładowych wypowiedzi w każdej intencji (z wyjątkiem intencji None) musi być stosunkowo równa.
Jeśli masz intencję z 500 przykładowymi wypowiedziami i wszystkimi innymi intencjami z 10 przykładowymi wypowiedziami, intencja 500 wypowiedzi będzie mieć wyższą szybkość przewidywania.
Dodawanie przykładowych wypowiedzi do intencji none
Ta intencja jest intencją rezerwową wskazującą wszystko poza aplikacją. Dodaj jedną przykładną wypowiedź do intencji None dla każdej 10 przykładowych wypowiedzi w pozostałej części aplikacji LUIS.
Nie dodawaj wielu przykładowych wypowiedzi do intencji
Po opublikowaniu aplikacji dodaj tylko wypowiedzi z aktywnego uczenia się w procesie cyklu projektowania. Jeśli wypowiedzi są zbyt podobne, dodaj wzorzec.
Nie mieszaj definicji intencji i jednostek
Utwórz intencję dla dowolnej akcji, jaką podejmie bot. Użyj jednostek jako parametrów, które umożliwiają wykonanie tej akcji.
Na przykład w przypadku bota, który zarezerwuje loty lotnicze, utwórz intencję BookFlight . Nie twórz intencji dla każdej linii lotniczej ani dla każdego miejsca docelowego. Użyj tych fragmentów danych jako jednostek i oznacz je w przykładowych wypowiedziach.