Giter Site home page Giter Site logo

pbamotra / optimus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flipkart-incubator/optimus

0.0 1.0 0.0 327 KB

Train, evaluate and deploy Convolutional Neural Network based text classifiers

License: Apache License 2.0

Python 96.71% Shell 0.64% Perl 2.65%

optimus's Introduction

Optimus

Quickly train, evaluate and deploy an optimum classifier for your text classification task. Currently, it allows you to train a CNN (Convolutional Neural Network) based text classifier. Using this toolkit, you should be able to train a classifier for most of the text classification tasks without writing a single piece of code.

The main features of Optimus are:

  • Easily train a CNN classifier
  • Config driven to make hyperparameter tuning and experimentation easy
  • Debug mode: which allows you to visualize what is happening in the internal layers of the model
  • Flask server for querying the trained model through an API

This project is based on: https://github.com/yoonkim/CNN_sentence (Many thanks to Yoon for open sourcing his code for the paper: http://arxiv.org/abs/1408.5882, which is arguably the best generic Deep Learning based text classifier at the time of writing.) The improvements over the original code are:

  • Multi-channel mode
  • Complete refactoring to make the code modular
  • Config driven, for easy experimentation
  • Model serialization/deserialization
  • Detailed evaluation results
  • Model deployment on a Flask server
  • Multi Class classification [In progress]
  • Debug Mode [In progress] img

This project is also inspired by https://github.com/japerk/nltk-trainer, which allows users to easily train NLTK based statistical classifiers.

Why deep learning?

Deep learning has dominated pattern recognition in the last few years, especially in image and speech. Recently deep learning models have outperformed statistical classifiers in a variety of NLP tasks as well. Also, one of the biggest advantage of using deep learning models is that task specific feature engineering is not required. The wiki contains a summary of exciting results we obtained using optimus, on a variety of different text classification tasks. Those interested in understanding how this model works can also check out my talk at Fifth elephant, in which I give an introduction to NLP using deep learning. Other good recommended resources can also be found [here].

Requirements

Code requires Python 2.7 and Theano 0.7. You can go to the Setting Up page, for instructions on how to quickly set up the python environment required for Optimus. Requirements are also listed in the requirements.txt file.

Start Using it

Visit the Quick Start guide to get started on using Optimus! I have also written a small tutorial on Optimus on my blog.

You can compare models trained using optimus to statistical models by using https://github.com/japerk/nltk-trainer, an awesome tool for easily training statistical classifiers. If you get some good results on a dataset, I would love to know about them!

In case you face any issue, you can create an issue on github or send me a mail at [email protected]. Suggestions and improvements are most welcome. Open github issues are a good place to start. A contributor's guide is under works.

Core contributors

optimus's People

Contributors

devashishshankar avatar shrayasr avatar

Watchers

Pankesh Bamotra avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.