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.
Source Distribution
File details
Details for the file Vocabulary-0.0.3.tar.gz
.
File metadata
- Download URL: Vocabulary-0.0.3.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 915e2dfcb01a4fd16f4d6ef9cfad4ecbe11d210b1063042f590bf99735e5ddf9 |
|
MD5 | 6db792aae8d58d02c69daded378c28b0 |
|
BLAKE2b-256 | 46fe5d8b73628532a4f5b6603b14eb20eecd36c990da130f33172d9f043e5df1 |