Definiowanie intencji, wypowiedzi i jednostek

Ukończone

Wypowiedzi to frazy , które użytkownik może wprowadzić podczas interakcji z aplikacją korzystającą z modelu językowego. Intencja reprezentuje zadanie lub akcję, którą użytkownik chce wykonać, lub po prostu znaczenie wypowiedzi. Model można utworzyć, definiując intencje i kojarząc je z co najmniej jedną wypowiedzią.

Rozważmy na przykład następującą listę intencji i skojarzonych wypowiedzi:

  • Czas pobierania:
    • "O której godzinie?"
    • "Jaki jest czas?"
    • Powiedz, która jest godzina
  • Dostać pogodę:
    • "Jaka jest prognoza pogody?"
    • "Czy potrzebuję parasola?"
    • Czy będzie padać śnieg?
  • Włącz urządzenie
    • "Włącz światło".
    • "Włącz światło".
    • "Włącz wentylator"
  • Brak:
    • „Hello” (Witaj)
    • "Pożegnanie"

W modelu należy zdefiniować intencje, które mają być zrozumiałe dla modelu, więc poświęć trochę czasu, biorąc pod uwagę domenę , którą model musi obsługiwać, oraz rodzaje akcji lub informacji, które użytkownicy mogą żądać. Oprócz zdefiniowanych intencji każdy model zawiera intencję None , której należy użyć do jawnego identyfikowania wypowiedzi, które użytkownik może przesłać, ale dla których nie jest wymagana żadna konkretna akcja (na przykład powitanie konwersacyjne, np. "hello") lub które wykraczają poza zakres domeny dla tego modelu.

Po zidentyfikowaniu intencji, które model musi obsługiwać, ważne jest, aby przechwytywać różne przykładowe wypowiedzi dla każdej intencji. Zbierz wypowiedzi, które według Ciebie użytkownicy wprowadzą, w tym takie, które oznaczają to samo, ale są skonstruowane na różne sposoby. Należy pamiętać o następujących wytycznych:

  • Przechwyć wiele różnych przykładów lub alternatywne sposoby powiedzenia tego samego
  • Zmienia długość wypowiedzi od krótkiej do średniej do długiej
  • Zmienia lokalizację ownika lub tematu wypowiedzi. Umieść go na początku, na końcu lub gdzieś między
  • Użyj poprawnej gramatyki i niepoprawnej gramatyki w różnych wypowiedziach, aby zaoferować dobre przykłady danych szkoleniowych
  • Precyzja, spójność i kompletność danych oznaczonych etykietami są kluczowymi czynnikami do określania wydajności modelu.
    • Dokładnie etykietuj: Zawsze oznaczaj każdą jednostkę swoim właściwym typem. Uwzględnij tylko to, co chcesz wyodrębnić, i unikaj niepotrzebnych danych w swoich etykietach.
    • Spójna etykieta: ta sama jednostka powinna mieć tę samą etykietę we wszystkich wypowiedziach.
    • Etykieta całkowicie: Oznacz wszystkie wystąpienia jednostki we wszystkich wypowiedziach.

Jednostki służą do dodawania określonego kontekstu do intencji. Można na przykład zdefiniować intencję TurnOnDevice , która może być stosowana do wielu urządzeń, i użyć jednostek do zdefiniowania różnych urządzeń.

Rozważ następujące wypowiedzi, intencje i jednostki:

Wypowiedź Zamiar Jednostki
Jaki jest czas? GetTime (Czas na zdobyć)
O której godzinie jest w Londynie? GetTime (Czas na zdobyć) Lokalizacja (Londyn)
Jaka jest prognoza pogody dla Paryża? Dostać Pogoda Lokalizacja (Paryż)
Czy będę potrzebował parasola dziś wieczorem? Dostać Pogoda Czas (dziś wieczorem)
Jaka jest prognoza na jutro dla Seattle? Dostać Pogoda Lokalizacja (Seattle), Godzina (jutro)
Włącz światło . WłączUrządzenie Urządzenie (światło)
Włącz wentylator. WłączUrządzenie Urządzenie (wentylator)

Jednostki można podzielić na kilka różnych typów składników:

  • Poznane jednostki są najbardziej elastycznym rodzajem jednostki i powinny być używane w większości przypadków. Zdefiniujesz poznany składnik z odpowiednią nazwą, a następnie skojarzysz z nim wyrazy lub frazy w wypowiedziach szkoleniowych. Podczas trenowania modelu dowiesz się, jak dopasować odpowiednie elementy w wypowiedziach do jednostki.
  • Jednostki listy są przydatne, gdy potrzebujesz jednostki z określonym zestawem możliwych wartości — na przykład dni tygodnia. Synonimy można uwzględnić w definicji jednostki listy, aby można było zdefiniować jednostkę DayOfWeek zawierającą wartości "niedziela", "poniedziałek", "wtorek" itd. każdy z synonimami takimi jak "Sun", "Mon", "Tue" itd.
  • Wstępnie utworzone jednostki są przydatne w przypadku typowych typów, takich jak liczby, daty/godziny i nazwy. Na przykład po dodaniu wstępnie utworzonych składników automatycznie wykryjesz wartości, takie jak "6" lub organizacje, takie jak "Microsoft". Ten artykuł zawiera listę obsługiwanych wstępnie zdefiniowanych jednostek.