Module to get meaning, synonym, antonym, part_of_speech, usage_example, pronunciation and hyphenation for a given word
Project description
Vocabulary
A dictionary magician in the form of a module!
Table of Contents
What is it
For a given word, using Vocabulary, you can get it’s
Meaning
Synonyms
Antonyms
Part of speech : whether the word is a noun, interjection or an adverb et el
Usage example : a quick example on how to use the word in a sentence
Pronuciation
Hyphenation : shows the particular stress points(if any)
Features
Written in uncomplicated Python
Returns JSON objects
Minimum dependencies ( just uses requests (https://github.com/kennethreitz/requests))
Easy to install
A decent substitute to Wordnet(well almost!) Wanna see? Here is a small comparison
Stupidly easy to use
Fast!
Supports
both, python2.* and python3.*
Works on Mac, Linux and Windows
Why should I use Vocabulary
Wordnet is a great resource. No doubt about it! So why should you use Vocabulary when we already have Wordnet out there?
My 2 cents
Wordnet Comparison
Let’s say you want to find out the synonyms for the word car.
Using Wordnet
>>> from nltk.corpus import wordnet
>>> syns = wordnet.synsets('car')
>>> syns[0].lemmas[0].name
'car'
>>> [s.lemmas[0].name for s in syns]
['car', 'car', 'car', 'car', 'cable_car']
>>> [l.name for s in syns for l in s.lemmas]
['car', 'auto', 'automobile', 'machine', 'motorcar', 'car', 'railcar', 'railway_car', 'railroad_car', 'car', 'gondola', 'car', 'elevator_car', 'cable_car', 'car']
Doind the same using Vocabulary
>>> from vocabulary import Vocabulary as vb
>>> vb.synonym("car")
'[{"seq": 0, "text": "automotive"}, {"seq": 1, "text": "motor"}, {"seq": 2, "text": "wagon"}, {"seq": 3, "text": "cart"}, {"seq": 4, "text": "automobile"}]'
>>>
So there you go. You get the data in an easy JSON format.
You can go on comparing for the other methods too.
Installation
Option 1: installing through pip (Suggested way)
$ pip install vocabulary
If you are behind a proxy
$ pip --proxy [username:password@]domain_name:port install vocabulary
Note: If you get command not found then $ sudo apt-get install python-pip should fix that
Option 2: Installing from source
$ git clone https://github.com/prodicus/vocabulary.git
$ cd vocabulary/
$ pip install -r requirements.txt
$ python setup.py install
Uninstalling
$ pip uninstall vocabulary
Demo
Usage
A Simple demonstration of the module
## Importing the module
>>> from vocabulary import Vocabulary as vb
## Extracting "Meaning"
>>> vb.meaning("hillbilly")
'[{"text": "Someone who is from the hills; especially from a rural area, with a connotation of a lack of refinement or sophistication.", "seq": 0}, {"text": "someone who is from the hills", "seq": 1}, {"text": "A white person from the rural southern part of the United States.", "seq": 2}]'
>>>
## "Synonym"
>>> vb.synonym("hurricane")
'[{"text": "storm", "seq": 0}, {"text": "tropical cyclone", "seq": 1}, {"text": "typhoon", "seq": 2}, {"text": "gale", "seq": 3}]'
>>>
## "Antonym"
>>> vb.antonym("respect")
'{"text": ["disesteem", "disrespect"]}'
>>> vb.antonym("insane")
'{"text": ["sane"]}'
## "Part of Speech"
>>> vb.part_of_speech("hello")
'[{"text": "interjection", "example:": "Used to greet someone, answer the telephone, or express surprise.", "seq": 0}]'
>>>
## "Usage Examples"
>>> vb.usage_example("chicanery")
'[{"text": "The Bush Administration is now the commander-in-theif (lower-case intentional) thanks to their chicanery.", "seq": 0}]'
>>>
## "Pronunciation"
>>> vb.pronunciation("hippopotamus")
[{'raw': '(hĭpˌə-pŏtˈə-məs)', 'rawType': 'ahd-legacy', 'seq': 0}, {'raw': 'HH IH2 P AH0 P AA1 T AH0 M AH0 S', 'rawType': 'arpabet', 'seq': 0}]
>>>
## "Hyphenation"
>>> vb.hyphenation("hippopotamus")
'[{"text": "hip", "type": "secondary stress", "seq": 0}, {"text": "po", "seq": 1}, {"text": "pot", "type": "stress", "seq": 2}, {"text": "a", "seq": 3}, {"text": "mus", "seq": 4}]'
>>> vb.hyphenation("amazing")
'[{"text": "a", "seq": 0}, {"text": "maz", "type": "stress", "seq": 1}, {"text": "ing", "seq": 2}]'
>>>
Help
If you need to see the usage for any of the methods, do a
>>> from vocabulary import Vocabulary as vb
>>> help(vb.meaning)
Help on function meaning in module vocabulary.vocabulary:
meaning(phrase, source_lang='en', dest_lang='en')
make calls to the
- glosbe API(default choice)
- Wordnik API
Wordnik's API gives less results so not Using it here for getting the meanings
params:
=======
source_lang, dest_lang (both default to "en" if nothing is specified)
Usage:
======
>>> from vocabulary import Vocabulary as vb
>>> vb.meaning("levitate")
'[{"text": "(intransitive) Be suspended in the air, as if in defiance of gravity.", "seq": 0}, {"text": "(transitive) To cause to rise in the air and float, as if in defiance of gravity.", "seq": 1}]'
>>>
(END)
and so on for other functions
How does it work
Under the hood, it makes use of 4 awesome API’s to give you consistent results. The API’s being
Urbandict
Glosbe
BighugeLabs
Wordnik
Contributing
Feel free to contribute
Fork it.
Create your feature branch (git checkout -b my-new-awesome-feature)
Commit your changes (git commit -am 'Added <xyz> feature')
Push to the branch (git push origin my-new-awesome-feature)
Create new Pull Request
To do
Add translate module
Tests
Vocabulary uses unittesting for testing.
Run the test cases by doing a
$ ./tests.py -v
test_antonym_1 (__main__.TestModule) ... ok
test_antonym_2 (__main__.TestModule) ... ok
test_hyphenation (__main__.TestModule) ... ok
test_meaning (__main__.TestModule) ... ok
test_partOfSpeech_1 (__main__.TestModule) ... ok
test_partOfSpeech_2 (__main__.TestModule) ... ok
test_pronunciation (__main__.TestModule) ... ok
test_synonym (__main__.TestModule) ... ok
test_usageExamples (__main__.TestModule) ... ok
----------------------------------------------------------------------
Ran 9 tests in 7.742s
OK
(testvocab)
Bugs
Please report the bugs at the issue tracker
License :
MIT License © Tasdik Rahman
You can find a copy of the License at http://prodicus.mit-license.org/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.