Problem:

Given the phrase “34+17”, the model should predict the next word in the sequence “51”. The input and output is a sequence of characters which in turn an arithmetic expression of two numbers and its result. Thus our data is represented as a sequence of two words expression and result.

Motivation:

As Recurrent Neural Networks(RNNs) are best suitable for processing sequential data, we are going to build a simple RNN model for solving this problem.

This can be implemented in 6 steps:

  1. Generating data
  2. Building model
  3. Vectoring, DE_vectoring data & remove the padding
  4. Creating dataset
  5. Training the model
  6. Predictions

Import necessary Libraries

Step 1: Generating data

We need to define a vocabulary with the required set of characters for the input and output strings. Thus the vocabulary consists of 0 to 9 digits, +, -, *, / and decimal(.) symbols.

The RNN model that we are building needs numeric values in tensors as an input. A suitable representation of this sequence of characters is one-hot encoded vectors. The dimension of the vector should be equal to the length of vocabulary, which is the total number of features. A dictionary needs to create to tokenize the characters into numeric values. Also, create another dictionary with indices as keys and corresponding characters as values that are used in later steps.

#python #rnn #arithmetic operations

Making a RNN model learn Arithmetic Operations
2.05 GEEK