All Projects → mdcramer → Deep Speeling

mdcramer / Deep Speeling

Deep Learning neural network for correcting spelling

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Deep Speeling

Stockpriceprediction
Stock Price Prediction using Machine Learning Techniques
Stars: ✭ 700 (+1455.56%)
Mutual labels:  rnn
Deep Music Genre Classification
🎵 Using Deep Learning to Categorize Music as Time Progresses Through Spectrogram Analysis
Stars: ✭ 23 (-48.89%)
Mutual labels:  rnn
Rnn Theano
使用Theano实现的一些RNN代码,包括最基本的RNN,LSTM,以及部分Attention模型,如论文MLSTM等
Stars: ✭ 31 (-31.11%)
Mutual labels:  rnn
Rnn Time Series Anomaly Detection
RNN based Time-series Anomaly detector model implemented in Pytorch.
Stars: ✭ 718 (+1495.56%)
Mutual labels:  rnn
Jd Prediction
京东JData算法大赛-高潜用户购买意向预测
Stars: ✭ 18 (-60%)
Mutual labels:  rnn
Lstm Sentiment Analysis
Sentiment Analysis with LSTMs in Tensorflow
Stars: ✭ 886 (+1868.89%)
Mutual labels:  rnn
Cs224n
CS224n: Natural Language Processing with Deep Learning Assignments Winter, 2017
Stars: ✭ 656 (+1357.78%)
Mutual labels:  rnn
Boilerplate Dynet Rnn Lm
Boilerplate code for quickly getting set up to run language modeling experiments
Stars: ✭ 37 (-17.78%)
Mutual labels:  rnn
Eda nlp
Data augmentation for NLP, presented at EMNLP 2019
Stars: ✭ 902 (+1904.44%)
Mutual labels:  rnn
Theano Kaldi Rnn
THEANO-KALDI-RNNs is a project implementing various Recurrent Neural Networks (RNNs) for RNN-HMM speech recognition. The Theano Code is coupled with the Kaldi decoder.
Stars: ✭ 31 (-31.11%)
Mutual labels:  rnn
Tf Rnn Attention
Tensorflow implementation of attention mechanism for text classification tasks.
Stars: ✭ 735 (+1533.33%)
Mutual labels:  rnn
Rnn Rbm In Theano
An implementation of RNN-RBM & GBRBM.
Stars: ✭ 6 (-86.67%)
Mutual labels:  rnn
Ailearning
AiLearning: 机器学习 - MachineLearning - ML、深度学习 - DeepLearning - DL、自然语言处理 NLP
Stars: ✭ 32,316 (+71713.33%)
Mutual labels:  rnn
Tensorflow cookbook
Code for Tensorflow Machine Learning Cookbook
Stars: ✭ 5,984 (+13197.78%)
Mutual labels:  rnn
Attentive Neural Processes
implementing "recurrent attentive neural processes" to forecast power usage (w. LSTM baseline, MCDropout)
Stars: ✭ 33 (-26.67%)
Mutual labels:  rnn
Seq2seq Pytorch
Sequence to Sequence Models with PyTorch
Stars: ✭ 678 (+1406.67%)
Mutual labels:  rnn
Deepfakes video classification
Deepfakes Video classification via CNN, LSTM, C3D and triplets
Stars: ✭ 24 (-46.67%)
Mutual labels:  rnn
Neural Networks
All about Neural Networks!
Stars: ✭ 34 (-24.44%)
Mutual labels:  rnn
Lstm peptides
Long short-term memory recurrent neural networks for learning peptide and protein sequences to later design new, similar examples.
Stars: ✭ 30 (-33.33%)
Mutual labels:  rnn

Deep-Speeling

Using Deep Learning to correct spelling mistakes

Motivation

This project was inspired by Tal Weiss' post on Deep Spelling. His Deep Spell code can be found on Github.

In January 2017 I began the Udacity Deep Learning Foundation Nanodegree Program and was hooked from the first lecture. I'd heard the term 'neural network' plenty of times previously, and had a general idea of what they could accomplish, but never had an understanding of how they 'work.' Since completing the course I've hadn't had much opportunity to tinker with the technology, but I've continued to contemplate it's uses, particularly in the domain of information retreival, which is where I've spent the last decade focusing.

Unless you're Google, the typical technique for correcting spelling mistakes is the Levenshtein distance, or it's close cousin, the Damerau–Levenshtein distance. Mr. Weiss does a good job of explaining why these do not work particularly well.

Goals

  • Re-implement Mr. Weiss' Recurrent Neural Network (RNN) using Tensorflow and achieve the same level of accuracy.
  • Attempt to implement some of the areas for exploration he suggests, as well as others, to see if futher improvements can be obtained.

The code

The first part of the code, which involves downloading the billion word dataset that Google released and setting it up for training, is predominantly lifted from Mr. Weiss. The second part of the code, which involves building the graph and training the neural network, is borrowed from the Udacity sequence-to-sequency RNN example. This Udacity example works on a small dataset of 10,000 'sentences' (1- to 8-character words) and trains the network to sort the characters alphabetically. The current project contains code to handle both this large dataset as well as the small dataset, which is useful for debugging.

Several enhancements have been added to the code:

  • Dropout was added.
  • The Udacity example saved the graph and then reloaded it to run a single example, but it has now been reworked to be saved and loaded for additional training.
  • The script has been reworked so that it can be exported at a .py file and run top to bottom from the command line. A "small" command line switch was added to toggle running with the small dataset.
  • The Validation section has been reworked to run on the entire validation set, with the accuracy being computed. It may now be running after each epoch.
  • A 'send email' fuction that communicates the current state of training was created to send udpates while training on AWS.
  • Random uniform initialization was replaced with Gaussian initialization scaled by fan-in.

Todo

After 24 hours of training on an EC2 g2.2xlarge the network was able to achieve 75% accuracy. This, however, is far short of the 90% accuracy achieved by Mr. Weiss in 12 hours of training. All of the major elements of his model have been implemented, which the exception of Categorical Cross-Entropy for the loss, so this is the next order of business. Tensorflow doesn't seem to have the identical equivalent, so I'll be attempting softmax cross entropy. If this works I'll move on to trying to improve beyond Mr. Weiss. If not, well, I'll be stuck...

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].