Chatbot z Pytonem : Wizualizacja i modyfikacja formatu danych JSON firmy Rasa

https://szkolazpieklarodem.pl/

W tej sekcji wykorzystamy narzędzie o nazwie Rasa NLU trainer do wizualizacji naszych danych. (tj. dane, które stworzyliśmy do tej pory). To narzędzie pomaga nam również w opisywania danych. Jeśli pamiętasz, kiedy interfejs Dialogflow został wyjaśniony w rozdziale 3, zdefiniowanie jednostek, ich nazw i typów było niezwykle łatwe. Zrobimy to samo, korzystając z narzędzia typu open source. Trener Rasa NLU to bardzo ładne i przydatne narzędzie do edycji naszych danych treningowych bezpośrednio z poziomu naszej przeglądarki. Obsługa danych JSON jest trudna i może prowadzić do błędów. Dzięki temu poręcznemu narzędziu możemy łatwo dodać więcej przykładów do naszych danych treningowych lub edytować już istniejące. Oszczędza to dużo czasu na ręcznym dodawaniu adnotacji do danych. rasa-nlu-trainer jest narzędziem opartym na JavaScript, więc musielibyśmy zainstalować node.js, aby uruchomić to narzędzie w naszym systemie. Wykonanie tej czynności nie zajmie więcej niż 5 minut. Skonfigurujmy to, wykonując następujące kroki:

  1. Przejdź do https://www.npmjs.com/get-npm i pobierz plik node.js.
  2. Zainstaluj pakiet w swoim systemie zgodnie z instrukcjami na stronie internetowej. Po zainstalowaniu przejdź do nowego terminala/interfejsu wiersza poleceń w swoim systemie i wpisz „npm”, aby sprawdzić, czy działa. Zainstalowałem wersję LTS 8.11.4. Po zainstalowaniu uruchom następującą komendę, aby zainstalować rasa-nlu-trainer:

sudo npm i -g rasa-nlu-trainer

Po pomyślnej instalacji tego polecenia zobaczysz dzienniki podobne do następujących:

[fsevents] Success: “/usr/local/lib/node_modules/rasa-nlu-trainer/

node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node” already installed

Pass –update-binary to reinstall or –build-from-source to recompile

npm WARN slick-carousel@1.8.1 requires a peer of jquery@>=1.8.0 but none is installed. You must install peer dependencies yourself.

+ rasa-nlu-trainer@0.2.7

added 492 packages in 10.14s

Nawet jeśli Twoja wiadomość nie wygląda tak, o ile nie powoduje żadnych błędów, nie martw się. Za chwilę dowiemy się, czy nasz rasa-nlu-trainer został pomyślnie zainstalowany i działa dobrze. Przejdźmy do naszego folderu danych, który utworzyliśmy wcześniej w naszym terminalu i uruchommy następującą komendę:

train rasa-nlu

Wpisanie tego polecenia uruchomi lokalny serwer na porcie 55703 i otworzy go w domyślnej przeglądarce. Będzie to wyglądać mniej więcej tak, jak na rysunku

Jak widać, wszystkie nasze istniejące dane z pliku data.json są wybierane przez to niesamowite narzędzie do usunięcia lub edycji. Z tego miejsca możemy także dodawać nowe przykłady i będziemy stale rozszerzać plik data.json. Sugerowałbym dodanie większej ilości danych do swoich zamiarów w celu lepszego szkolenia modelu. Możesz pobrać ten plik data.json w kodzie źródłowym ZIP lub w repozytorium dostarczonym przez wydawcę, jeśli próbujesz zbudować tego samego chatbota, co opisano w tym rozdziale. Tak jak w Rozdziale 3 wybraliśmy encje w wyrażeniach, aby je zdefiniować przy użyciu Dialogflow, możemy zrobić to samo za pomocą tego narzędzia i nadać nazwy naszym encjam do późniejszej analizy. Zatem kliknij przycisk przełączania przykładu, wybierz tekst i dodaj obiekt, nadając mu nazwę. Dodałem od pięciu do sześciu przykładów wypowiedzi w każdej ze zdefiniowanych przeze mnie intencji. Im więcej przykładów dodamy, tym lepiej będzie można wytrenować model i zapewnić większą dokładność. Jeśli teraz spojrzysz na plik data.json, automatycznie dodanych zostanie do niego więcej przykładów. Zatem śmiało zweryfikuj plik data.json, aby sprawdzić, czy masz wszystkie dodane przykłady z interfejsu użytkownika rasa-nlu-trainer.

W pliku data.json zauważysz także, że encje, które mogłeś zdefiniować za pomocą interfejsu użytkownika rasa-nlu-trainer, są przechwytywane na liście common_examples jako posiadające klucze początku i końca, które informują model, w którym momencie dana wartość encji zaczyna się w przykładzie i kiedy się kończy. Ten sam obiekt słownika przedstawia także wartość encji i nazwę zdefiniowanej przez nas encji. W naszym przykładzie wygląda to następująco:

{

“text”: “19-01”,

“intent”: “dob_intent”,

“entities”: [

{

“start”: 0,

“end”: 2,

“value”: “19”,

“entity”: “DD”

},

{

“start”: 3,

“end”: 5,

“value”: “01”,

“entity”: “MM”

}

]

}

Per-āa : Skąd wziąłem ten pachołek drogowy?

https://szkolazpieklarodem.pl/

Większość ludzi w pewnym momencie wypiła kilka drinków za dużo na przyjęciu bożonarodzeniowym lub noworocznym i ma luki w pamięci tego, co się wydarzyło. Udowodnienie, że nic nie jest nowe, pewien facet z dziewiętnastej dynastii Deir el Medina prawdopodobnie miał więcej niż przeciętny problem ze wspomnieniami. Paneb miał reputację kobieciarza, przestępcy i pijaka. Na podstawie serii oskarżeń prawnych napisanych przez jednego z jego wrogów historycy mogą wypełnić dla niego niektóre luki związane z alkoholem. Pewnego razu po kilku piwach z przyjaciółmi Paneb wdał się w kłótnię ze swoim starszym adoptowanym ojcem Neferhotepem, który zakończył się pogonią Paneba za domem Neferhotepa:

Zarzut dotyczący biegania za… Neferhotepem, chociaż to on go wychował. I on [Neferhotep] zamknął przed nim swoje drzwi, a on [Paneb] wziął kamień i wyłamał mu drzwi. I sprawili, że mężczyźni pilnowali Neferhotepa, ponieważ [Paneb] powiedział: „Zabiję go w nocy”.

Raporty wskazują również, że Paneb przeraził wielu swoich współpracowników na budowie królewskich grobów. Pod koniec długiego dnia, gdy pusty sarkofag właśnie włożono do grobowca, Paneb upił się i usiadł na nim, śpiewając. Chociaż bez wątpienia zachęcali go jego koledzy, działania Paneba byłyby postrzegane jako najgorsze świętokradztwo. Gdyby tylko jego pieśń była znana! Może trochę o wyścigach rydwanów?