Programming #15: NLP Classification

Previously, we explored how a Recurrent Neural Network could be used to translate French text into English text and how a Convolutional Neural Network could be used to predict a dog’s breed based on a picture. Today, we’ll be playing around with combining the two in order to solve a difficult natural language processing problem:

Given a user comment from the internet, classify whether the comment is:

  • toxic
  • severe_toxic
  • obscene
  • threat
  • insult
  • identity_hate

As always, the full code for this project can be found on my GitHub.

Continue reading “Programming #15: NLP Classification”


Programming #13: Recurrent Neural Networks

Last time, we explored how a Convolutional Neural Network could be trained to recognize and classify patterns in an image. With a slight modification, a CNN could also be trained to generate new images. But what if we were given a series of frames in an animation and wanted our CNN to predict the next frame? We could feed it a bunch of two frame pairs and see if it could learn that after frame ‘a’ usually came frame ‘b’ but this wouldn’t work that great.

What we really need is a neural network that is able to learn from longer sequences of data. For example, if all the previous frames show a ball flying in an arc, the neural network might be able to lean how quickly the ball is moving in each subsequent time period and make a prediction on the next frame based off that. This is where Recurrent Neural Networks (RNN) come in.

Today, we’ll be conceptualizing and exploring RNN’s by building a deep neural network that functions as part of an end-to-end machine translation pipeline. Our completed pipeline will accept English text as input and return the French translation as output. You can follow along with the code here.

Continue reading “Programming #13: Recurrent Neural Networks”