Przetwarzanie języka naturalnego w akcji - Helion
Tłumaczenie: Witold Sikorski, Małgorzata Dąbkowska-Kowalik, Wojciech Frenrich
ISBN: 9788301217211
stron: 600, Format: ebook
Data wydania: 2021-03-04
Księgarnia: Helion
Cena książki: 103,20 zł (poprzednio: 129,00 zł)
Oszczędzasz: 20% (-25,80 zł)
Przetwarzanie języka naturalnego w akcji autorstwa Hobsona Lanea, Hannesa Maxa Hapke i Colea 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.
Osoby które kupowały "Przetwarzanie języka naturalnego w akcji", wybierały także:
- Data Science w Pythonie. Kurs video. Przetwarzanie i analiza danych 149,00 zł, (67,05 zł -55%)
- Machine Learning i język Python. Kurs video. Praktyczne wykorzystanie popularnych bibliotek 243,59 zł, (112,05 zł -54%)
- Matematyka w deep learningu. Co musisz wiedzie 89,00 zł, (44,50 zł -50%)
- Dylemat sztucznej inteligencji. 7 zasad odpowiedzialnego tworzenia technologii 54,90 zł, (27,45 zł -50%)
- Eksploracja danych za pomoc 67,00 zł, (33,50 zł -50%)
Spis treści
Przetwarzanie języka naturalnego w akcji eBook -- spis treści
- Okładka
- Strona tytułowa
- Strona redakcyjna
- Spis treści
- wprowadzenie
- wstęp
- podziękowania
- o książce
- o autorach
- o ilustracji na okładce
- Część 1. Mówiące maszyny
- 1. Pakiety myśli (przegląd NLP)
- 1.1. Język naturalny a język programowania
- 1.2. Magia
- 1.2.1. Maszyny prowadzące konwersację
- 1.2.2. Matematyka
- 1.3. Zastosowania praktyczne
- 1.4. Język widziany oczyma komputera
- 1.4.1. Język zamków
- 1.4.2. Wyrażenia regularne
- 1.4.3. Prosty chatbot
- 1.4.4. Inny sposób
- 1.5. Krótkie spojrzenie na hiperprzestrzeń
- 1.6. Kolejność słów i gramatyka
- 1.7. Potok języka naturalnego chatbota
- 1.8. Szczegóły przetwarzania
- 1.9. IQ języka naturalnego
- 2. Zbuduj swój słownik (tokenizacja słów)
- 2.1. Wyzwania (wprowadzenie do stemmingu)
- 2.2. Tworzenie swojego słownika za pomocą tokenizatora
- 2.2.1. Iloczyn skalarny
- 2.2.2. Pomiar nakładania się wektorów BoW
- 2.2.3. Poprawianie tokenów
- Jak działają wyrażenia regularne
- Poprawione wyrażenia regularne do podziału słów
- Formy skrócone
- 2.2.4. Rozszerzenie słownika za pomocą n-gramów
- N-gramy
- Stop listy
- 2.2.5. Normalizacja słownika
- Ujednolicanie wielkości liter
- Stemming
- Lematyzacja
- Przypadki użycia
- 2.3. Wydźwięk
- 2.3.1. VADER analizator wydźwięku oparty na regułach
- 2.3.2. Naiwny klasyfikator bayesowski
- 3. Matematyka na słowach (wektory TD-IDF)
- 3.1. Wektor BoW
- 3.2. Wektoryzacja
- 3.2.1. Przestrzenie wektorowe
- 3.3. Prawo Zipfa
- 3.4. Modelowanie tematyczne
- 3.4.1. Powrót Zipfa
- 3.4.2. Ranking trafności
- 3.4.3. Narzędzia
- 3.4.4. Inne możliwości
- 3.4.5. Okapi BM25
- 3.4.6. Co dalej
- 4. Odnajdowanie znaczenia w licznikach słów (analiza semantyczna)
- 4.1. Od liczników słów do wyników dla tematów
- 4.1.1. Wektory TF-IDF i lematyzacja
- 4.1.2. Wektory tematyczne
- 4.1.3. Eksperyment myślowy
- 4.1.4. Algorytm do oceny tematów
- Kuzyni LSA
- 4.1.5. Klasyfikator LDA
- Inny kuzyn
- 4.2. Analiza utajonych własności semantycznych (LSA)
- 4.2.1. Wasz eksperyment myślowy staje się prawdziwy
- Gra w Mad libs
- 4.2.1. Wasz eksperyment myślowy staje się prawdziwy
- 4.3. Rozkład według wartości osobliwej
- 4.3.1. U lewostronne wektory osobliwe
- 4.3.2. S wartości osobliwe
- 4.3.3. V T prawostronne wektory osobliwe
- 4.3.4. Orientacja macierzy SVD
- 4.3.5. Obcinanie tematów
- 4.4. Analiza głównych składowych
- 4.4.1. PCA dla wektorów 3D
- 4.4.2. Przestańmy szaleć i wróćmy do NLP
- 4.4.3. Stosowanie PCA do semantycznej analizy komunikatów SMS
- 4.4.4. Używanie obciętego SVD do analizy semantycznej komunikatu SMS
- 4.4.5. Jak dobrze działa LSA przy klasyfikacji spamu
- Rozszerzenia LSA i SVD
- 4.5. Ukryta alokacja Dirichleta (LDiA)
- 4.5.1. Idea LDiA
- 4.5.2. Model tematyczny LDiA dla komunikatów SMS
- 4.5.3. LDiA + LDA = klasyfikator spamu
- 4.5.4. Uczciwsze porównanie: 32 tematy LDiA
- 4.6. Odległość i podobieństwo
- 4.7. Sterowanie za pomocą informacji zwrotnej
- 4.7.1. Liniowa analiza dyskryminacyjna
- 4.8. Moc wektorów tematycznych
- 4.8.1. Wyszukiwanie semantyczne
- 4.8.2. Ulepszenia
- 4.1. Od liczników słów do wyników dla tematów
- 1. Pakiety myśli (przegląd NLP)
- Część 2. Głębsze uczenie się (sieci neuronowe)
- 5. Sieci neuronowe krok po kroku (perceptrony i propagacja wsteczna)
- 5.1. Sieci neuronowe lista składników
- 5.1.1. Perceptron
- 5.1.2. Perceptron numeryczny
- 5.1.3. Zboczenie z drogi spowodowane odchyleniem
- Neuron w Pythonie
- Klasa tkwi w sesji
- Uczenie się logiki to czysta frajda
- Następny krok
- Koniec drugiej zimy sztucznej inteligencji
- Propagacja wsteczna
- Zróżniczkujmy wszystko
- 5.1.4. Poszusujmy powierzchnia błędu
- 5.1.5. Z wyciągu prosto na stok
- 5.1.6. Udoskonalmy to nieco
- 5.1.7. Keras: sieci neuronowe w Pythonie
- 5.1.8. Wprzód i w głąb
- 5.1.9. Normalizacja: stylowe wejście
- 5.1. Sieci neuronowe lista składników
- 6. Wnioskowanie przy użyciu wektorów słów (Word2vec)
- 6.1. Zapytania semantyczne i analogie
- 6.1.1. Pytania o analogię
- 6.2. Wektory słów
- 6.2.1. Wnioskowanie zorientowane wektorowo
- Jeszcze więcej powodów, by korzystać z wektorów słów
- 6.2.2. Jak obliczać reprezentacje Word2vec
- Podejście skip-gram
- Czym jest softmax?
- W jaki sposób sieć uczy się reprezentacji wektorowej?
- Odnajdywanie wektorów słów za pomocą algebry liniowej
- Podejście z ciągłym BoW
- Skip-gram a CBoW. Kiedy korzystać z którego podejścia?
- Triki obliczeniowe Word2vec
- Częste bigramy
- Podpróbkowanie często występujących tokenów
- Próbkowanie negatywne
- 6.2.3. Jak korzystać z modułu gensim.word2vec
- 6.2.4. Jak wygenerować własne reprezentacje wektorów słów
- Kroki przetwarzania wstępnego
- Szkolenie dziedzinowego modelu Word2vec
- 6.2.5. Word2vec a GloVe (Global Vectors)
- 6.2.6. fastText
- Jak korzystać z gotowych modeli fastText
- 6.2.7. Word2vec a LSA
- 6.2.8. Wizualizacja związków między słowami
- 6.2.9. Nienaturalne słowa
- 6.2.10. Doc2vec i podobieństwo dokumentów
- Jak wyuczyć wektory dokumentów
- 6.2.1. Wnioskowanie zorientowane wektorowo
- 6.1. Zapytania semantyczne i analogie
- 7. Kolejność słów i konwolucyjne sieci neuronowe (CNN)
- 7.1. Uczenie się znaczenia
- 7.2. Zestaw narzędzi
- 7.3. Konwolucyjne sieci neuronowe
- 7.3.1. Elementy składowe
- 7.3.2. Długość kroku
- 7.3.3. Budowa filtra
- 7.3.4. Uzupełnianie
- Potok konwolucyjny
- 7.3.5. Uczenie
- 7.4. Zaiste, wąskie okna
- 7.4.1. Implementacja w Kerasie: przygotowanie danych
- 7.4.2. Architektura konwolucyjnej sieci neuronowej
- 7.4.3. Warstwa łącząca (pooling)
- 7.4.4. Dropout
- 7.4.5. Wisienka na torcie
- Optymalizacja
- Dopasowanie (fit)
- 7.4.6. Czas zabrać się za naukę (trening)
- 7.4.7. Użycie modelu w potoku
- 7.4.8. Gdzie pójdziecie dalej?
- 8. Zapętlone (rekurencyjne) sieci neuronowe (RNN)
- 8.1. Zapamiętywanie za pomocą sieci rekurencyjnych
- 8.1.1. Propagacja wsteczna przez czas
- Tl;Dr Krótka rekapitulacja
- 8.1.2. Kiedy i co aktualizować?
- Czy jednak obchodzi was to, co wyszło z wcześniejszych kroków?
- 8.1.3. Rekapitulacja
- 8.1.4. Zawsze jest jakiś haczyk
- 8.1.5. Rekurencyjne sieci neuronowe z Kerasem
- 8.1.1. Propagacja wsteczna przez czas
- 8.2. Składanie w całość
- 8.3. Nauczmy się czegoś o przeszłości
- 8.4. Hiperparametry
- 8.5. Przewidywanie
- 8.5.1. Stanowość
- 8.5.2. Ulica dwukierunkowa
- 8.5.3. Co to takiego?
- 8.1. Zapamiętywanie za pomocą sieci rekurencyjnych
- 9. Lepsza pamięć dzięki sieciom LSTM
- 9.1. LSTM
- 9.1.1. Propagacja wsteczna przez czas
- W praktyce
- 9.1.2. Próba ognia
- 9.1.3. Brudne dane
- 9.1.4. Powrót do brudnych danych
- 9.1.5. Słowa są trudne. Litery są prostsze
- 9.1.6. Kolej na rozmowę
- 9.1.7. Zwrot ku klarownej mowie
- 9.1.8. Jak mówić i co mówić
- 9.1.9. Inne rodzaje pamięci
- 9.1.10. Idąc głębiej
- 9.1.1. Propagacja wsteczna przez czas
- 9.1. LSTM
- 10. Modele ciąg-ciąg i uwaga (attention)
- 10.1. Architektura koder-dekoder
- 10.1.1. Dekodowanie myśli
- 10.1.2. Wygląda znajomo?
- 10.1.3. Konwersacja ciąg-ciąg
- 10.1.4. Powtórzenie LSTM
- 10.2. Składanie potoku ciąg-ciąg
- 10.2.1. Przygotowanie naszego zbioru danych do szkolenia ciąg-ciąg
- 10.2.2. Model ciąg-ciąg w Kerasie
- 10.2.3. Koder ciągów
- 10.2.4. Dekoder myśli
- 10.2.5. Składanie sieci ciąg-ciąg
- 10.3. Szkolenie sieci ciąg-ciąg
- 10.3.1. Generowanie ciągów wyjściowych
- 10.4. Budowanie chatbota przy użyciu sieci ciąg-ciąg
- 10.4.1. Przygotowanie korpusu do szkolenia
- 10.4.2. Budowanie słownika znaków
- 10.4.3. Generowanie zbiorów treningowych zakodowanych metodą 1 z n
- 10.4.4. Uczenie chatbota ciąg-ciąg
- 10.4.5. Składanie modelu do generowania ciągów
- 10.4.6. Przewidywanie ciągu
- 10.4.7. Generowanie odpowiedzi
- 10.4.8. Rozmowa z waszym chatbotem
- 10.5. Ulepszenia
- 10.5.1. Redukcja złożoności treningu za pomocą sortowania danych (bucketing)
- 10.5.2. Uwaga (attention)
- 10.6. W świecie rzeczywistym
- 10.1. Architektura koder-dekoder
- 5. Sieci neuronowe krok po kroku (perceptrony i propagacja wsteczna)
- Część 3. Przejście do rzeczywistości (prawdziwe problemy NLP)
- 11. Ekstrakcja informacji (rozpoznawanie jednostek nazewniczych i odpowiadanie na pytania)
- 11.1. Jednostki nazewnicze i relacje
- 11.1.1. Baza wiedzy
- 11.1.2. Ekstrakcja informacji
- 11.2. Regularne wzorce
- 11.2.1. Wyrażenia regularne
- 11.2.2. Ekstrakcja informacji jako ekstrakcja cech z wykorzystaniem uczenia się maszyn
- 11.3. Informacje warte wyodrębnienia
- 11.3.1. Ekstrakcja lokalizacji GPS
- 11.3.2. Ekstrakcja dat
- 11.4. Ekstrakcja relacji
- 11.4.1. Znakowanie częściami mowy
- 11.4.2. Normalizacja jednostek nazewniczych
- 11.4.3. Normalizacja i ekstrakcja relacji
- 11.4.4. Wzorce słów
- 11.4.5. Segmentacja
- Segmentacja na zdania
- 11.4.6. Dlaczego split(.!?') nie będzie działać?
- 11.4.7. Segmentacja na zdania za pomocą wyrażeń regularnych
- 11.5. W prawdziwym świecie
- 11.1. Jednostki nazewnicze i relacje
- 12. Pogaduszki (silniki dialogowe)
- 12.1. Umiejętności językowe
- 12.1.1. Nowoczesne podejścia
- Systemy dialogowe odpowiadające na pytania
- Wirtualni asystenci
- Chatboty konwersacyjne
- Chatboty marketingowe
- Zarządzanie społecznością
- Obsługa klienta
- Terapia
- 12.1.2. Podejście hybrydowe
- 12.1.1. Nowoczesne podejścia
- 12.2. Podejście polegające na dopasowaniu do wzorców
- 12.2.1. Chatbot oparty na dopasowaniu do wzorca i AIML
- AIML 1.0
- Interpreter AIML w Pythonie
- 12.2.2. Sieciowe spojrzenie na dopasowanie do wzorców
- 12.2.1. Chatbot oparty na dopasowaniu do wzorca i AIML
- 12.3. Oparcie na wiedzy
- 12.4. Wyszukiwanie
- 12.4.1. Problem kontekstu
- 12.4.2. Przykładowy chatbot oparty na wyszukiwaniu danych
- 12.4.3. Chatbot oparty na wyszukiwaniu
- 12.5. Modele generatywne
- 12.5.1. Czat na temat NLPIA
- 12.5.2. Zalety i wady każdego podejścia
- 12.6. Napęd na cztery koła
- 12.6.1. Will osiąga sukces
- Instalowanie Willa
- Hello WILL
- 12.6.1. Will osiąga sukces
- 12.7. Proces projektowania
- 12.8. Sztuczki
- 12.8.1. Zadawanie pytań z przewidywalnymi odpowiedziami
- 12.8.2. Bycie zabawnym
- 12.8.3. Gdy wszystko inne zawiedzie, trzeba wyszukać
- 12.8.4. Bycie popularnym
- 12.8.5. Być łącznikiem
- 12.8.6. Stawanie się emocjonalnym
- 12.9. W świecie rzeczywistym
- 12.1. Umiejętności językowe
- 13. Skalowanie (optymalizacja, zrównoleglanie i przetwarzanie wsadowe)
- 13.1. Zbyt wiele dobrego (danych)
- 13.2. Optymalizowanie algorytmów NLP
- 13.2.1. Indeksowanie
- 13.2.2. Zaawansowane indeksowanie
- 13.2.3. Zaawansowane indeksowanie za pomocą Annoy
- 13.2.4. Po co w ogóle stosować indeksy przybliżone?
- 13.2.5. Obejście indeksowania: dyskretyzacja
- 13.3. Algorytmy ze stałą pamięcią RAM
- 13.3.1. Gensim
- 13.3.2. Obliczenia graficzne
- 13.4. Zrównoleglanie waszych obliczeń NLP
- 13.4.1. Trenowanie modeli NLP na procesorach graficznych (GPU)
- 13.4.2. Wynajem a kupno
- 13.4.3. Opcje wynajmu GPU
- 13.4.4. Jednostki przetwarzania tensorowego
- 13.5. Zmniejszanie zużycia pamięci podczas trenowania modeli
- 13.6. Uzyskiwanie wglądu w model za pomocą TensorBoard
- 13.6.1. Jak wizualizować zanurzenia słów
- 11. Ekstrakcja informacji (rozpoznawanie jednostek nazewniczych i odpowiadanie na pytania)
- dodatek A. Nasze narzędzia NLP
- dodatek B. Swawolny Python i wyrażenia regularne
- dodatek C. Wektory i macierze (podstawy algebry liniowej)
- dodatek D. Narzędzia i techniki uczenia się maszyn
- dodatek E. Ustawianie własnego AWS GPU
- dodatek F. Mieszanie wrażliwe na lokalizację (LSH)
- źródła
- słownik
- posłowie do wydania polskiego
- przypisy