Skip to content
This repository has been archived by the owner on Aug 18, 2020. It is now read-only.

tasdikrahman/vocabulary

Repository files navigation

Vocabulary

PyPI version License Python Versions Build Status Requirements Status Join the chat at https://gitter.im/prodicus/vocabulary

A dictionary magician in the form of a module!

Author

Tasdik Rahman

What is it

[back to top]

For a given word, using Vocabulary, you can get its

  • Meaning
  • Synonyms
  • Antonyms
  • Part of speech : whether the word is a noun, interjection or an adverb et el
  • Translate : Translate a phrase from a source language to the desired language.
  • Usage example : a quick example on how to use the word in a sentence
  • Pronunciation
  • Hyphenation : shows the particular stress points(if any)

Features

[back to top]

  • Written in uncomplicated Python
  • Returns JSON objects, PYTHON dictionaries and lists
  • Minimum dependencies ( just uses requests module )
  • 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

[back to top]

Wordnet is a great resource. No doubt about it! So why should you use Vocabulary when we already have Wordnet out there?

Wordnet Comparison

[back to top]

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']
  • Doing the same using Vocabulary
>>> from vocabulary.vocabulary import Vocabulary as vb
>>> vb.synonym("car")
'[{
  "seq": 0,
  "text": "automobile"
}, {
  "seq": 1,
  "text": "cart"
}, {
  "seq": 2,
  "text": "automotive"
}, {
  "seq": 3,
  "text": "wagon"
}, {
  "seq": 4,
  "text": "motor"
}]'
>>> ## load the json data
>>> car_synonyms = json.loads(vb.synonym("car"))
>>> type(car_synonyms)
<class 'list'>
>>>

So there you go. You get the data in an easy JSON format.

You can go on comparing for the other methods too.

Installation

[back to top]

Option 1: installing through pip (Suggested way)

pypi package link

$ 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 (Only if you must)

$ git clone https://github.com/tasdikrahman/vocabulary.git
$ cd vocabulary/
$ pip install -r requirements.txt
$ python setup.py install

Demo

[back to top]

Documentation

[back to top]

For a detailed usage example, refer the documentation at Read the Docs

Contributing

[back to top]

Please refer Contributing page for details

Discuss

[back to top]

Join us on our Gitter channel if you want to chat or if you have any questions in your mind.

Contributers

[back to top]

  • Huge shoutout to @tenorz007 for adding the ability to return the API response as different data structures.
  • Thanks to Anton Relin for adding the translate module.
  • And a big shout out to all the contributers for their contributions

Changelog

[back to top]

Please refer Changelog page for details

Bugs

[back to top]

Please report the bugs at the issue tracker

Similar

[back to top]

Other similar software inspired by Vocabulary

  • Vocabulary : The Go lang port of this python counterpart
  • woordy : Gives back word translations
  • guile-words : The Guile Scheme port of this python counterpart

Known Issues

[back to top]

  • In python2, when using the method Vocabulary.synonym() or Vocabulary.pronunciation()
>>> vb.synonym("car")
[{
  "seq": 0,
  "text": "automotive"
}, {
  "seq": 1,
  "text": "motor"
}, {
  "seq": 2,
  "text": "wagon"
}, {
  "seq": 3,
  "text": "cart"
}, {
  "seq": 4,
  "text": "automobile"
}]
>>> type(vb.pronunciation("hippopotamus"))
<class 'list'>
>>> json.dumps(vb.pronunciation("hippopotamus"))
'[{"raw": "(h\\u012dp\\u02cc\\u0259-p\\u014ft\\u02c8\\u0259-m\\u0259s)", "rawType": "ahd-legacy", "seq": 0}, {"raw": "HH IH2 P AH0 P AA1 T AH0 M AH0 S", "rawType": "arpabet", "seq": 1}]'
>>>

You are being returned a list object instead of a JSON object. When returning the latter, there are some unicode issues. A fix for this will be released soon.

I may suggest python-ftfy which can help you in this matter.

License :

[back to top]

Built with ♥ by Tasdik Rahman under the MIT License ©

You can find a copy of the License at http://prodicus.mit-license.org/

Donation

Paypal badge

Instamojo

gratipay

patreon