Chatbot z Pytonem : Znakowanie części mowy

https://szkolazpieklarodem.pl/

Znakowanie części mowy (Part-of-speech POS) to proces, podczas którego czytasz jakiś tekst i przypisujesz części mowy do każdego słowa lub symbolu, takiego jak rzeczownik, czasownik, przymiotnik itp. Znakowanie POS staje się niezwykle ważne, gdy chcesz zidentyfikować jakiś podmiot w danym zdaniu. Pierwszym krokiem jest wykonanie tagowania POS i sprawdzenie, co zawiera nasz tekst. Zajmijmy się kilkoma przykładami prawdziwego tagowania POS.

Przykład 1:

nlp = spacy.load(‘en’) #Loads the spacy en model into a python object

doc = nlp(u’I am learning how to build chatbots’) #Creates a doc object

for token in doc:

print(token.text, token.pos_) #prints the text and POS

Dane wyjściowe:

(‘I’, ‘PRON’)

(‘am’, ‘VERB’)

(‘learning’, ‘VERB’)

(‘how’, ‘ADV’)

(‘to’, ‘PART’)

(‘build’, ‘VERB’)

(‘chatbots’, ‘NOUN’)

Przykład 2:

doc = nlp(u’I am going to London next week for a meeting.’)

for token in doc:

print(token.text, token.pos_)

Dane wyjściowe:

(‘I’, ‘PRON’)

(‘am’, ‘VERB’)

(‘going’, ‘VERB’)

(‘to’, ‘ADP’)

(‘London’, ‘PROPN’)

(‘next’, ‘ADJ’)

(‘week’, ‘NOUN’)

(‘for’, ‘ADP’)

(‘a’, ‘DET’)

(‘meeting’, ‘NOUN’)

(‘.’, ‘PUNCT’)

Jak widzimy, drukując tokeny ze zwróconego obiektu Doc z metody nlp, która jest kontenerem umożliwiającym dostęp do adnotacji, otrzymujemy POS otagowany każdym ze słów w zdaniu. Te znaczniki to właściwości należące do słowa, które określają, że słowo jest użyte w poprawnym gramatycznie zdaniu. Możemy używać tych znaczników jako funkcji słów w filtrowaniu informacji itp. spróbujmy wziąć inny przykład, w którym próbujemy zbadać różne atrybuty tokena pochodzącego z obiektu Doc.

Przykład 3:

doc = nlp(u’Google release “Move Mirror” AI experiment that matches your

pose from 80,000 images’)

for token in doc:

print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,

token.shape_, token.is_alpha, token.is_stop)

Dane wyjściowe:

Przykład 4:

doc = nlp(u’I am learning how to build chatbots’)

for token in doc:

print(token.text, token.lemma_, token.pos_, token.tag_, token.dep_,

token.shape_, token.is_alpha, token.is_stop)

Dane wyjściowe:

Zapoznaj się z poniższą tabelą, aby poznać znaczenie każdego atrybutu, który wydrukowaliśmy w kodzie.

TEXT: Rzeczywisty tekst lub przetwarzane słowo

LEMMA: Rdzeń przetwarzanego słowa

POS: Część mowy słowa

TAG: wyrażają część mowy (np. CZASOWNIK) i pewną ilość informacji morfologicznych (np., że czasownik jest w czasie przeszłym).

DEP: Zależność syntaktyczna (tj. relacja między tokenami)

SHAPE : kształt słowa (np. wielkość liter, znaki interpunkcyjne, format cyfr)

ALPHA: Czy token jest znakiem alfa?

Stop: Czy słowo jest słowem stop, czy częścią listy stop?

Możesz zapoznać się z poniższą tabelą, aby zrozumieć, co oznaczają poszczególne wartości atrybutów POS obiektu tokena. Ta lista zawiera szczegółowy opis znaczników części mowy przypisanych przez modele spaCy.

POZ: OPIS: PRZYKŁADY

ADJ: przymiotnik: duży, stary, zielony, niezrozumiały, pierwszy

ADP: przyimek: w, do, podczas

ADV: przysłówek: bardzo, jutro, w dół, gdzie, tam

AUX: pomocniczy: jest, zrobił (zrobił), będzie (zrobi), powinien (zrobić)

