Deep Learning for Natural Language Processing Creating Neural Networks with Python
Total Page:16
File Type:pdf, Size:1020Kb
Deep Learning for Natural Language Processing Creating Neural Networks with Python Palash Goyal Sumit Pandey Karan Jain Deep Learning for Natural Language Processing: Creating Neural Networks with Python Palash Goyal Sumit Pandey Bangalore, Karnataka, India Bangalore, Karnataka, India Karan Jain Bangalore, Karnataka, India ISBN-13 (pbk): 978-1-4842-3684-0 ISBN-13 (electronic): 978-1-4842-3685-7 https://doi.org/10.1007/978-1-4842-3685-7 Library of Congress Control Number: 2018947502 Copyright © 2018 by Palash Goyal, Sumit Pandey, Karan Jain Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/978-1-4842-3684-0. For more detailed information, please visit www.apress.com/source-code. Contents Introduction�������������������������������������������������������������������������������������� xvii Chapter 1: Introduction to Natural Language Processing and Deep Learning ���������������������������������������������������������������������1 Python Packages ���������������������������������������������������������������������������������������������������3 NumPy �������������������������������������������������������������������������������������������������������������3 Pandas �������������������������������������������������������������������������������������������������������������8 SciPy ��������������������������������������������������������������������������������������������������������������13 Introduction to Natural Language Processing �����������������������������������������������������16 What Is Natural Language Processing? ���������������������������������������������������������16 Good Enough, But What Is the Big Deal? �������������������������������������������������������16 What Makes Natural Language Processing Difficult?������������������������������������16 What Do We Want to Achieve Through Natural Language Processing? ���������18 Common Terms Associated with Language Processing ��������������������������������19 Natural Language Processing Libraries ��������������������������������������������������������������20 NLTK ��������������������������������������������������������������������������������������������������������������20 TextBlob ���������������������������������������������������������������������������������������������������������22 SpaCy ������������������������������������������������������������������������������������������������������������25 Gensim ����������������������������������������������������������������������������������������������������������27 Pattern �����������������������������������������������������������������������������������������������������������29 Stanford CoreNLP ������������������������������������������������������������������������������������������29 Getting Started with NLP �������������������������������������������������������������������������������������29 Text Search Using Regular Expressions ��������������������������������������������������������30 Text to List �����������������������������������������������������������������������������������������������������30 Preprocessing the Text ����������������������������������������������������������������������������������31 Accessing Text from the Web ������������������������������������������������������������������������32 Removal of Stopwords �����������������������������������������������������������������������������������32 Counter Vectorization ������������������������������������������������������������������������������������33 TF-IDF Score ��������������������������������������������������������������������������������������������������33 Text Classifier ������������������������������������������������������������������������������������������������35 Introduction to Deep Learning ����������������������������������������������������������������������������35 How Deep Is “Deep”? ������������������������������������������������������������������������������������37 What Are Neural Networks? ��������������������������������������������������������������������������������38 Basic Structure of Neural Networks ��������������������������������������������������������������������40 Types of Neural Networks �����������������������������������������������������������������������������������45 Feedforward Neural Networks�����������������������������������������������������������������������46 Convolutional Neural Networks ���������������������������������������������������������������������46 Recurrent Neural Networks ���������������������������������������������������������������������������47 Encoder-Decoder Networks ���������������������������������������������������������������������������49 Recursive Neural Networks ���������������������������������������������������������������������������49 Multilayer Perceptrons ����������������������������������������������������������������������������������������50 Stochastic Gradient Descent �������������������������������������������������������������������������������54 Backpropagation �������������������������������������������������������������������������������������������������57 Deep Learning Libraries ��������������������������������������������������������������������������������������60 Theano �����������������������������������������������������������������������������������������������������������60 Theano Installation ����������������������������������������������������������������������������������������61 Theano Examples ������������������������������������������������������������������������������������������63 TensorFlow ����������������������������������������������������������������������������������������������������64 Data Flow Graphs ������������������������������������������������������������������������������������������65 TensorFlow Installation ����������������������������������������������������������������������������������66 TensorFlow Examples ������������������������������������������������������������������������������������67 Keras �������������������������������������������������������������������������������������������������������������69 Next Steps �����������������������������������������������������������������������������������������������������������74 Chapter 2: Word Vector Representations ��������������������������������������������75 Introduction to Word Embedding �������������������������������������������������������������������������75 Neural Language Model���������������������������������������������������������������������������������79 Word2vec ������������������������������������������������������������������������������������������������������������81 Skip-Gram Model �������������������������������������������������������������������������������������������82 Model Components: Architecture ������������������������������������������������������������������83 Model Components: Hidden Layer �����������������������������������������������������������������84 Model Components: Output Layer �����������������������������������������������������������������86 CBOW Model ��������������������������������������������������������������������������������������������������87 Subsampling Frequent Words �����������������������������������������������������������������������������88 Negative Sampling ����������������������������������������������������������������������������������������91 Word2vec Code ���������������������������������������������������������������������������������������������������92 Skip-Gram Code ��������������������������������������������������������������������������������������������������97 CBOW Code �������������������������������������������������������������������������������������������������������107 Next Steps ���������������������������������������������������������������������������������������������������������118 Chapter 3: Unfolding Recurrent Neural Networks ����������������������������119 Recurrent Neural Networks�������������������������������������������������������������������������������120 What Is Recurrence? �����������������������������������������������������������������������������������121 Differences Between Feedforward and Recurrent Neural Networks �����������121 Recurrent Neural Network Basics ���������������������������������������������������������������123 Natural Language Processing and Recurrent Neural Networks ������������������126 RNNs Mechanism ����������������������������������������������������������������������������������������129 Training RNNs ����������������������������������������������������������������������������������������������134 Meta Meaning of Hidden State of RNN ��������������������������������������������������������137 Tuning RNNs ������������������������������������������������������������������������������������������������138 Long Short-Term Memory Networks �����������������������������������������������������������138 Sequence-to-Sequence Models ������������������������������������������������������������������145 Advanced Sequence-to-Sequence Models ��������������������������������������������������152 Sequence-to-Sequence Use Case ���������������������������������������������������������������157 Next Steps ���������������������������������������������������������������������������������������������������������168 Chapter 4: Developing a Chatbot ������������������������������������������������������169 Introduction to Chatbot