Przetwarzanie języka naturalnego w akcji - ebook
Przetwarzanie języka naturalnego w akcji - ebook
Przetwarzanie języka naturalnego w akcji autorstwa Hobsona Lane’a, Hannesa Maxa Hapke i Cole’a Howarda to przewodnik po tworzeniu maszyn, które potrafią czytać i interpretować ludzki język. Użyjecie w nim łatwo dostępnych pakietów Pythona, aby wychwycić znaczenie tekstu i odpowiednio zareagować. Książka poszerza tradycyjne podejścia do przetwarzania języka naturalnego (Natural Language Processing, NLP) o sieci neuronowe, nowoczesne algorytmy głębokiego uczenia się i techniki generatywne w miarę rozwiązywania rzeczywistych problemów, takich jak wyodrębnianie dat i nazwisk, komponowanie tekstu i odpowiadanie na pytania w swobodnej formie.
Niektóre zdania tej książki zostały napisane przez NLP! Czy potraficie odgadnąć które?
W książce :
• Praca z Keras, TensorFlow, gensim i scikit-learn
• NLP oparte na regułach i danych
• Skalowalne potoki
Polskie wydanie zostało wzbogacone o dodatkowy rozdział, który omawia przetwarzanie języka naturalnego na podstawie języka polskiego, autorstwa dr Łukasza Kobylińskiego i Ryszarda Tuory.
Kategoria: | Informatyka |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-01-21721-1 |
Rozmiar pliku: | 7,5 MB |
FRAGMENT KSIĄŻKI
Po raz pierwszy spotkałem Hannesa w roku 2006, gdy zaczęliśmy studia podyplomowe na tym samym wydziale. Stał się szybko znany ze swojej pracy związanej z wykorzystaniem połączenia uczenia się maszyn z elektrotechniką, a w szczególności ze względu na duże zaangażowanie w pozytywne przyjęcie tego na świecie. Podczas całej jego kariery zaangażowanie to kierowało każdą firmą, w której pracował, i każdym projektem, z którym miał styczność, a to dzięki podążaniu za wewnętrznym kompasem powiązanym z firmą Hobson and Cole, która dzieliła z nim pasję do projektów o silnym, pozytywnym wpływie.
Gdy miałem napisać to wprowadzenie, właśnie ta pasja do zastosowania uczenia się maszyn była tym, co mnie ostatecznie przekonało. Moja osobista podróż po badaniach nad uczeniem się maszyn była także kierowana przez silne pragnienie, aby mieć pozytywny wpływ na świat. Moja ścieżka doprowadziła mnie od tworzenia algorytmów do modelowania danych ekologicznych z różną rozdzielczością, do modelowania rozmieszczenia gatunków w celu optymalizacji ich ochrony i badań. Od tego czasu byłem zdecydowany kontynuować pracę w obszarach, w których mogę poprawić życie i oczekiwania.
Wielka władza niesie ze sobą wielką odpowiedzialność
Wolter?
Niezależnie od tego, czy przypiszemy te słowa Wolterowi czy wujkowi Benowi, są one dziś bardzo prawdziwe, choć w dzisiejszych czasach ujmujemy to nieco inaczej, mówiąc „Wielki dostęp do danych niesie ze sobą wielką odpowiedzialność”. Ufamy firmom posiadającym nasze dane w nadziei, że zostaną one wykorzystane do poprawy naszego życia. Pozwalamy na skanowanie naszych e-maili, aby pomóc nam w tworzeniu listów poprawnych gramatycznie, fragmenty naszego codziennego życia w mediach społecznościowych są analizowane i używane do wstawiania reklam do naszych informacji. Nasze telefony i domy odpowiadają na nasze słowa, czasem nawet zanim cokolwiek do nich powiemy. Nawet nasze preferencje dotyczące wiadomości są monitowane, aby nasze zainteresowania, opinie i wiara nie były pogwałcone. Co znajduje się w sercu tych technologii?
Odpowiedzią jest przetwarzanie języka naturalnego. W tej książce poznacie zarówno teorię, jak i umiejętności praktyczne potrzebne, aby wyjść poza proste zrozumienie wewnętrznego działania tych systemów i zacząć tworzenie własnych algorytmów lub modeli. Podstawowe koncepcje informatyki są bezboleśnie przekładane na solidne podstawy podejścia i praktyki, których należy przestrzegać. Zabierając czytelników w prostą i dobrze opisaną podróż przez podstawowe metodologie przetwarzania języka naturalnego, autorzy zaczynają od wypróbowanych metod, jak TF-IDF, zanim przejdą do płytkiego, ale głębokiego (tak, to mój żart) zanurzenia się w sieci neuronowe dla NLP.
Język jest podstawą, na której zbudowaliśmy nasze wspólne poczucie człowieczeństwa. Przekazujemy sobie nie tylko fakty, ale i emocje. Poprzez język nabywamy wiedzę spoza obszaru naszych rzeczywistych doświadczeń i budujemy zrozumienie poprzez dzielenie się tymi doświadczeniami. Mamy możliwość rozwijania solidnego zrozumienia, a nie tylko mechanizmów NLP, a także możliwość tworzenia wpływowych systemów, które pewnego dnia mogą zrozumieć ludzkość poprzez nasz język. Technika NLP ma wielki potencjał do niewłaściwego użycia, lecz ma również potencjał dla dobra. Przez dzielenie się swoją wiedzą za pośrednictwem tej książki autorzy mają nadzieję na wskazanie nam jaśniejszej przyszłości.
Dr. Arwen Griffioen
Starszy analityk danych
RESEARCH ZENDESKO KSIĄŻCE
Przetwarzanie języka naturalnego w akcji to praktyczny przewodnik po przetwarzaniu i generowaniu tekstu w języku naturalnym w realnym świecie. W książce tej dajemy wam wszystkie narzędzia i techniki potrzebne do zbudowania backendowych systemów NLP do obsługi wirtualnego asystenta (chatbota/agenta dialogowego), filtra spamu, moderatora forum, systemu do analizy wydźwięku, generatora baz wiedzy, analizatora tekstów języka naturalnego i każdego innego zastosowania NLP, jakie możecie sobie wyobrazić.
Książka ta jest skierowana do deweloperów Pythona, od średnio zaawansowanych do zaawansowanych. Dla czytelników, którzy już umieją projektować i tworzyć złożone systemy, książka także będzie przydatna, gdyż daje wiele przykładów dobrych praktyk oraz wgląd w możliwości najnowszych algorytmów NLP. Wiedza na temat programowania obiektowego w Pythonie będzie przydatna do budowy lepszych systemów, ale nie jest wymagana przy nauce z tej książki.
W przypadku specjalnych tematów podajemy odpowiednią ilość materiału pomocniczego i cytujemy zasoby (tekstowe i online) dla tych, którzy chcą szczegółowo się z nimi zapoznać.
Plan działania
Osoby nieznające Pythona i przetwarzania języka naturalnego powinny najpierw przeczytać część 1, a potem dowolne rozdziały z części 3, które związane są z ich zainteresowaniami lub wyzwaniami w pracy. Jeśli chcecie przyśpieszyć zdobywanie nowych możliwości NLP, na które pozwala deep learning, będziecie chcieli przeczytać po kolei część 2. Buduje ona zrozumienie sieci neuronowych, przyrostowo zwiększając złożoność i możliwości sieci neuronowych.
Gdy znajdziecie rozdział lub część z fragmentem programu, który możecie „uruchomić w głowie”, powinniście wykonać go na swoim komputerze. A jeśli jakieś przykłady wyglądają, jakby można je było zastosować w swoich dokumentach, powinniście wstawić ten tekst do CSV lub do pliku tekstowego (jeden dokument w wierszu) w katalogu nlpia/src/nlpia/data/. Wtedy możecie użyć funkcji nlpia.data.loaders.get_data() do uzyskania tych danych i wykonania przykładów na swoich danych.
O książce
Rozdziały z części 1 dotyczą logistyki pracy z językiem naturalnym i przekształcania go w liczby, które można wyszukiwać i obliczać. To „tworzenie bloków i chwytanie” słów daje nagrodę w postaci zadziwiająco użytecznych aplikacji, jak wyszukiwanie informacji i analiza wydźwięku. Gdy już dobrze opanujecie podstawy, okaże się, że już przy użyciu prostej arytmetyki wykonywanej w pętli można rozwiązać niektóre dość skomplikowane problemy, jak filtrowanie spamu. Filtry spamu, które zbudujecie w rozdziałach od 2 do 4, są tym, co ocaliło globalny system e-mailowy przed anarchią i stagnacją. Dowiecie się, jak tworzyć filtry spamu o dokładności ponad 90% za pomocą technologii z ery lat dziewięćdziesiątych – obliczając jedynie liczbę słów i proste średnie tych liczb.
Cała ta matematyka dotycząca słów może wydawać się uciążliwa, ale w istocie to dość dobra zabawa. Bardzo szybko będziecie budować algorytmy, które będą mogły podejmować decyzje dotyczące języka naturalnego tak samo dobrze lub lepiej niż my sami (a na pewno dużo szybciej). Może to być pierwszy raz w waszym życiu, gdy będziecie mieli perspektywę, aby ocenić w pełni sposób, w jaki słowa odzwierciedlają i wzmacniają wasze myślenie. Spojrzenie na słowa i myśli przez perspektywę wielowymiarowej przestrzeni wektorowej pozostawi nasz mózg w ruchu w rekurencyjnych pętlach samo-odkrywania.
Tempo nauki może osiągnąć najwyższy punkt w połowie książki. Rdzeniem książki w części 2 jest poznawanie skomplikowanej sieci obliczeń i komunikacji z sieciami neuronowymi. Sieciowy efekt małych jednostek logicznych w interakcji z siecią „myślenia” dał maszynom moc rozwiązywania problemów, którymi w przeszłości zajmowali się tylko ludzie, obejmując takie elementy jak pytania o analogie, streszczanie tekstu i tłumaczenia między językami naturalnymi.
W miarę nauki poznacie wektory słów, ale bez obaw, o wiele więcej. Będziecie w stanie dokonać wizualizacji słów, dokumentów i zdań w chmurze powiązanych pojęć, rozciągającej się znacznie poza trzy wymiary, które jesteśmy gotowi ogarnąć. Zaczniecie myśleć o dokumentach i słowach jak o postaciach w grze Dungeons and Dragons, z miriadą losowo wybranych charakterystyk i zdolności, które wyewoluowały i urosły z biegiem czasu, lecz tylko w naszych głowach.
Docenienie tego wielotematycznego świata słów i ich znaczenia stanie się podstawą do coup-de-grace z części 3, gdzie nauczycie się, jak budować maszyny, które prowadzą konwersację i odpowiadają na pytania tak samo dobrze jak ludzie.
O kodzie
Książka zawiera wiele przykładów kodu źródłowego zarówno w ponumerowanych listingach, jak i w wierszach normalnego tekstu. W obu przypadkach kod jest zapisany czcionką o stałej szerokości (jak ta) i oddzielony od reszty tekstu. Czasami kod jest także pogrubiony, aby podkreślić zmiany w stosunku do poprzednich kroków w rozdziale, jak w przypadku dodania nowej funkcji w istniejącym wierszu kodu.
W wielu przypadkach oryginalny kod źródłowy został przeformatowany. Przełamaliśmy wiersze i dodaliśmy wcięcia, aby dostosować do dostępnej szerokości kolumny. W rzadkich przypadkach nawet to nie wystarczyło i listingi zawierają znaczniki kontynuacji kodu (→). Ponadto w przypadkach, gdy kod jest opisany w tekście, komentarze z kodu źródłowego zostały usunięte z listingów. Wielu listingom towarzyszą adnotacje kodu, aby uwypuklić ważne pojęcia.
Kod źródłowy wszystkich listingów z tej książki jest dostępny do pobrania z witryny wydawnictwa Manning pod adresem https://www.manning.com/books/natural-language-processingin-action oraz na GitHub pod adresem https://github.com/totalgood/nlpia.
Forum dyskusyjne liveBook
Zakupienie tej książki obejmuje bezpłatny dostęp do prywatnego forum sieciowego prowadzonego przez Manning Publications, gdzie możecie komentować książkę, zadawać pytania techniczne i otrzymać pomoc od autorów i innych użytkowników. Aby mieć dostęp do forum, trzeba wejść na stronę https://livebook.manning.com/#!/book/natural-languageprocessing-in-action/discussion. Więcej o forum Manninga i obowiązujących tam zasadach można się dowiedzieć na stronie https://livebook.manning.com/#!/discussion.
Manning zobowiązuje się zapewnić czytelnikom forum, na którym może mieć miejsce sensowny dialog między czytelnikami oraz między czytelnikami a autorami. Nie jest to zobowiązanie do konkretnego stopnia zaangażowania ze strony autorów, których udział w forum jest dobrowolny (i bezpłatny). Sugerujemy, aby zadawać autorom trudne pytania, co przyciągnie ich uwagę! Forum i archiwa zawierające wcześniejsze dyskusje są dostępne na witrynie wydawcy od chwili wydrukowania tej książki.O AUTORACH
HOBSON LANE ma 20 lat doświadczenia w tworzeniu systemów autonomicznych, które podejmują ważne decyzje w imieniu ludzi. W firmie Talentpair Hobson uczył maszyny czytać i rozumieć informacje o karierze z mniejszym uwarunkowaniem niż większość rekruterów. W firmie Aira pomagał w budowie ich pierwszego chatbota do interpretacji świata wizualnego dla osób niewidzących. Hobson pasjonuje się sztuczną inteligencją otwartą i prospołeczną. Aktywnie uczestniczy w projektach open source takich jak Keras, scikit-learn, PyBrain, PUGNLP i ChatterBot. Obecnie prowadzi badania w projektach otwartej nauki i edukacji dla Total Good obejmujących tworzenie asystenta poznawczego open source. Opublikował artykuły i miał wykłady na konferencjach AIAA, PyCon, PAIS i IEEE. Uzyskał też kilka patentów w dziedzinie robotyki i automatyzacji.
HANNES MAX HAPKE jest inżynierem elektrykiem, który zmienił się w inżyniera uczenia się maszyn. Zafascynowały go sieci neuronowe, gdy był w liceum, gdzie analizował sposoby tworzenia sieci neuronowych z mikrokontrolerów. Na studiach stosował koncepcje sieci neuronowych do efektywnego sterowania elektrowniami wykorzystującymi energię odnawialną. Hannes uwielbia automatyzować tworzenie oprogramowania oraz potoki wykorzystujące uczenie się maszyn. Jest współautorem modeli uczenia głębokiego i potoków stosowanych w rekrutacji, energetyce i ochronie zdrowia. Hannes mówił o uczeniu się maszyn na różnych konferencjach, w tym na OSCON, Open Source Bridge i Hack University.
COLE HOWARD to inżynier z dziedziny uczenia się maszyn, praktyk NLP i pisarz. Będąc całe życie łowcą wzorców, znalazł swój prawdziwy dom w świecie sztucznych sieci neuronowych. Opracował wielkoskalowe silniki rekomendacji dla e-handlu i nowoczesne wysokowymiarowe sieci neuronowe dla systemów inteligentnych maszyn (sieci neuronowe wykorzystujące głębokie uczenie się), które uzyskują wyniki na najwyższym poziomie w konkursach Kaggle. Miał prezentacje na temat konwolucyjnych i rekurencyjnych sieci neuronowych oraz ich roli w przetwarzaniu języka naturalnego na konferencji Open Source Bridge i na Hack University.O ILUSTRACJI NA OKŁADCE
Obraz na okładce książki ma podpis „Kobieta z Kranjska Gora w Słowenii”. Ilustracja pochodzi z nowego przedruku Balthasara Hacqueta Images and Descriptions of Southwestern and Eastern Wends, Illyrians, and Slavs, opublikowanego przez Ethnographic Museum w Splicie w Chorwacji w 2008 roku. Hacquet (1739–1815) był austriackim lekarzem i uczonym, który spędził wiele lat, badając botanikę, geologię i etnografię Alp Julijskich, łańcucha górskiego, który rozciąga się od północnowschodnich Włoch do Słowenii, a ich nazwa pochodzi od Juliusza Cezara. Ręcznie wykonane ilustracje towarzyszą wielu pracom naukowym i książkom opublikowanym przez Hacqueta.
Bogata różnorodność rysunków w publikacjach Hacqueta żywo mówi o niepowtarzalności i indywidualności wschodnich regionów alpejskich sprzed jedynie 200 lat. Były to czasy, w których sposób ubioru dwóch wiosek odległych od siebie o kilka kilometrów identyfikowało jednoznacznie ludzi pochodzących z jednej lub drugiej, a ludzie należący do klasy społecznej lub zawodu mogli być rozpoznani przez swój strój. Od tego czasu sposób ubierania się zmienił, a ówczesna różnorodność regionu zanikła. Teraz często odróżnić mieszkańca jednego kontynentu od drugiego, a mieszkańców malowniczych miast i wiosek Alp słoweńskich trudno odróżnić od mieszkańców innych części Słowenii lub reszty Europy. W wydawnictwie Manning cenimy inwencję, inicjatywę i radość biznesu komputerowego za pomocą okładek opartych na bogatej różnorodności życia w regionach dwa wieki temu, przywracanych do życia przez obrazy z jego kolekcji.CZĘŚĆ 1
MÓWIĄCE MASZYNY
W części 1 rozpoczynacie przygodę z przetwarzaniem języka naturalnego (NLP) od wprowadzenia w niektóre rzeczywiste zastosowania.
W rozdziale 1 zaczniecie szybko myśleć o tym, w jaki sposób można w swoim życiu wykorzystać maszyny, które przetwarzającą teksty. I mam nadzieję, że poczujecie magię – siłę maszyn, które mogą czerpać informacje ze słów z dokumentu w języku naturalnym. Słowa są podstawą każdego języka, niezależnie od tego, czy są to słowa kluczowe w języku programowania, czy słowa języka naturalnego, które poznaliśmy w dzieciństwie.
W rozdziale 2 dajemy wam narzędzia potrzebne, aby nauczyć maszyny, jak wyodrębniać słowa z dokumentów. To większe zadanie niż można by sądzić, a my pokazujemy tu wszystkie sztuczki. Dowiecie się, jak automatycznie grupować słowa języka naturalnego w grupy słów o podobnym znaczeniu bez konieczności ręcznego tworzenia listy synonimów.
W rozdziale 3 liczymy te słowa i składamy je w wektory, które reprezentują znaczenie dokumentu. Można użyć tych wektorów do reprezentowania znaczenia całego dokumentu niezależnie od tego, czy jest to tweet złożony ze 140 znaków, czy 500-stronicowa powieść.
W rozdziale 4 poznacie kilka sprawdzonych sztuczek matematycznych służących do kompresji wektorów w znacznie bardziej użyteczne wektory tematyczne.
Pod koniec części 1 będziecie mieć narzędzia do wielu ciekawych zastosowań NLP – od wyszukiwania semantycznego do chatbotów.