CONJ: spójnik: i, lub, ale

CCONJ: spójnik koordynujący: i, lub, ale

DET: wyznacznik: a, an, the

INTJ: wykrzyknik: psst, ouch, brawo, cześć

NOUN.: rzeczownik: dziewczyna, kot, drzewo, powietrze, piękno

NUM: cyfra: 1, 2017, jeden, siedemdziesiąt siedem, IV, MMXIV

PART: cząstka: „s, nie,

PRON: zaimek: ja, ty, on, ona, ja, oni sami, ktoś

PROPN: rzeczownik własny: Mary, John, London, NATO, HBO

PUNCT: interpunkcja: ., (, ), ?

SCONJ: spójnik podrzędny: jeśli, podczas gdy, to

SYM: symbol: $, %, §, ©, +, −, ×, ÷, =, :), ½

VERB: czasownik: biegać, biegać, biegać, jeść, jeść, jeść

X: inne: sfpksdpsxmsa

SPACE: przestrzeń

Dlaczego więc tagowanie POS jest potrzebne w przypadku chatbotów? Odpowiedź: aby zmniejszyć złożoność zrozumienia tekstu, którego nie można wytrenować lub który jest przeszkolony z mniejszą pewnością. Dzięki tagowaniu POS możemy zidentyfikować części wprowadzanego tekstu i dopasować ciągi tylko dla tych części. Na przykład, jeśli chcesz sprawdzić, czy w zdaniu istnieje lokalizacja, znacznik POS oznaczy słowo lokalizacji jako RZECZOWNIK, dzięki czemu będziesz mógł pobrać wszystkie RZECZOWNIKI z listy oznaczonych i sprawdzić, czy jest to jedna z lokalizacji z wstępnie ustawionej listy albo nie.

Per-āa : Koniec pokoju Szeszonka

https://szkolazpieklarodem.pl/

Pomimo najlepszych wysiłków Shehonq I, by rządzić zjednoczonym Egiptem i utrzymać militarną sprawność narodu egipskiego, koniec 22. dynastii spowodował niepokoje i podziały narodowe. Chociaż kapłaństwo Amona znajdowało się teraz pod kontrolą północnego króla dzięki powiązaniom rodzinnym, pod koniec dynastii wysokie kapłaństwo doświadczyło luki w sukcesji, która doprowadziła do wojny domowej trwającej ponad dekadę. Po zakończeniu tej wojny domowej pokój trwał krótko z dalszymi powstaniami i działaniami wojennymi, które spowodowały nie tylko dywizje północ-południe, ale nawet wschodnie – centralne podziały w Delcie między wodzami Leontopolis (centralny) i Tanis (wschód). Harmonia panowania Szeszonka Powoli popadałem w chaos

Chatbot z Pytonem : Podstawowe metody NLP do budowania chatbotów

https://szkolazpieklarodem.pl/

Bardzo ważne jest, aby znać podstawy, aby być w czymś ekspertem i robić to skutecznie i wydajnie. Aby zbudować chatboty, musimy znać podstawowe metody NLP. Metody te pomagają nam podzielić dane wejściowe na kawałki i nadać im sens. W następnej sekcji nauczymy się niektórych z najczęściej używanych metod NLP, które nie tylko pomogą Ci być dobrym w NLP, ale także będą dobre w budowaniu fajnych chatbotów. Im lepiej i efektywniej przetworzymy wprowadzany tekst, tym lepiej będziemy mogli odpowiedzieć użytkownikowi.

Per-āa : Krótko jednocząc dwie ziemie: Szeszonk I

https://szkolazpieklarodem.pl/

