Book Image

Natural Language Processing with TensorFlow

By : Motaz Saad, Thushan Ganegedara
Book Image

Natural Language Processing with TensorFlow

By: Motaz Saad, Thushan Ganegedara

Overview of this book

Natural language processing (NLP) supplies the majority of data available to deep learning applications, while TensorFlow is the most important deep learning framework currently available. Natural Language Processing with TensorFlow brings TensorFlow and NLP together to give you invaluable tools to work with the immense volume of unstructured data in today’s data streams, and apply these tools to specific NLP tasks. Thushan Ganegedara starts by giving you a grounding in NLP and TensorFlow basics. You'll then learn how to use Word2vec, including advanced extensions, to create word embeddings that turn sequences of words into vectors accessible to deep learning algorithms. Chapters on classical deep learning algorithms, like convolutional neural networks (CNN) and recurrent neural networks (RNN), demonstrate important NLP tasks as sentence classification and language generation. You will learn how to apply high-performance RNN models, like long short-term memory (LSTM) cells, to NLP tasks. You will also explore neural machine translation and implement a neural machine translator. After reading this book, you will gain an understanding of NLP and you'll have the skills to apply TensorFlow in deep learning NLP applications, and how to perform specific NLP tasks.
Table of Contents (16 chapters)
Natural Language Processing with TensorFlow
Contributors
Preface
Index

Basic data structures


Scalar

A scalar is a single number unlike a matrix or a vector. For example, 1.3 is a scalar. A scalar can be mathematically denoted as follows:

Here, R is the real number space.

Vectors

A vector is an array of numbers. Unlike a set, where there is no order to elements, a vector has a certain order to the elements. An example vector is [1.0, 2.0, 1.4, 2.3]. Mathematically, it can be denoted as follows:

Alternatively, we can write this as:

Here, R is the real number space and n is the number of elements in the vector.

Matrices

A matrix can be thought of as a two-dimensional arrangement of a collection of scalars. In other words, a matrix can be thought of as a vector of vectors. An example matrix would be as shown here:

A more general matrix of size can be mathematically defined like this:

And:

Here, m is the number of rows of the matrix, n is the number of columns in the matrix, and R is the real number space.

Indexing of a matrix

We will be using zero-indexed notation (that is, indexes start with 0).

To index a single element from a matrix at (i, j)th position, we use the following notation:

Referring to the previously defined matrix, we get the following:

We index an element from A like this:

We denote a single row of any matrix A as shown here:

For our example matrix, we can denote the second row (indexed as 1) of the matrix as shown here:

We denote the slice starting from the (i, k)th index to the (j, l)th index of any matrix A as shown here:

In our example matrix, we can denote the slice from first row third column to second row fourth column as shown here: