Artykuł ten jest tłumaczeniem artykułu Microsoft Bot Framework Basics: Building Intelligent Bots - Adding Language Understanding Capability (Part 2) opublikowanego przez .



Zakres

W tym artykule zademonstrowano, jak można dodać za pomocą LUIS umiejętność konwersacji do aplikacji. Artykuł skupia się na tworzeniu i używaniu języka opisowego modeli (Language Understanding Models). My dodamy możliwości zrozumienia języka do bota z poprzedniego artykułu ( w wersji angielskiej tutaj)Po tym artykule bot będzie mógł interpretować język angielski i mapować zdania do określonych funkcji w kodzie.

Wprowadzenie

Microsoft’s Language Understanding Intelligent Service (LUIS) oferuje szybki i skuteczny sposób dodawania języka do aplikacji.

Z LUIS można użyć istniejących, światowej klasy, gotowych modeli z Cortany i Bing, a kiedy potrzeba szczególnych modeli, LUIS sprawnie poprowadzi użytkownika przez proces ich budowania.

Zanim przejdziesz dalej, ważne jest, aby rozumieć podstawowe pojęcia LUIS.

a. Zamiary/intencje (ang. intents): intencje są jak zamiary lub działania. Jakie działania powinno wywoływać dane zdanie? Wyszukiwanie wiadomości? Szukanie pomocy? Kontynuację rejestracji? To własnie są przykłady intencji. Zamiary dopasowują żądania użytkowników do działań, które powinny być podjęte przez aplikację.

b. Wypowiedzi (utterances): wypowiedzi są to zdania reprezentujące przykłady kwerendy użytkownika lub polecenia, które aplikacja ma odbierać i interpretować. LUIS uczy się od tych wypowiedzi i jest w stanie je uogólniać i uczyć się zrozumienia w podobnych sytuacjach.

Dla każdej intencji można dodać przykład wypowiedzi, które wywołają tą intencję. Dodaj tyle wariacji wypowiedzi, ile spodziewasz się od użytkowników.

c. Jednostki: Jednostka reprezentuje klasę zbioru podobnych obiektów (miejsc, rzeczy, osób, zdarzeń lub pojęć). Podmioty opisują informacje istotne dla intencji, i czasami są one niezbędne dla Twojej aplikacji do wykonywania jej zadań.

Wyobraź sobie, że bot news będzie wyszukiwał wiadomości. Jak bot będzie wiedział, której frazy należy używać do wyszukiwania wiadomości? Ten element, który powinien on wyszukać, nazywa się jednostka. W przykładzie ze zdaniem o poszukiwaniu na temat Mauritius'a, to Mauritius będzie obiektem.

Teraz, kiedy rozumiesz już podstawowe pojęcia LUIS, rozpocznijmy tworzenie aplikacji LUIS. 

Tworzenie aplikacji LUIS

Aby utworzyć i zarejestrować aplikację, przejdź do www.luis.ai, i kliknij na Utwórz nową aplikację.

Po kliknięciu na nową aplikację, otrzymasz ekran poniżej. Tu możesz dodać szczegóły podstawowych aplikacji.

Po kliknięciu przycisku Utwórz, zostaniesz przekierowany do panelu bota, gdzie można zobaczyć statystykę bota.

W tym przykładzie stworzymy bota, który pozwala na wyszukiwanie wiadomości, zarejestruj się nowości i uzyskać pomoc.

W tym artykule będziemy budować i zwiększenia bot zrozumieć uczucia nowości, dlatego nasz bot będzie mógł wykryć, czy news ma pozytywny lub negatywny sentyment.

Intents (Intencje)

Nasz bot będzie miał cztery intencje, mianowicie, SearchNewsAskHelpRegister None.

Wszystkie aplikacje LUIS mają intencję None utworzoną domyślnie. Intencja ta reprezentuje dowolny tekst, którego bot nie może zinterpretować.

Następnie kliknij na intencje na pulpicie nawigacyjnym i wybierz "Dodaj intencję", aby dodać cztery opcje.

Definiowanie wypowiedzi i podmiotów

Dla każdego z zamiarów teraz musimy dodać wypowiedzi i podmioty. Kliknij na każdy z zamiarów (intencji) i rozpocznij dodawanie wypowiedzi.

W poniższym przykładzie dodamy wypowiedź "Co słychać w Mauritius?".