Po 21. dynastii Tanis nastąpiła 22. dynastia (945-745 p.n.e.), której członkowie również rządzili z Tanis, ale uważa się, że są pochodzenia libijskiego. Pierwszym królem tego okresu jest Szeszonk I (945-924 p.n.e.), który legitymizował swoje roszczenia do tronu poślubiając córkę Psusennesa II, ostatniego króla XXI dynastii. Szeszonk wydaje się być libijskim wodzem – konkretnie przywódcą Meshwesh, libijskiego plemienia nomadów. Szeszonk posiadał tytuły wojskowe i przyjął królewskie tytuły Smendesa, który rządził ponad 100 lat wcześniej. Te tytuły dały mu trochę kopa do tronu. Chociaż był Libijczykiem, Szeszonk I ponownie zjednoczył podzielony Egipt i skutecznie rządził zarówno Górnym, jak i Dolnym Egiptem, co było szczególnie ważne, aby został uznany za prawdziwego króla Egiptu. Udało mu się przejąć kontrolę nad południem Egiptu, ponieważ jego syn posiadał tytuł arcykapłana Amona, jednocząc tron ​​północny i kapłaństwo południowe.

Chatbot z Pytonem : Czym są modele SpaCy?

https://szkolazpieklarodem.pl/

Modele SpaCy działają tak samo jak wszystkie inne modele uczenia maszynowego lub głębokiego uczenia się. Model to wynik algorytmu lub, powiedzmy, obiekt tworzony po przeszkoleniu danych przy użyciu algorytmu uczenia maszynowego. spaCy ma wiele takich modeli, które można umieścić bezpośrednio w naszym programie, pobierając go tak samo, jak każdy inny pakiet Pythona. Teraz zainstalujemy modele spaCy jako pakiety Pythona. Aby to zrobić, uruchomimy w notatniku następujące polecenie, korzystając z magicznego polecenia notatnika. Przez prefiks! [Operator wykrzyknika] przed poleceniem powłoki możemy uruchamiać polecenia powłoki również z notesów Jupyter. Zobaczmy jak to wygląda.

!python3 -m spacy download en

Podczas używania Jupyter Notebook do pobierania modeli spaCy dla Pythona 3 może wystąpić problem z uprawnieniami. Przejdź do terminala i uruchom następujące polecenie:

sudo python3 –m download en

Patrz rysunek w celach informacyjnych.

Jak widać na rysunku, spaCy próbuje pobrać niektóre podstawowe pliki i zainstalować je jako pakiety Pythona.

Notatka : ! [Operator wykrzyknika] działa tylko wJupyter Notebookr. Aby zainstalować modele spaCy bezpośrednio z terminala, musisz usunąć ! [Operator wykrzyknika]; w przeciwnym razie spowoduje to błąd.

Per-āa : Rządzący na północy: królowie Tanis

https://szkolazpieklarodem.pl/

Podczas gdy arcykapłani Amona rządzili na południu Egiptu, północą rządził Smendes (1069–1043 p.n.e), człowiek o dość niejasnym pochodzeniu. Rządził z miejsca Tanis we wschodniej Delcie (patrz mapa Ściągawka), zbudowanego z pozostałości miasta Ramzesa II w Pi-Ramzes. Smendes legitymizował swoje roszczenia do tronu poślubiając córkę Ramzesa XI. Za Smendesem na tronie zasiadł Psusennes I (1039-991 pne), który pozwolił swojej córce poślubić arcykapłana Amona Menchepere. Związek ten wskazuje na dobre stosunki między władcami północnymi i południowymi. Ta generalnie pozytywna relacja między północą a południem utrzymywała się przez resztę trzeciego okresu pośredniego i do pewnego stopnia również w późnym okresie. Dynastia Tanis, znana jako 21. dynastia, przetrwała około 350 lat, prosperując w tym czasie, poprawiając handel i gospodarkę – nawet jeśli tylko mieszkańcy północnej części kraju odnieśli korzyści. Cmentarz królów Tanis został odkryty w 1939 roku i zawierał jedyny nietknięty pochówek królewski w Egipcie. (Nawet grób Tutanchamona został okradziony w starożytności co najmniej dwa razy.) Artefakty w tych grobowcach były imponujące, ale nie zyskały uznania, na jakie zasługiwały, ponieważ media były związane z informacją o II wojnie światowej. Ciekawe odkrycia obejmowały:

* Zespół pogrzebowy Psusennesa I. Mumia Psusennesa zawierała złotą maskę pośmiertną i solidną srebrną trumnę antropoidalną (w kształcie człowieka). Przedmioty te zostały umieszczone w sarkofagu, który był pierwotnie używany przez Merenptaha, syna Ramzesa II, co pokazuje, że handel między północą a południem Egiptu był aktywny, mimo że północą i południem rządzili różni królowie.

