Lexical Coverage Analyzer
An Anki add-on that estimates your Spanish vocabulary level by analyzing the words on your cards and comparing them against a frequency-ranked word list. It reports your estimated CEFR level (A1βC2), corpus coverage percentage, and a breakdown of your known vocabulary by band.
Requirements
- Anki 2.1.50 or later
- Internet connection on first run (to install dependencies)
The add-on will automatically install the following Python packages on first run:
- spaCy β for lemmatization of card text
- matplotlib β for the coverage chart
- es_core_news_sm β spaCy's small Spanish language model (~12MB download)
Installation
- Download the
lexical_coverage folder
- Place it in your Anki add-ons folder:
- Mac:
~/Library/Application Support/Anki2/addons21/
- Windows:
%APPDATA%\Anki2\addons21\
- Linux:
~/.local/share/Anki2/addons21/
- Restart Anki
- On first launch, Anki will install the required dependencies β this may take 30β60 seconds depending on your internet connection
Setup β Tagging Your Cards
The analyzer works by analyzing all cards with a specific tag. Before using it, make sure all your Spanish cards are tagged consistently. We recommend using a single tag like Spanish for all your Spanish vocabulary cards.
To tag cards in bulk:
- Open the Anki Card Browser (
Browse in the main window)
- Select the cards you want to tag
- Right-click β
Add Tags and enter your tag (e.g. Spanish)
Usage
- Open Anki and go to Tools β Lexical Coverage Analyzer
- Enter the tag you used for your Spanish cards (e.g.
Spanish)
- Click Analyze
- Results will appear after a few seconds
Understanding Your Results
Estimated CEFR Level
Your overall vocabulary level based on how much of the most frequent Spanish words you know. Levels range from A1 (beginner) to C2 (near-native).
| Level | Words covered | Coverage threshold |
|---|---|---|
| A1 | Top 1,000 | 90% |
| A2 | Top 2,000 | 92% |
| B1 | Top 3,000 | 94% |
| B2 | Top 5,000 | 96% |
| C1 | Top 8,000 | 98% |
| C2 | Top 25,000 | 99% |
Corpus Coverage %
The percentage of words in real Spanish text that you would recognize. Based on subtitle corpus frequency data:
| Coverage | What it means |
|---|---|
| ~90% | You understand most casual text but frequently hit unknown words |
| ~95% | Comfortable reading with occasional lookups (B2 territory) |
| ~98% | Near-fluent reading comprehension (C1+) |
| ~99% | You almost never encounter unknown words |
CEFR Band Chart
A bar chart showing your coverage percentage for each CEFR band. Green bars indicate bands you have reached; red bars indicate bands you haven't reached yet. The dashed line on each bar shows the target threshold for that level.
Word Lists
Expandable lists showing your known words sorted by CEFR band, plus words beyond C2 and words not found in the frequency list. Click any section header to expand it.
Output Files
The add-on writes two files to the lexical_coverage/ folder after each analysis:
unknown_words.txt β a full list of words from your cards that weren't found in the frequency list. Use this to spot misspellings in your cards or identify vocabulary gaps.
Limitations
- Card quality matters β misspellings and typos in your cards will appear as unknown words. Use
unknown_words.txt to identify and fix these.
- Proper nouns β names of people, places, and fictional characters will always appear as unknown words since they're not in the frequency list. This is expected.
- Non-Spanish words β if your cards contain English translations or other languages, those words will appear as unknown.
- First field only β the analyzer reads only the first field of each card (conventionally the front). Cards with non-standard note types may not be analyzed correctly.
- Analysis time β analyzing a large deck (2,000+ cards) may take several seconds. Anki's UI may be unresponsive during this time.
Frequency List
The add-on uses a lemmatized Spanish frequency list derived from the Hermit Dave FrequencyWords project (Creative Commons licensed), covering the 50,000 most common Spanish words from subtitle corpora. The list has been lemmatized using spaCy's large Spanish model (es_core_news_lg) to ensure consistent matching against your card text.
Reporting Issues
If you notice words being incorrectly lemmatized or other unexpected behavior, please open an issue on the project repository. Including a sample from your unknown_words.txt is helpful for diagnosing lemmatization problems.