Szukaj…


Wprowadzenie

Bot Framework obsługuje programy Recognizers . Rozpoznawanie służy do rozpoznawania, co zrobić, gdy użytkownik wyśle botowi dowolną wiadomość. Dlatego możesz zaprojektować bota, aby rozpoznawał zamiary na podstawie danych wprowadzonych przez użytkownika. Rozpoznawanie może być używane z LUIS API w celu dodania zrozumienia bota przez język naturalny.

Składnia

  • var rozpoznający = nowy konstruktor.LUISRecognizer („URL twojego modelu”);

  • var intents = new builder.IntentDialog ({rozpoznaje: [rozpoznawanie]});

Inicjowanie i dodawanie LUISRecognizer

Po opracowaniu nowego projektu z podstawowym szablonem przedstawionym we wstępie powinieneś być w stanie dodać LUISRecognizer w taki sposób -

var model = ''    // Your LUIS Endpoint link comes here
var recognizer = new builder.LuisRecognizer(model);

Teraz program recognizer jest programem LUISRecognizer i może przekazywać zamiary w oparciu o zdefiniowany model LUIS. Możesz dodać recognizer do swoich celów przez

var intents = new builder.IntentDialog({recognizers: [recognizer]});

Twój bot może teraz obsługiwać zamiary LUIS. Wszelkie nazwane zamiary Luis można wykryć za pomocą matches własność IntentDialog klasie. Powiedzmy, że intencja o nazwie hi jest zdefiniowana w modelu LUIS, aby rozpoznać intencję bota,

intents.matches('hi', function(session) {
    session.send("Hey :-)");
});

Definiowanie modelu LUIS z intencjami

Tworzenie modelu LUIS wymaga niewielkiego doświadczenia w programowaniu lub nie wymaga go wcale. Musisz jednak znać 2 ważne terminy, które będą szeroko stosowane.

  1. Intencje - w ten sposób identyfikujesz funkcje, które należy wykonać, gdy użytkownik coś wpisze. Np. - Intencja o nazwie Hi zidentyfikuje funkcję, która musi zostać wykonana za każdym razem, gdy użytkownik wyśle „Cześć”. Intencje są jednoznacznie nazwane w twoim programie / modelu.
  2. Podmioty - identyfikują rzeczowniki w zestawieniu. Np. - „Ustaw alarm na 13:00”, tutaj 1:00 pm to jednostka, która musi zostać rozpoznana przez czat-bot, aby ustawić alarm.

Uwaga: obrazy witryny nie są dostępne jako front-end mojej zmiany, ale podstawowa koncepcja pozostaje taka sama.

Aby utworzyć nowy model, przejdź do LUIS.ai i zaloguj się za pomocą konta Microsoft, aby przejść na stronę tworzenia aplikacji. Gdzie można utworzyć pusty projekt.

Definiowanie zamiarów:

Intencje można zdefiniować na karcie Intents . Określają, jaką funkcję należy wykonać, gdy użytkownik wejdzie w cokolwiek.

Wszystkie aplikacje mają domyślną intencję None , która jest aktywowana, gdy dane wejściowe użytkownika nie odpowiadają żadnej innej intencji.

Aby zdefiniować zamiar,

  1. Nadaj mu unikalną nazwę odpowiadającą funkcji, którą chcesz pełnić.
  2. Po zakończeniu nazewnictwa należy dodać utterances do intencji. Wypowiedzi są tym, co użytkownik chce wysłać, aby aktywować zdefiniowane zamiary. Spróbuj nakarmić jak najwięcej różnych utterances , aby LUIS prawidłowo kojarzył intents i utterances .
  3. Trenować LUIS modelu, klikając Train przycisk na Train and Test Tab. Po szkoleniu aplikację można przetestować w panelu poniżej.
  4. Na koniec opublikuj swoją aplikację na karcie Publish App . Powinieneś teraz otrzymać adres URL punktu końcowego, który należy wstawić podczas definiowania LUISRecognizer w kodzie bota.

Dodawanie jednostek do modelu LUIS

Istota to informacja, którą bot pobiera z określonej wypowiedzi zgodnej z intencją.

Np. Niech My name is John Doe należy do intencji zwanej introduction . Aby twój bot zrozumiał i wyodrębnił z zdania imię John Doe , musisz zdefiniować byt, który to robi. Możesz nazwać byt, jak chcesz, ale najlepiej nazwać go jako coś związanego z tym, co wyodrębnia. W naszym przykładzie możemy nazwać naszą name podmiotu.