* Trumna Szeszonka I. Trumna Szeszonka jest piękna i niepowtarzalna – srebrne pudełko w kształcie sokoła. W rzeczywistości srebro było cenniejsze niż złoto, ponieważ nie pochodziło z Egiptu. Użycie srebra podkreśla bogactwo dynastii Tanis i wskazuje na silne relacje handlowe.

Chatbot z Pytonem : Instalacja i wymagania wstępne

https://szkolazpieklarodem.pl/

Zanim zagłębimy się w spaCy i fragmenty kodu, upewnij się, że masz zainstalowany Python w swoim systemie operacyjnym. Jeżeli nie, patrz [1]. Możesz używać dowolnej wersji Pythona, z którą czujesz się komfortowo. Większość współczesnych systemów ma preinstalowaną domyślną wersję Pythona 2.7.x. W tym rozdziale będziemy używać języka Python 3. Jeśli więc chcesz używać Pythona 3, zainstaluj Pythona 3 w swoim systemie operacyjnym, pobierając go ze strony https://www.python.org/downloads/. Jeśli masz już zainstalowany Python 2, możesz go również użyć; może, ale nie musi, wymagać drobnych zmian w kodzie. Zainstalujemy spaCy przez pip. Zamierzamy skorzystać ze środowiska wirtualnego i zainstalować spaCy w katalogu użytkownika

Jeśli korzystasz z systemu macOS/OSX/Linux, wykonaj następujące kroki:

Krok 1: python3 -m pip install -U virtualenv

Krok 2: virtualenv venv -p /usr/local/bin/python3 #Upewnij się, że używasz własnej ścieżki systemu operacyjnego dla pliku wykonywalnego Pythona 3.

Krok 3: źródło venv/bin/aktywuj

Krok 4: instalacja pip3 -U spacy # Będziemy używać spaCy w wersji 2.0.11.

Ostatni krok może zająć trochę czasu, więc poczekaj cierpliwie.

Jeśli korzystasz z systemu Windows, po prostu zmień krok 3 na venv\Scripts\activate

Teraz zainstalujemy Jupyter Notebook w naszym wirtualnym środowisku, które aktywowaliśmy w kroku 3. Korzystanie z Jupyter Notebook jest znacznie łatwiejsze i bardziej produktywne niż standardowy interpreter Pythona. W nadchodzących częściach będziemy wykonywać wszystkie fragmenty w Jupyter Notebook. Aby zainstalować Jupyter Notebook, uruchom następującą komendę pip:

pip3 install jupyter

To polecenie zainstaluje Jupyter Notebook w twoim systemie.

W tym momencie powinieneś mieć zainstalowane spaCy i Jupyter Notebook w swoim wirtualnym środowisku. Sprawdźmy, czy wszystko zostało pomyślnie zainstalowane.

  1. Przejdź do interfejsu wiersza poleceń i wpisz następujące polecenie. Powinieneś zobaczyć uruchamianie serwera i otwieranie adresu URL w domyślnej przeglądarce.

$ jupyter notebook

Domyślny adres URL to http://localhost:8888/tree. Powinno to wyglądać mniej więcej tak, jak na rysunku .

  1. Kliknij Nowy, jak pokazano na rysunku , i wybierz Python 3. Otworzy się nowa karta w Twojej aktualnej przeglądarce i utworzy dla Ciebie nowy notatnik, w którym możesz bawić się kodem Pythona. Możesz wykonać dowolny kod Pythona, importować biblioteki, wykresy i komórki przeceny.
  2. Wpisz import spaCy i uruchom komórkę, klikając przycisk „Uruchom” lub naciskając Shift + Enter. Powinno to wyglądać mniej więcej tak jak na rysunku

Jeśli w kroku 3 nie zostaną wyświetlone żadne komunikaty o błędach, oznacza to, że pomyślnie zainstalowałeś moduł spaCy w swoim systemie. Powinieneś zobaczyć zainstalowaną wersję spaCy w swoim notatniku. Jeśli chcesz zainstalować tę samą wersję spaCy, możesz określić wersję podczas instalacji spaCy za pomocą pip.

