Moby

Build Status Dependency Status

Ruby interface for Moby Project word lists. The goal is to provide interfaces for most of the Moby Project texts and/or wordlists.

Interfaces currently provided are listed below. More to come!

Install

gem install moby

Parts of Speech

Usage

pos = Moby::PartsOfSpeech.new

List

Get word lists by part of speech

pos.nouns 
pos.plurals
pos.noun_phrases
pos.adjectives
pos.adverbs
pos.conjunctions
pos.prepositions
pos.interjections
pos.pronouns
pos.definite_articles
pos.indefinite_articles
pos.nominatives

#verbs takes an optional :type parameter since there's three types

pos.verbs
pos.verbs(:type => :all) # default
pos.verbs(:type => :usu)
pos.verbs(:type => :transitive)
pos.verbs(:type => :intransitive)  

Find

Find parts of speech info for a word

pos.find("word") 
#=> {
#=>   :word => "word", 
#=>   :code => "Nt", 
#=>   :pos => [:noun, :vert_transitive]
#=> }

pos.find("walk") 
#=> {
#=>   :word => "walk", 
#=>   :code => "iNt", 
#=>   :pos => [:noun, :verb_transitive, :verb_intransitive]
#=> }

Query

Check a word by part of speech

pos.noun?("animal")             #=> true
pos.verb?("run")                #=> true
pos.intransitive_verb?("walk")  #=> true
pos.adjective?("sky")           #=> false

#verb? takes an optional :type parameter (like #verbs)

pos.verb?("abandon", :type => :transitive)          #=> true
pos.verb?("overurbanized", :type => :intransitive)  #=> false
pos.verb?("overurbanized")                          #=> true

Hyphenator

Usage

hyph = Moby::Hyphenator.new

Hyphenate words

hyph.hyphenate("bardish") #=> "bard-ish"
hyph.hyphenate("hastelessness") #=> "haste-less-ness"
hyph.hyphenate("interpollinating") #=> #"in-ter-pol-li-nat-ing"

Returns the word unchanged if not found or if it shouldn't be hyphenated

hyph.hyphenate("Mordor") #=> "Mordor" (not found)
hyph.hyphenate("jest") #=> "jest" (shouldn't be hyphenated)

Copyright © 2012 Dan Richert. See LICENSE for details