Teraz pytanie jest, jak będzie bot zidentyfikować, jakiego słowa musi szukać? To własnie są podmioty!

Następnie od wypowiedzi, wybieramy słowo news, który reprezentuje jednostkę. Musimy zrobić to samo dla kilku wypowiedzi, który będzie używany do szkolić modelu.

W poniższym przykładzie słowo Mauritius jest podmiotBot będzie wiedział, że musi szukać wiadomości na temat Mauritius.

Musimy dodać kilka więcej przykładów podmioty , takie, że LUIS ma wystarczająco dużo materiałów do nauki. Dodajmy inne przykłady jak poniżej.

Teraz, musimy również być w stanie tożsamość dobra i zła wiadomość. Jak bot będzie wiedział, jakie słowa do identyfikowania dobre i złe wieści. W tym celu musimy również szkolić naszych bot dodając wypowiedzi odwołujące się do dobry i złe wiadomości.

Następnym krokiem jest, aby dodać wypowiedzi i jednostki dla innych zamiarów , takich jak rejestr dla wiadomości lub poprosić o pomoc.

Szkolenie modelu

Następnym krokiem jest szkolić modelu. Aby to zrobić, z menu po lewej stronie kliknij na pociąg & Test i kliknij na pociąg.

Na tym etapie LUIS będzie uczyć się od wszystkich informacji, że weszły i teraz powinno być możliwe do zidentyfikowania podmiotów i zamiarów dla nowych zdań.

Testowanie aplikacji

Gdy model jest szkolony, można teraz wpisz w przykładowe zdania i zobacz, jeśli znajdzie intencji i podmioty poprawnie.

Zgodnie z oczekiwaniami, kiedy mamy wejście nowych zdań, LUIS poprawnie identyfikowane przez intencji podmioty.

Gdy to zrobisz, kliknij na publikowanie i być w stanie wywołać aplikację LUIS z Bot.

Konfiguracja LuisDialog

Teraz, że LUIS service jest skonfigurowana, teraz musimy dodać t w bot projektu, aby móc rozpoznać każdy zamiarów użytkownika.

Teraz co to jest, gdy użytkownika wprowadzania tekstu, zostanie być wysłany do modelu LUIS do identyfikowania każdego intencji i ich jednostek.

Aby kontynuować, należy utworzyć nową klasę RootDialog , która implementuje obiektu LusDialog i specjalizuje się w obsłudze podmiotów z LUIS i zamiarów

[Serializable]
[LuisModel("LUIS APP ID""SUBSCRIPTION KEY")]
public class RootDialog : LuisDialog< object>
{
  
}

Trzeba również dodać klucze LUIS App Id i klucz subskrypcji jak powyżej. Oba mogą być pobierane w karcie Publikuj modelu LUIS.

Teraz nadszedł czas do mapowania kodu w się bot LUIS zamiarów. Aby to zrobić, musimy dodać określone funkcje w klasie RootDialog i dekoracji każdej funkcji o nazwie zamiarem w modelu LUIS. 

Kontynuować te same kroki dla wszystkich innych zamiarów, również, zawsze tworzyć "none" konwersji dla przypadków LUIS modelu nie może mapować wypowiedź żadnych zamiarów.

[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
  
[LuisIntent("AskHelp")]
public async Task Help(IDialogContext context, LuisResult result)
  
[LuisIntent("Register")]
public async Task Subscribe(IDialogContext context, LuisResult result)

Zobaczmy, jak zachowują się boty. Jak uruchomić program i zadawania boty pytań dotyczących zamiarów, widać, że bot osiągną teraz kod zgodnie z zamiarem i podmiotów.

Wniosek

W tym artykule pokazano, jak korzystać z LUIS, aby dodać funkcje języka do bota. Jak wspomniano, z Microsoft Cognitive Services jest bardzo łatwo dodać "inteligencję", do aplikacji. W następnym artykule omówimy, jak możemy wykorzystać Bing News API, aby bot pobierał wiadomości z Internetu po wydaniu polecenia w zwykłym angielskim.

Zobacz też

1. Podstawy Microsoft Bot: Budowanie inteligentnego bota (część 1)
2. Kickstart To Microsoft Cognitive Service In Azure Portal
3. Understanding Microsoft Cognitive Services
4. Universal Windows Platform Apps: Microsoft Cognitive Services (Project Oxford)


Referencje

Understanding Natural Language - LUIS