pip3 install –U spacy==2.0.11

Per-āa : Herihor staje się za duży na buty

https://szkolazpieklarodem.pl/

Ramzes XI utrzymywał dobre stosunki z kapłaństwem Amona i nadał Herihorowi tytuły wojskowe, które wcześniej posiadał wygnany Panehsy. Był to ogromny błąd, ponieważ po raz pierwszy jeden człowiek posiadał tytuły religijne i wojskowe, czyniąc Herihora potężniejszym od Ramzesa. Herihor wykorzystał sytuację i przejął rolę króla za życia biednego Ramzesa XI. Dla Ramzesa musiało być jasne, że Herihor tylko czekał, aż umrze, by dokończyć transakcję. Bez wątpienia patrzył na plecy, na wszelki wypadek. Chociaż Herihor zmarł, zanim mógł zostać prawdziwym królem, przyjął kartusz (patrz rozdział 11) i przekazał swoją wzniosłą pozycję swojemu zięciowi Piankhy, który również rządził u boku Ramzesa w ten sam sposób. Kiedy Ramzes XI ostatecznie zmarł w 1070 pne, cztery lata po rozpoczęciu panowania Pianchy, Pianchy nadal rządził Tebami jako samodzielny król, aczkolwiek tylko przez kilka miesięcy. Pomimo tego nowego wyniesienia kapłanów Amona ich władza nie wykraczała poza region tebański – prawdopodobnie z powodu braku zainteresowania ze strony kapłanów.

Chatbot z Pytonem : Funkcje spaCy

https://szkolazpieklarodem.pl/

Żadna inna biblioteka NLP nie zapewnia tak szerokiego zakresu interfejsów API, które umożliwiają wykonanie niemal wszystkiego, a właśnie to robi spaCy. Najlepsze w tej bibliotece jest to, że stale się rozwija i staje się coraz lepsza. Rzućmy okiem na funkcje spaCy wymienione na ich oficjalnej stronie internetowej [https://spacy.io/].

  • Nieniszcząca tokenizacja
  • Rozpoznawanie nazwanych podmiotów
  • Wsparcie dla ponad 28 języków
  • 13 modeli statystycznych dla 8 języków
  • Wstępnie przeszkolone wektory słów
  • Łatwa integracja głębokiego uczenia się
  • Znakowanie części mowy
  • Analizowanie zależności oznaczonych etykietami
  • Segmentacja zdań oparta na składni
  • Wbudowane wizualizatory składni i NER
  • Wygodne mapowanie string-hash
  • Eksportuj do numpy tablic danych
  • Efektywna serializacja binarna
  • Łatwe pakowanie i wdrażanie modeli
  • Najnowocześniejsza prędkość
  • Solidna, rygorystycznie oceniana dokładność

Teraz zagłębmy się w ten niesamowity moduł NLP w Pythonie: spaCy.

Per-āa : Dzielenie dwóch krain: Ramzesa XI i Po

https://szkolazpieklarodem.pl/

Upadek imperium egipskiego rozpoczął się we wczesnych latach panowania Ramzesa XI (1098-1070 p.n.e.). Władza króla powoli malała, głównie z powodu problemów ekonomicznych. Kapłani Amona zdobywali władzę i bogactwo. (Jak na ironię, król przyczynił się do tego wzrostu władzy poprzez liczne dary, ofiary i prace budowlane w świątyni Karnak w Luksorze). W końcu kapłani posiadali prawie taką samą władzę jak Ramzes XI; król miał kontrolę nad armią – różnica, która utrzymywała go o krok do przodu. Problemy pojawiły się, gdy namiestnik Nubii Panehsy wdał się w konflikt z arcykapłanem Amona Amenhotepem. Panehsy miał przewagę przez dziewięć miesięcy, uniemożliwiając arcykapłanowi pełnienie obowiązków religijnych. Amenhotep w końcu zwrócił się o pomoc do Ramzesa XI. Jako bardzo religijny król Ramzes walczył przeciwko Panehsy. Panehsy został ostatecznie wygnany do Nubii, a Amenhotep został przywrócony na stanowisko arcykapłana i pozostał na tym stanowisku przez kilka lat, zanim Herihor zastąpił go.