Przetwarzanie języka naturalnego w akcji

Ebook Przetwarzanie języka naturalnego w akcji Hobson Lane, Cole Howard, Hannes Hapke

Hobson Lane, Cole Howard, Hannes Hapke
114,17 zł
Dodaj do ulubionych

Opis treści

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.

Spis treści ebooka Przetwarzanie języka naturalnego w akcji

wprowadzenie xvii
wstęp xiv
podziękowania xxvi
o książce xxiv
o autorach xxxii
o ilustracji na okładce xxxiv
CZĘŚĆ 1 MÓWIĄCE MASZYNY 1
1. Pakiety myśli (przegląd NLP) 3
1.1. Język naturalny a język programowania 4
1.2. Magia 4
1.2.1. Maszyny prowadzące konwersację 5
1.2.2. Matematyka 6
1.3. Zastosowania praktyczne 8
1.4. Język widziany „oczyma” komputera 10
1.4.1. Język zamków 10
1.4.2. Wyrażenia regularne 11
1.4.3. Prosty chatbot 13
1.4.4. Inny sposób 16
1.5. Krótkie spojrzenie na hiperprzestrzeń 20
1.6. Kolejność słów i gramatyka 22
1.7. Potok języka naturalnego chatbota 23
1.8. Szczegóły przetwarzania 26
1.9. IQ języka naturalnego 28
2. Zbuduj swój słownik (tokenizacja słów) 32
2.1. Wyzwania (wprowadzenie do stemmingu) 34
2.2. Tworzenie swojego słownika za pomocą tokenizatora 35
2.2.1. Iloczyn skalarny 44
2.2.2. Pomiar nakładania się wektorów BoW 44
2.2.3. Poprawianie tokenów 45
Jak działają wyrażenia regularne 46
Poprawione wyrażenia regularne do podziału słów 47
Formy skrócone 50
2.2.4. Rozszerzenie słownika za pomocą n-gramów 50
N-gramy 51
Stop listy 54
2.2.5. Normalizacja słownika 57
Ujednolicanie wielkości liter 57
Stemming 59
Lematyzacja 62
Przypadki użycia 64
2.3. Wydźwięk 65
2.3.1. VADER – analizator wydźwięku oparty na regułach 67
2.3.2. Naiwny klasyfikator bayesowski 68
3. Matematyka na słowach (wektory TD-IDF) 73
3.1. Wektor BoW 74
3.2. Wektoryzacja 79
3.2.1. Przestrzenie wektorowe 82
3.3. Prawo Zipfa 87
3.4. Modelowanie tematyczne 89
3.4.1. Powrót Zipfa 92
3.4.2. Ranking trafności 94
3.4.3. Narzędzia 96
3.4.4. Inne możliwości 97
3.4.5. Okapi BM25 98
3.4.6. Co dalej 99
4. Odnajdowanie znaczenia w licznikach słów (analiza semantyczna) 101
4.1. Od liczników słów do wyników dla tematów 103
4.1.1. Wektory TF-IDF i lematyzacja 103
4.1.2. Wektory tematyczne 104
4.1.3. Eksperyment myślowy 105
4.1.4. Algorytm do oceny tematów 110
„Kuzyni” LSA 111
4.1.5. Klasyfikator LDA 111
Inny „kuzyn” 115
4.2. Analiza utajonych własności semantycznych (LSA) 116
4.2.1. Wasz eksperyment myślowy staje się prawdziwy 118
Gra w Mad libs 119
4.3. Rozkład według wartości osobliwej 121
4.3.1. U – lewostronne wektory osobliwe 123
4.3.2. S – wartości osobliwe 124
4.3.3. V T – prawostronne wektory osobliwe 125
4.3.4. Orientacja macierzy SVD 126
4.3.5. Obcinanie tematów 127
4.4. Analiza głównych składowych 128
4.4.1. PCA dla wektorów 3D 130
4.4.2. Przestańmy szaleć i wróćmy do NLP 131
4.4.3. Stosowanie PCA do semantycznej analizy komunikatów SMS 134
4.4.4. Używanie obciętego SVD do analizy semantycznej komunikatu SMS 136
4.4.5. Jak dobrze działa LSA przy klasyfikacji spamu 137
Rozszerzenia LSA i SVD 139
4.5. Ukryta alokacja Dirichleta (LDiA) 140
4.5.1. Idea LDiA 141
4.5.2. Model tematyczny LDiA dla komunikatów SMS 143
4.5.3. LDiA + LDA = klasyfikator spamu 146
4.5.4. Uczciwsze porównanie: 32 tematy LDiA 148
4.6. Odległość i podobieństwo 149
4.7. Sterowanie za pomocą informacji zwrotnej 152
4.7.1. Liniowa analiza dyskryminacyjna 153
4.8. Moc wektorów tematycznych 155
4.8.1. Wyszukiwanie semantyczne 156
4.8.2. Ulepszenia 159
CZĘŚĆ 2 GŁĘBSZE UCZENIE SIĘ (SIECI NEURONOWE) 161
5. Sieci neuronowe krok po kroku (perceptrony i propagacja wsteczna) 163
5.1. Sieci neuronowe – lista składników 164
5.1.1. Perceptron 165
5.1.2. Perceptron numeryczny 165
5.1.3. Zboczenie z drogi spowodowane odchyleniem 166
Neuron w Pythonie 168
Klasa tkwi w sesji 169
Uczenie się logiki to czysta frajda 170
Następny krok 172
Koniec drugiej zimy sztucznej inteligencji 175
Propagacja wsteczna 176
Zróżniczkujmy wszystko 179
5.1.4. Poszusujmy – powierzchnia błędu 181
5.1.5. Z wyciągu prosto na stok 182
5.1.6. Udoskonalmy to nieco 182
5.1.7. Keras: sieci neuronowe w Pythonie 184
5.1.8. Wprzód i w głąb 187
5.1.9. Normalizacja: stylowe wejście 188
6. Wnioskowanie przy użyciu wektorów słów (Word2vec) 190
6.1. Zapytania semantyczne i analogie 191
6.1.1. Pytania o analogię 192
6.2. Wektory słów 193
6.2.1. Wnioskowanie zorientowane wektorowo 197
Jeszcze więcej powodów, by korzystać z wektorów słów 199
6.2.2. Jak obliczać reprezentacje Word2vec 200
Podejście skip-gram 201
Czym jest softmax? 202
W jaki sposób sieć uczy się reprezentacji wektorowej? 203
Odnajdywanie wektorów słów za pomocą algebry liniowej 205
Podejście CBoW 205
Skip-gram a CBoW. Kiedy korzystać z którego podejścia? 207
Triki obliczeniowe Word2vec 207
Częste bigramy 207
Podpróbkowanie często występujących tokenów 208
Próbkowanie negatywne 209
6.2.3. Jak korzystać z modułu gensim.word2vec 209
6.2.4. Jak wygenerować własne reprezentacje wektorów słów 212
Kroki przetwarzania wstępnego 212
Szkolenie dziedzinowego modelu Word2vec 213
6.2.5. Word2vec a GloVe (Global Vectors) 214
6.2.6. fastText 215
Jak korzystać z gotowych modeli fastText 216
6.2.7. Word2vec a LSA 216
6.2.8. Wizualizacja związków między słowami 217
6.2.9. Nienaturalne słowa 224
6.2.10. Doc2vec i podobieństwo dokumentów 225
Jak wyuczyć wektory dokumentów 226
7. Kolejność słów i konwolucyjne sieci neuronowe (CNN) 228
7.1. Uczenie się znaczenia 230
7.2. Zestaw narzędzi 232
7.3. Konwolucyjne sieci neuronowe 233
7.3.1. Elementy składowe 233
7.3.2. Długość kroku 235
7.3.3. Budowa filtra 235
7.3.4. Uzupełnianie 237
Potok konwolucyjny 238
7.3.5. Uczenie 238
7.4. Zaiste, wąskie okna 239
7.4.1. Implementacja w Kerasie: przygotowanie danych 240
7.4.2. Architektura konwolucyjnej sieci neuronowej. 247
7.4.3. Warstwa łącząca (pooling) 247
7.4.4. Dropout 250
7.4.5. Wisienka na torcie 251
Optymalizacja 252
Dopasowanie (fit) 252
7.4.6. Czas zabrać się za naukę (trening) 253
7.4.7. Użycie modelu w potoku 255
7.4.8. Gdzie pójdziecie dalej? 256
8. Zapętlone (rekurencyjne) sieci neuronowe (RNN) 259
8.1. Zapamiętywanie za pomocą sieci rekurencyjnych 262
8.1.1. Propagacja wsteczna przez czas 267
Tl,Dr – Krótka rekapitulacja 269
8.1.2. Kiedy i co aktualizować? 269
Czy jednak obchodzi was to, co wyszło z wcześniejszych kroków? 270
8.1.3. Rekapitulacja 271
8.1.4. Zawsze jest jakiś haczyk 272
8.1.5. Rekurencyjne sieci neuronowe z Kerasem 272
8.2. Składanie w całość 277
8.3. Nauczmy się czegoś o przeszłości 279
8.4. Hiperparametry 279
8.5. Przewidywanie 283
8.5.1. Stanowość 284
8.5.2. Ulica dwukierunkowa 284
8.5.3. Co to takiego? 286
9. Lepsza pamięć dzięki sieciom LSTM 288
9.1. LSTM 290
9.1.1. Propagacja wsteczna przez czas 299
W praktyce 299
9.1.2. Próba ognia 301
9.1.3. Brudne dane 303
9.1.4. Powrót do brudnych danych 306
9.1.5. Słowa są trudne. Litery są prostsze 307
9.1.6. Kolej na rozmowę 312
9.1.7. Zwrot ku klarownej mowie 314
Zwiększanie użyteczności generatora 322
9.1.8. Jak mówić i co mówić 322
9.1.9. Inne rodzaje pamięci 322
9.1.10. Idąc głębiej 323
10. Modele ciąg-ciąg i uwaga (attention) 326
10.1. Architektura koder-dekoder 327
10.1.1. Dekodowanie myśli 328
10.1.2. Wygląda znajomo? 330
10.1.3. Konwersacja ciąg-ciąg 332
10.1.4. Powtórzenie LSTM 332
10.2. Składanie potoku ciąg-ciąg 334
10.2.1. Przygotowanie naszego zbioru danych do szkolenia ciąg-ciąg 334
10.2.2. Model ciąg-ciąg w Kerasie 335
10.2.3. Koder ciągów 336
10.2.4. Koder myśli 337
10.2.5. Składanie sieci ciąg-ciąg 338
10.3. Szkolenie sieci ciąg-ciąg 339
10.3.1. Generowanie ciągów wyjściowych 340
10.4. Budowanie chatbota przy użyciu sieci ciąg-ciąg 341
10.4.1. Przygotowanie korpusu do szkolenia 342
10.4.2. Budowanie słownika znaków 343
10.4.3. Generowanie zbiorów treningowych zakodowanych metodą 1 z n 343
10.4.4. Uczenie chatbota ciąg-ciąg 344
10.4.5. Składanie modelu do generowania ciągów 345
10.4.6. Przewidywanie ciągu 345
10.4.7. Generowanie odpowiedzi 346
10.4.8. Rozmowa z waszym chatbotem 347
10.5. Ulepszenia 347
10.5.1. Redukcja złożoności treningu za pomocą sortowania danych (bucketing) 347
10.5.2. Uwaga (attention) 348
10.6. W świecie rzeczywistym 350
CZĘŚĆ 3 PRZEJŚCIE DO RZECZYWISTOŚCI (PRAWDZIWE PROBLEMY NLP) 353
11. Ekstrakcja informacji (rozpoznawanie jednostek nazewniczych i odpowiadanie na pytania) 355
11.1. Jednostki nazewnicze i relacje 356
11.1.1. Baza wiedzy 356
11.1.2. Ekstrakcja informacji 359
11.2. Regularne wzorce 359
11.2.1. Wyrażenia regularne 360
11.2.2. Ekstrakcja informacji jako ekstrakcja cech z wykorzystaniem uczenia się maszyn 361
11.3. Informacje warte wyodrębnienia 363
11.3.1. Ekstrakcja lokalizacji GPS 363
11.3.2. Ekstrakcja dat 364
11.4. Wyodrębnianie relacji 369
11.4.1. Znakowanie częściami mowy 370
11.4.2. Normalizacja jednostek nazewniczych 374
11.4.3. Normalizacja i wyodrębnianie relacji 375
11.4.4. Wzorce słów 375
11.4.5. Segmentacja 376
Segmentacja na zdania 377
11.4.6. Dlaczego split('.!?') nie będzie działać? 377
11.4.7. Segmentacja na zdania za pomocą wyrażeń regularnych 378
11.5. W prawdziwym świecie 380
12. Pogaduszki (silniki dialogowe) 382
12.1. Umiejętności językowe 383
12.1.1. Nowoczesne podejścia 384
Systemy dialogowe odpowiadające na pytania 386
Wirtualni asystenci 386
Chatboty konwersacyjne 387
Chatboty marketingowe 388
Zarządzanie społecznością 388
Obsługa klienta 389
Terapia 390
12.1.2. Podejście hybrydowe 390
12.2. Podejście polegające na dopasowaniu do wzorców 391
12.2.1. Chatbot oparty na dopasowaniu do wzorca i AIML 392
AIML 1.0 393
Interpreter AIML w Pythonie 394
12.2.2. Sieciowe spojrzenie na dopasowanie do wzorców 399
12.3. Oparcie na wiedzy 400
12.4. Wyszukiwanie 402
12.4.1. Problem kontekstu 403
12.4.2. Przykładowy chatbot oparty na wyszukiwaniu danych 404
12.4.3. Chatbot oparty na wyszukiwaniu 408
12.5. Modele generatywne 410
12.5.1. Czat na temat NLPIA 411
12.5.2. Zalety i wady każdego podejścia 413
12.6. Napęd na cztery koła 414
12.6.1. Will osiąga sukces 414
Instalowanie Willa 414
Hello WILL 414
12.7. Proces projektowania 415
12.8. Sztuczki 418
12.8.1. Zadawanie pytań z przewidywalnymi odpowiedziami 418
12.8.2. Bycie zabawnym 419
12.8.3. Gdy wszystko inne zawiedzie, trzeba wyszukać 419
12.8.4. Bycie popularnym 419
12.8.5. Być łącznikiem 420
12.8.6. Stawanie się emocjonalnym 420
12.9. W świecie rzeczywistym 420
13. Skalowanie (optymalizacja, zrównoleglanie i przetwarzanie wsadowe) 422
13.1. Zbyt wiele dobrego (danych) 423
13.2. Optymalizowanie algorytmów NLP 423
13.2.1. Indeksowanie 424
13.2.2. Zaawansowane indeksowanie 425
13.2.3. Zaawansowane indeksowanie za pomocą Annoy 427
13.2.4. Po co w ogóle stosować indeksy przybliżone? 432
13.2.5. Obejście indeksowania: dyskretyzacja 433
13.3. Algorytmy ze stałą pamięcią RAM 434
13.3.1. Gensim 434
13.3.2. Obliczenia graficzne 435
13.4. Zrównoleglanie waszych obliczeń NLP 436
13.4.1. Trenowanie modeli NLP na procesorach graficznych (GPU) 436
13.4.2. Wynajem a kupno 438
13.4.3. Opcje wynajmu GPU 438
13.4.4. Jednostki przetwarzania tensorowego 439
13.5. Zmniejszanie zużycia pamięci podczas trenowania modeli 440
13.6. Uzyskiwanie wglądu w model za pomocą TensorBoard 442
13.6.1. Jak wizualizować zanurzenia słów 443
dodatek A Nasze narzędzia NLP 447
dodatek B Swawolny Python i wyrażenia regularne 455
dodatek C Wektory i macierze (podstawy algebry liniowej) 461
dodatek D Narzędzia i techniki uczenia się maszyn 467
dodatek E Ustawianie własnego AWS GPU 481
dodatek F Mieszanie wrażliwe na lokalizację (LSH) 495
źródła 503
słownik 513
indeks 520
posłowie do wydania polskiego 535

Szczegóły ebooka Przetwarzanie języka naturalnego w akcji

Wydawca:
Wydawnictwo Naukowe PWN
Rok wydania:
2021
Typ publikacji:
Ebook
Format:
mobi,epub
ISBN:
978-83-01-21721-1
ISBN wersji papierowej:
978-83-01-21569-9
Wydanie:
1
Autorzy:
Hobson Lane,Cole Howard,Hannes Hapke
Tłumacze:
Małgorzata Dąbkowska-Kowalik,Wojciech Frenrich,Witold Sikorski
Liczba Stron:
600
Czas realizacji zamówienia:
Do 10 min

Na jakich urządzeniach mogę czytać ebooki?

Ikona ebooka Na czytnikach Kindle, PocketBook, Kobo i innych
Ikona komutera Na komputerach stacjonarnych i laptopach
Ikona telefonu Na telefonach z systemem ANDROID lub iOS
Ikona urządzenia elektroniczne Na wszystkich urządzeniach obsługujących format plików PDF, Mobi, EPub