Clean up Russian vocabulary CSV exports from Kindle vocabulary extensions (like Kindle Cloud Companion). Use when the user asks to process or clean up a Kindle vocabulary CSV file.
Transform vocabulary exports from Kindle reading sessions into flashcards for recognition practice.
CSV with 4 columns:
word - the highlighted word/phraseprevious - the sentence before the highlighted wordcurrent - the sentence containing the highlighted wordnext - the sentence after the highlighted wordSee the examples/ directory:
examples/kindle-raw.csvexamples/kindle-cleaned.csvThese cards are for recognition (passive vocabulary), not production:
Use --mode recognition when creating the deck:
python3 create_deck.py --mode recognition cleaned.csv -o passive.apkg
Important: Do NOT automatically create the deck after generating the CSV. The user often wants to review and edit the CSV first. Ask the user if they want to create the deck.
5 columns, comma-separated:
| Column | Content |
|---|---|
| 1 | Russian word/phrase with stress marks |
| 2 | Single English translation (context-specific) |
| 3 | Example sentence in Russian |
| 4 | English translation of example |
| 5 | Tags (space-separated, e.g., book harry_potter) |
Always provide exactly ONE translation that matches the meaning in the original context. Do NOT list multiple translations separated by "/" or "or".
❌ nonsense / rubbish — too many options
✅ nonsense — one clear translation
❌ to stare / to gaze — confusing for flashcards
✅ to stare — matches the context
This makes flashcards easier to process mentally. If a word has multiple meanings, choose the one that fits the book's context.
Amazon's Kindle sometimes merges adjacent highlights into a single entry. When the word column contains multiple unrelated words, split them into separate cards.
Signs of merged selections:
Examples of merged selections to split:
"зато усатый" → two cards: "зато" and "усатый"
"неподвижно неотрывно" → two cards: "неподви́жно" and "неотры́вно"
"скривилась разжевала" → two cards: "скри́виться" and "разжева́ть"
Examples of genuine collocations to keep together:
"дрожь бросало при мысли" → "дрожь брос́ает при мы́сли" (idiom: to shudder at the thought)
"задним ходом" → "за́дним хо́дом" (in reverse)
"шло своим чередом" → "идти́ свои́м чередо́м" (to take its course)
Use your judgment: if the words form a meaningful phrase, expression, or collocation, keep them together. If they're clearly unrelated words that Amazon merged by mistake, split them.
The current column contains the sentence where the word appears. Use this for:
(m.) if masculineдень (m.) — day, гость (m.) — guest, дождь (m.) — rainimperfective/perfective (e.g., ви́деть/уви́деть)The book sentences are often:
Create a simpler, clearer sentence that:
Add tags to help filter vocabulary by source:
book as the first tagbook harry_potter or book master_margaritaThe user should specify what tags to use for the book when invoking this skill.
Wrap any field containing commas in double quotes.
Raw (from examples/kindle-raw.csv):
word,previous,current,next
"чепухи","Глава первая...","Трудно было вообразить, что они окажутся замешаны в делах необычных или загадочных - они не признавали всякой там чепухи.","Мистер Дурслей работал директором..."
"зато усатый","Мистер Дурслей работал директором...","Он был большой, грузный мужчина почти без шеи, зато невероятно усатый.","У Дурслеев имелся сынок..."
Cleaned output (see examples/kindle-cleaned.csv):
чепуха́,nonsense,Он не признаёт всякой чепухи.,He doesn't accept any nonsense.,book harry_potter
за́то,but,У него нет опыта. Зато он быстро учится.,He has no experience. But he learns fast.,book harry_potter
уса́тый,mustachioed,Мой дед был высокий и усатый.,My grandfather was tall and had a mustache.,book harry_potter
Note: "зато усатый" was split into two separate cards because they are unrelated words.