Jednostki mogą być ponownie użyte między różnymi intencjami, aby wyodrębnić różne rzeczy. Zatem najlepszą zasadą byłoby stworzenie bytu, który wyodrębnia tylko typ danych i wykorzystuje je w różnych celach. Dlatego w naszym powyższym przykładzie powiedz, że Book a flight on Emirates należy do zamierzonej booking , wówczas ten sam podmiot, name , może zostać użyty do wyodrębnienia emirates nazw lotów.

Zanim zaczniesz definiować byty, musisz pamiętać o dwóch rzeczach -

  1. Jednostki powinny być unikatowe pod względem wypowiedzi w zamierzeniu. Encji nie można użyć dwukrotnie w tej samej wypowiedzi.
  2. LUIS nie uwzględnia wielkości liter. Oznacza to, że wszystko wyodrębnione i odebrane przez wyodrębnienie bytu będzie pisane małymi literami. Tak więc wydobywanie danych z rozróżnianiem wielkości liter przez podmioty jest prawdopodobnie złym pomysłem.

Dodawanie gotowych elementów

Wcześniej zbudowane jednostki są, jak sugeruje nazwa, wstępnie zbudowane, tj. Są już skonfigurowane do wyodrębniania określonego typu danych w celu, do którego zostały dodane. Przykładem może być number jednostki, który wyodrębnia liczby z zamiaru, do którego jest przypisany. Liczby mogą być numeryczne lub alfabetyczne, na przykład 10 lub ten .

Aby uzyskać pełną listę wszystkich gotowych jednostek, możesz odwiedzić [Lista gotowych jednostek] [1].

Aby dodać gotowe elementy,

  1. Przejdź do zakładki entities .
  2. Kliknij Add pre-built entities i wybierz element, który chcesz dodać do modelu, i kliknij Zapisz.

Dodawanie encji niestandardowych Encje niestandardowe są 4 typów,

  1. Prosty : Prosty byt wyodrębnia określone dane, name w powyższych przykładach jest prostym bytem.
  2. Hierarchiczna : jednostka nadrzędna z jednostkami podrzędnymi (podtypami), które są zależne od jednostki nadrzędnej.
  3. Złożony : grupa 2 lub więcej niezależnych podmiotów.
  4. Lista : jednostka, która rozpoznaje słowa tylko z podanej listy.

Definiowanie prostych jednostek

  1. Przejdź na zakładkę entities .
  2. Kliknij Add Custom Entities
  3. Nazwij swoją jednostkę, sprawdź wymagany typ jednostki i naciśnij Save .

Wszystkie inne typy jednostek można dodawać w ten sam sposób, po prostu zmieniając Entity Type na jeden z powyższych typów. W typach encji hierarchicznych i złożonych musisz także podać nazwy dzieci wraz z nazwą encji nadrzędnej. Definiowanie jednostek listy różni się nieco od reszty.

Definiowanie elementów listy

Po wykonaniu powyższych kroków, aby utworzyć List Entity , umieszczając Entity Type jako Listę, zostaniesz przekierowany do strony szczegółów encji, którą właśnie zdefiniowałeś.

  1. Zdefiniuj wartość kanoniczną. Jest to standardowa wartość, którą bot otrzyma, gdy użytkownik wpisze dowolny z synonimów.
  2. Zdefiniuj synonimy wartości kanonicznej. Zostaną one przekonwertowane na wartość kanoniczną po napotkaniu przez byt.

Możesz także importować całe listy, używając tablicy Obiektów JSON w postaci:

[
    {
        "canonicalForm": "Hey",
        "list": [
            "Howdy",
            "Hi"
         ]
    },
    .
    .
    .
]

Kojarzenie jednostki z intencją

Pre-built oraz list podmiotów już zbiór wartości zdefiniowanych, które mogą być pozyskiwane z wszystkich utterences jednak Simple , Hierarchical i Composite wypowiedzi muszą być przeszkoleni, aby podnieść wartości.

Można to zrobić przez

  1. Przejdź do zakładki intents i wybierz intencję, do której chcesz dodać encję.
  2. Dodaj wypowiedź o wartości fikcyjnej, którą chcesz wyodrębnić. Powiedz, możesz dodać My name is John Doe jako wypowiedź.
  3. Kliknij i przeciągnij myszą nad słowami, które jednostka ma wyodrębnić. W powyższym przykładzie będziesz musiał zaznaczyć john doe .
  4. Otworzy się menu rozwijane z listą wszystkich podmiotów dostępnych w projekcie. Wybierz odpowiedni według własnego uznania. Name będzie jednostką wybraną w powyższym przykładzie.
  5. Dodaj za każdym razem więcej wypowiedzi z różnymi wartościami manekina i wszystkie możliwe struktury, jakie możesz wymyślić.
  6. Trenuj i publikuj swój model LUIS.


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow