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:

  • GetTime:
    • "O której godzinie?"
    • "Jaki jest czas?"
    • "Powiedz mi czas"
  • GetWeather:
    • "Jaka jest prognoza pogody?"
    • "Czy potrzebuję parasola?"
    • "Czy to śnieg?"
  • TurnOnDevice
    • "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 uważasz, że użytkownicy wejdą; w tym wypowiedzi oznaczające to samo, ale 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.
    • Etykieta dokładnie: Oznacz każdą jednostkę w odpowiednim typie zawsze. Uwzględnij tylko wyodrębnione dane, unikaj niepotrzebnych danych w 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 Encje
Jaki jest czas? GetTime
O której godzinie jest w Londynie? GetTime Lokalizacja (Londyn)
Jaka jest prognoza pogody dla Paryża? GetWeather Lokalizacja (Paryż)
Czy będę potrzebował parasola dziś wieczorem? GetWeather Czas (dziś)
Jaka jest prognoza dla Seattle jutro? GetWeather Lokalizacja (Seattle), Godzina (jutro)
Włącz światło. TurnOnDevice Urządzenie (jasne)
Włącz wentylator. TurnOnDevice 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 "Sunday", "Monday", "Tuesday" 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 utworzonych jednostek.