Skip to main content

A simple, effective sentence mining tool.

Project description

VocabSieve - Anki companion for language learning

https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?svg=true https://img.shields.io/pypi/v/vocabsieve.svg

Manual

New manual

Support

Note: All chat rooms are bridged/mirrored. You won't miss out on anything by choosing one over the other. We recommend you use Matrix if possible.

Platform Address Notes
Matrix (Recommended) #general:freelanguagetools.org Requires a Matrix account on any homeserver. A list of homeservers can be found here
Telegram https://t.me/fltchat
Discord (proprietary) https://discord.gg/DNSsTtHRxz

VocabSieve is a companion program for language learning with Anki. Its primary function is sentence mining, in which sentences with vocabulary words are collected and added into Anki for long term retention. It aims to help intermediate learners gain vocabulary efficiently by allowing card creation with minimal friction. Possible use cases include sentence mining from videos, texts, asynchronously from ereader highlights, and even completely automatically from books or subtitles. See workflow page for more details.

Screenshots

out.gif 20230220-163240.png

Features

  • Quick word lookups and card creation: Getting definition, pronunciation, and frequency within one or two keypresses/clicks. Only one more click is needed to save the sentence, word, definition and pronunciation as an Anki card.
  • Wide language support: Supports all languages listed on Google Translate, though it is currently optimized for European languages. Spanish, German, English, and Russian are routinely tested, but all other languages with a similar morphology should work well.
  • Lemmatization: Automatically remove inflections to enhance dictionary experience (books -> book, ran -> run). This works well for most European languages.
  • Local-first: No internet is required if you use downloaded resources. VocabSieve has no central server, so there are no fees to keep it running, so you will never have to pay a subscription.
  • Sane defaults: Little configuration is needed other than settings for the Anki deck. It comes with two dictionary sources by default for most languages and one pronunciation source that should cover most needs. There is also an included note type, saving you the effort of finding an appropriate one and/or styling it if you don't want to.
  • Local resource support: Dictionaries in StarDict, Migaku, plain JSON, MDX, Lingvo (.dsl), CSV; frequency lists; and audio libraries. Cognates data can also be imported for more accurate vocabulary tracking.
  • Web reader: Read epubs with one-click word lookups and Anki export.
  • eReader integration: Batch-convert KOReader and Kindle highlights to Anki sentence cards to build vocabulary efficiently without interrupting your reading.
  • Vocabulary tracking: Track your learning progress effortlessly when you look up (including from ereader), review your Anki cards, or immerse. The data never leaves your computer, and can easily be exported for your own use.
  • Book analysis: Not sure what to read? Once VocabSieve gets enough data of what words you know, it can quickly scan books and predict your level of understanding to help you choose books.

Tutorials

Manual (The text originally on the wiki or this document or the blog post has since been moved there, with some updates.)

New video tutorial

Windows and Mac users: If you want to install this program, go to Releases and from the latest release, download the appropriate file for your operating system.

For a nightly build, please check the CI artifacts page. These are not considered ready for release and likely contain bugs. It is recommended to use the debug version to get more details when things go wrong.

Linux distro packages

Packaging status

Development

To run from source:

  1. Set up a virtual environment python3 -m venv env
  2. pip install -r requirements.txt
  3. python3 vocabsieve.py

For debugging purposes, set the environmental variable VOCABSIEVE_DEBUG to any value. This will create a separate profile (settings and databases for records and dictionaries) so you may perform tests without affecting your normal profile. For each different value of VOCABSIEVE_DEBUG, a separate profile is generated. This can be any number or string.

Pull requests are welcome! If you want to implement a significant feature, be sure to first ask by creating an issue so that no effort is wasted on doing the same work twice.

Status

This is currently beta software. You should not expect it to be completely bug-free, but you may expect that:

  • You should not lose data by upgrading to a new release. However, downgrading is not guaranteed to work! When in doubt, back up your data and ask in the chatroom before attempting to downgrade.
    • This does not include your settings, which may need to be reset for a new release. This will be indicated on the release notes.
  • Using the master branch and only upgrading should usually not break things, but this is not guaranteed. You are expected to read commit messages to take proper precaution.
    • Using feature branches may break things!

Feedback

You are welcome to report bugs, suggest features/enhancements, or ask for clarifications by opening a GitHub issue.

Donations

If you appreciate this tool, consider making a donation to the Free Software Foundation or the Electronic Frontier Foundation to protect our digital future and defend our freedom. Do your part to refuse to pay for DRM'd content and devices.

Credits

The definitions provided by the program by default come from English Wiktionary, without which this program would never have been created. LingvaTranslate is used to obtain Google Translate results. Fоrvо scraping code is inspired by this repository. Lemmatization capabilities come from simplemma and pymorphy3.

App icon is made from icons by Freepik available on Flaticon.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vocabsieve-0.12.1.tar.gz (391.9 kB view details)

Uploaded Source

Built Distribution

vocabsieve-0.12.1-py3-none-any.whl (411.7 kB view details)

Uploaded Python 3

File details

Details for the file vocabsieve-0.12.1.tar.gz.

File metadata

  • Download URL: vocabsieve-0.12.1.tar.gz
  • Upload date:
  • Size: 391.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for vocabsieve-0.12.1.tar.gz
Algorithm Hash digest
SHA256 c78872bbac8d7f8b0ab0c5dbc9b2e1741cb0ba2f16f6be7c664351e2130b9db9
MD5 4096d7595c7bee673f2390e23f7af3f5
BLAKE2b-256 5e93e8bc237a9c5667abc302c825f1a786ba021cff07355d0c7cafaa30c239bb

See more details on using hashes here.

File details

Details for the file vocabsieve-0.12.1-py3-none-any.whl.

File metadata

  • Download URL: vocabsieve-0.12.1-py3-none-any.whl
  • Upload date:
  • Size: 411.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for vocabsieve-0.12.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3d0c6b0e055253d1e228928540e93464b3176e905ab2cac2548f425468535435
MD5 b1fcc15fda57d320353f744c8d848a4c
BLAKE2b-256 5417c9a3eea4400019f023c8395d75c87b96847dfd328c3c2785c066932d2e8f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page