Ruby Natural Language Processing Resources
A collection of Natural Language Processing (NLP) Ruby libraries, tools and software. Suggestions and contributions are welcome.
Categories
APIs
3rd party NLP services
Client libraries to various 3rd party NLP API services.
- alchemy_api - provides a client API library for AlchemyAPI's NLP services
- aylien_textapi_ruby - AYLIEN's officially supported Ruby client library for accessing Text API
- biffbot - Ruby gem for Diffbot's APIs that extract Articles, Products, Images, Videos, and Discussions from any web page
- gengo-ruby - a Ruby library to interface with the Gengo API for translation
- monkeylearn-ruby - build and consume machine learning models for language processing from your Ruby apps
- poliqarpr - Ruby client for Poliqarp text corpus server
- wlapi - Ruby based API for the project Wortschatz Leipzig
Instant Messaging Bots
Client/server libraries to various 3rd party instant messengers chat bots APIs.
Facebook Messenger
- botstack - rapid FB Chatbot development with ruby on rails
- facebook-messenger - Definitely the best Ruby client for Bots on Messenger
- messenger-ruby - A simple library for supporting implementation of Facebook Messenger Bot in Ruby on Rails
Kik
Microsoft Bot Framework (Skype)
Slack
Telegram Messenger
Wechat
Natural Language Understanding Tools
Voice-based devices bots
Client/server libraries to various 3rd party voice-based devices APIs.
Amazon Echo Alexa skills
Books
Bitext Alignment
Bitext alignment is the process of aligning two parallel documents on a segment by segment basis. In other words, if you have one document in English and its translation in Spanish, bitext alignment is the process of matching each segment from document A with its corresponding translation in document B.
- alignment - alignment functions for corpus linguistics (Gale-Church implementation)
Case
- active_support - the rails active_support gem has various string extensions that can handle case (e.g.
.mb_chars.upcase.to_s or #transliterate)
- string_pl - additional support for Polish encodings in Ruby 1.9
- twitter-cldr-rb - casefolding
- u - U extends Ruby’s Unicode support
- unicode - Unicode normalization library
- unicode_utils - Unicode algorithms for Ruby 1.9
Chatbot
- chatterbot - A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate
- JeffBot - (Yet another) comical and extensible chat bot
- Lita - Lita is a chat bot written in Ruby with persistent storage provided by Redis
- MegaHAL - MegaHAL is a learning chatterbot
- Markov-chain-bot-module - A chat bot utilizing Markov chains. It speaks Russian and English
- stealth - An open source Ruby framework for conversational voice and text chatbots
Classification
Classification aims to assign a document or piece of text to one or more classes or categories making it easier to manage or sort.
- Classifier - a general module to allow Bayesian and other types of classifications
- classifier-reborn - (a fork of cardmagic/classifier) a general classifier module to allow Bayesian and other types of classifications
- fastText Ruby - efficient text classification and representation learning - for Ruby
- Latent Dirichlet Allocation - used to automatically cluster documents into topics
- liblinear-ruby-swig - Ruby interface to LIBLINEAR (much more efficient than LIBSVM for text classification and other large linear classifications)
- linnaeus - a redis-backed Bayesian classifier
- maxent_string_classifier - a JRuby maximum entropy classifier for string data, based on the OpenNLP Maxent framework
- Naive-Bayes - simple Naive Bayes classifier
- nbayes - a full-featured, Ruby implementation of Naive Bayes
- omnicat - a generalized rack framework for text classifications
- omnicat-bayes - Naive Bayes text classification implementation as an OmniCat classifier strategy
- stuff-classifier - a library for classifying text into multiple categories
Date and Time
- Chronic - a pure Ruby natural language date parser
- Chronic Between - a simple Ruby natural language parser for date and time ranges
- Chronic Duration - a simple Ruby natural language parser for elapsed time
- dotiw - Better distance of time in words for Rails http://ryanbigg.com
- Kronic - a dirt simple library for parsing and formatting human readable dates
- Nickel - extracts date, time, and message information from naturally worded text
- Tickle - a natural language parser for recurring events
- time_ago_in_words - Humanize elapsed time from some Time instance to Time.now
- time-lord - adds extra functionality to the time class.
Emoji
- active_emoji - A collection of emoji aliases for core Ruby methods
- emoji - A gem. For Emoji. For everyone. ❤
- gemoji - Emoji images and names
- gemoji-parser - The missing helper methods for GitHub's gemoji gem
- rumoji - Encode and decode emoji unicode characters into emoji-cheat-sheet form. article
Error Correction