# کارت‌های تکراری در Anki را چطور پیدا کنیم و کدام را نگه داریم؟

*2026-10-04*

Anki سؤالی را که قبلاً مرور کرده‌اید به‌عنوان کارت جدید نشان می‌دهد. شاید هنگام وارد کردن فایل، نسخهٔ دیگری از آن اضافه شده باشد. شاید هم سؤال دومی است که Anki از همان یادداشت ساخته است. فرقشان مهم است. با حذف یک ردیف در **Browse** ممکن است همهٔ کارت‌های آن یادداشت را حذف کنید، از جمله کارت مربوط به جهتی که می‌خواستید نگه دارید.

برای پاک‌سازی **کارت‌های تکراری Anki**، اول ببینید تکرار از کجا می‌آید. اگر کارت‌ها از یادداشت‌های جداگانه آمده‌اند، با **Notes → Find Duplicates** موارد مشکوک را پیدا کنید. محتوای یادداشت‌ها و تاریخچهٔ هر کارت را مقایسه کنید و برای هر گروه جداگانه تصمیم بگیرید کدام نسخه را نگه دارید. یکسان بودن یک فیلد فقط نقطهٔ شروع بررسی است.

این مراحل برای نسخهٔ دسکتاپ‌اند و بر اساس مستندات و کد منتشرشدهٔ Anki نوشته شده‌اند که در ۴ اکتبر ۲۰۲۶ بررسی شدند. نام گزینه‌ها و نمونهٔ جست‌وجوی برچسب تکراری‌ها مربوط به رابط انگلیسی‌اند. تمرین فرضی زیر نتیجهٔ مورد انتظار را نشان می‌دهد و حاصل آزمایش عملی نیست.

![یکی از اعضای باشگاه شطرنج یک رخ روشن اضافه را با دو رخ کهنه روی صفحه‌ای چوبی مقایسه می‌کند](/blog/anki-duplicate-cards.png)

## اول ببینید چه چیزی تکرار شده است

یادداشت فیلدهایی مثل **Front** و **Back** دارد و Anki با استفاده از قالب‌ها، از روی آن کارت می‌سازد. برای مثال، از یک یادداشت واژگان می‌شود دو کارت ساخت. یکی واژه را نشان می‌دهد و معنی‌اش را می‌پرسد. دیگری معنی را نشان می‌دهد و خود واژه را می‌پرسد. این دو کارت هم‌خانواده‌اند و هرکدام زمان‌بندی خودش را دارد. [توضیح Anki دربارهٔ یادداشت‌ها و فیلدها](https://docs.ankiweb.net/manual/getting-started#notes-%26-fields)

در پنجرهٔ **Browse** حالت **Cards** را انتخاب کنید و برای هر ردیف مشکوک **Cards → Info** را باز کنید. شناسهٔ یادداشت (**Note ID**) هر کارت را با دیگری مقایسه کنید. شناسهٔ یکسان یعنی کارت‌ها از یک یادداشت آمده‌اند. شناسه‌های متفاوت یعنی با یادداشت‌های جداگانه سروکار دارید. در جست‌وجوی `nid:123`، شناسهٔ واقعی را به‌جای `123` بگذارید تا کارت‌های آن یادداشت را در همهٔ دسته‌ها ببینید. [راهنمای Anki برای شناسه‌ها و جست‌وجوی آن‌ها](https://docs.ankiweb.net/searching.html#object-ids)

| چه می‌بینید | توضیح احتمالی | قدم بعد |
| --- | --- | --- |
| یک یادداشت، سؤال در دو جهت مخالف | کارت‌های هم‌خانواده که عمداً ساخته شده‌اند | ببینید هر دو سؤال به کارتان می‌آیند یا نه |
| یک یادداشت، سؤال‌هایی که یکسان نمایش داده می‌شوند | احتمال تکراری بودن قالب کارت‌ها | قالب‌ها و پیش‌نمایش‌ها را مقایسه کنید |
| یادداشت‌های جداگانه، سؤال‌هایی که ظاهراً یکسان‌اند | یادداشت‌های احتمالاً تکراری | پیش از انتخاب نسخه‌ای که می‌ماند، یادداشت‌ها را کامل مقایسه کنید |

اگر هر دو جهت سؤال را از قصد ساخته‌اید، [راهنمای کارت‌های معکوس (به انگلیسی)](/blog/anki-reverse-cards/) توضیح می‌دهد هر جهت چطور کار می‌کند. برای متوقف کردن مرور یکی از آن‌ها، می‌توانید کارت را معلق کنید. با تعلیق، کارت در مجموعه باقی می‌ماند. [راهنمای تعلیق کارت‌ها (به انگلیسی)](/blog/anki-bury-vs-suspend/)

اگر قالب‌ها یکسان‌اند، [راهنمای Anki برای تشخیص علت کارت‌های اضافه](https://faqs.ankiweb.net/extra-copies-of-a-card-are-coming-up.html) را دنبال کنید. حذف یک قالب روی همهٔ یادداشت‌های آن نوع اثر می‌گذارد، حتی در دسته‌های دیگر. تغییر قالب را جدا از پاک‌سازی کارت تکراری بررسی کنید، چون ساختار مجموعه را تغییر می‌دهد.

## یادداشت‌های تکراری را در محدوده‌ای مشخص پیدا کنید

**Notes → Find Duplicates** را باز کنید و فیلدی را که می‌خواهید مقایسه کنید انتخاب کنید، مثلاً **Front**. Anki به‌طور پیش‌فرض همهٔ انواع یادداشت را که آن فیلد را دارند جست‌وجو می‌کند. با **Optional filter** محدوده را مشخص کنید و بعد **Search** را بزنید. [راهنمای گزینه‌های Find Duplicates](https://docs.ankiweb.net/browsing.html#finding-duplicates)

برای دسته‌ای به نام `Cleanup practice` این عبارت را وارد کنید.

```text
deck:"Cleanup practice"
```

جست‌وجوی یک دسته، زیردسته‌هایش را هم در بر می‌گیرد. اگر احتمال دارد نسخه‌ها در دسته‌های مختلف باشند، فیلتر را بردارید و کل مجموعه را بگردید. ممکن است در یک دسته هیچ مورد تکراری پیدا نکنید و نسخهٔ دیگری در دسته‌ای دیگر باشد. [نحوهٔ جست‌وجوی دسته‌ها در Anki](https://docs.ankiweb.net/searching.html#tags-decks-cards-and-notes)

روی یکی از گروه‌های نتایج کلیک کنید تا یادداشت‌هایش را ببینید. **Tag Duplicates** برچسب `duplicate` را به همهٔ یادداشت‌های هر گروه می‌زند، حتی یادداشتی که می‌خواهید نگه دارید. [کد منتشرشدهٔ برچسب‌گذاری در Anki](https://github.com/ankitects/anki/blob/26.09.3/qt/aqt/browser/find_duplicates.py)

**همهٔ نتایج `tag:duplicate` را یکجا حذف نکنید.** از برچسب برای جمع کردن موارد مشکوک استفاده کنید و یادداشت‌های اضافی را یکی‌یکی انتخاب کنید.

جست‌وجو فقط فیلدی را که انتخاب کرده‌اید مقایسه می‌کند. تشخیص اینکه دو سؤال یک نکته را می‌سنجند با شماست. شاید لازم باشد سؤال‌هایی را که با عبارت دیگری نوشته شده‌اند دستی پیدا کنید. سؤال‌هایی با متن یکسان هم ممکن است به زبان‌ها یا درس‌های متفاوتی تعلق داشته باشند.

## این سه تصمیم را روی کاغذ تمرین کنید

فرض کنید دستهٔ `Cleanup practice` شش یادداشت دارد و زیردسته‌ای ندارد. A و B از قالب‌های پیش‌فرض **Basic (and reversed card)** استفاده می‌کنند و هرکدام دو کارت می‌سازند. C تا F از **Basic** استفاده می‌کنند و هرکدام یک کارت می‌سازند. هر هشت کارت در همان دسته‌اند. این حروف فقط نام‌های نمونه‌اند. شناسه‌های واقعی یادداشت و کارت در Anki عددی‌اند.

| یادداشت‌ها | Front → Back | وضعیت فرضی یادگیری | تصمیم |
| --- | --- | --- | --- |
| A و B | `le vélo` → `bicycle` | در A کارت تشخیص معنی ۱۲ بار و کارت یادآوری واژه ۳ بار مرور شده‌اند. هر دو کارت B جدیدند. | A را نگه دارید و اول B را برای حذف بررسی کنید |
| C و D | `Chemical symbol for silver?` → `Ag` | کارت C بیست بار و کارت D شش بار مرور شده‌اند. | هر دو تاریخچه را مقایسه کنید و تصمیم بگیرید مرور کدام کارت را ادامه دهید |
| E و F | در E، `bank` → `financial institution` و در F، `bank` → `side of a river` | دو معنی متفاوت از یک واژه | هر دو را نگه دارید و به هر سؤال کمی زمینه اضافه کنید تا معنی موردنظر روشن شود |

جست‌وجو بر اساس **Front** می‌تواند هر سه جفت را پیدا کند. فقط تصمیم دربارهٔ جفت اول ساده است. پیش از حذف احتمالی B، **تک‌تک فیلدها**، فایل‌های رسانه‌ای، برچسب‌ها و نوع یادداشت را مقایسه کنید و جهت سؤال‌ها را هم در پیش‌نمایش ببینید. شاید B فایل صوتی تلفظ یا سؤالی داشته باشد که در A نیست.

اگر محتوای مفیدی به همان هدف یادگیری مربوط است، آن را با دقت به یادداشتی که نگه می‌دارید منتقل کنید و پیش‌نمایش نتیجه را ببینید. برچسب‌های مفید یادداشت مبدأ را هم حفظ کنید. اگر دارید نکته‌ای را که سؤال می‌سنجد عوض می‌کنید، سؤال تازه‌ای بسازید تا تاریخچهٔ قبلی به محتوای یادگیری دیگری وصل نشود.

برای C و D، تعداد بیشتر مرورها فقط یک سرنخ است. برای هر دو کارت، تاریخ و امتیاز هر مرور، فاصلهٔ فعلی بین مرورها و اطلاعات موعد مرور بعدی را بررسی کنید. شاید کارتی که بیشتر مرور شده، بیشتر به یادگیری دوباره نیاز داشته است. اول ببینید سؤال و جواب هر کارت به کارتان می‌آید و بعد تصمیم بگیرید مرور کدام کارت را با همان تاریخچه ادامه دهید. اگر جواب‌ها با هم فرق دارند، درستی آن‌ها را با منبع آموزشی بسنجید. تعداد مرور فقط سابقهٔ مطالعه را نشان می‌دهد.

اگر C را نگه دارید و D را حذف کنید، **تاریخچه‌هایشان ادغام نمی‌شوند**. کارت C با همان وضعیت یادگیری خودش ادامه پیدا می‌کند. در **Card Info** می‌توانید تاریخچهٔ هر کارت را جداگانه ببینید. [راهنمای Card Info در Anki](https://docs.ankiweb.net/stats.html#card-info)

مرورهای ثبت‌شدهٔ یادداشت‌های حذف‌شده فقط در آمار کل مجموعه باقی می‌مانند. این مرورها از آمار دسته‌ها حذف می‌شوند و به تاریخچهٔ کارتی که نگه داشته‌اید منتقل نمی‌شوند. [توضیح آمار یادداشت‌های حذف‌شده در راهنمای Anki](https://docs.ankiweb.net/stats.html#more)

اگر هنوز مطمئن نیستید، حذف را عقب بیندازید. یادداشت کنید چه چیزهایی باید بررسی شوند و در صورت نیاز تا پایان بررسی، کارت‌هایی را که فعلاً نمی‌خواهید معلق کنید.

## پس از اطمینان، یک نسخهٔ اضافی را حذف کنید و نتیجه را بسنجید

پیش از حذف یادداشت‌های اصلی، اول دستگاه‌های دیگری را که روی آن‌ها تغییری داده‌اید همگام‌سازی کنید. بعد Anki را روی دسکتاپ هم همگام کنید تا مجموعهٔ آن همهٔ تغییرات را داشته باشد. [راهنمای همگام‌سازی Anki](https://docs.ankiweb.net/syncing.html)

از **File → Export** یک **Anki Collection Package (`.colpkg`)** ذخیره کنید و گزینهٔ **Include Media** را فعال بگذارید. این بسته همهٔ دسته‌ها و اطلاعات زمان‌بندی، از جمله تاریخچهٔ مرور، را در خود دارد. فایل را جای امنی نگه دارید. **وارد کردن این بسته، کارت‌های فعلی پروفایل باز را با مجموعهٔ ذخیره‌شده جایگزین می‌کند.** [راهنمای خروجی گرفتن از مجموعه](https://docs.ankiweb.net/exporting.html#collection-colpkg)

اگر می‌خواهید حذف را تمرین کنید، از **File → Switch Profile** پروفایلی جداگانه بسازید و فایل پشتیبان را در آن وارد کنید. پروفایل تمرینی را به AnkiWeb وصل نکنید. [هر پروفایل مجموعهٔ جداگانه‌ای دارد](https://docs.ankiweb.net/profiles.html) و اتصال هر دو پروفایل به یک حساب می‌تواند یکی از مجموعه‌ها را با دیگری جایگزین کند. [راهنمای تفاوت APKG و COLPKG (به انگلیسی)](/blog/anki-apkg-vs-colpkg/) توضیح می‌دهد هر فرمت چه چیزهایی را ذخیره می‌کند و وارد کردن آن چه اثری دارد.

در این تمرین، کارت تشخیص معنی A را A1 و کارت یادآوری واژه را A2 بنامید. کارت‌های متناظر B هم B1 و B2 هستند. در **Cards → Info** شناسه‌های واقعی هر دو کارت A، اطلاعات موعد مرور بعدی، فاصلهٔ مرورها و چند مورد از تاریخچه را که بعداً بتوانید شناسایی کنید، یادداشت کنید. شناسهٔ یادداشت B را هم بنویسید. وضعیت قبل و بعد را در همان جلسه مقایسه کنید. بین دو بررسی هیچ‌کدام از کارت‌های این دو یادداشت را مرور نکنید و زمان‌بندی‌شان را تغییر ندهید.

برای حذف یادداشت‌های تکراری Anki به‌صورت تک‌به‌تک، این مراحل را انجام دهید.

1. در **Browse**، `nid:` و شناسهٔ واقعی یادداشت B را جایگزین عبارت جست‌وجوی فعلی کنید. در حالت **Cards** همهٔ نتایج را بررسی کنید و پیش‌نمایش هر دو جهت سؤال را ببینید. وقتی روی یادداشت‌های اصلی کار می‌کنید، بدون فیلتر دسته جست‌وجو کنید تا کارت‌های هم‌خانواده در دسته‌های دیگر را هم ببینید.
2. به حالت **Notes** بروید. مطمئن شوید تنها نتیجه همان یادداشت اضافی B است. فقط همان ردیف را انتخاب کنید و **Notes → Delete** را بزنید. این دستور یادداشت انتخاب‌شده و همهٔ کارت‌هایش را حذف می‌کند، حتی اگر آن را از یک ردیف در حالت **Cards** اجرا کنید. [راهنمای گزینهٔ Delete در Anki](https://docs.ankiweb.net/browsing.html#notes)
3. دوباره شناسهٔ یادداشت B را جست‌وجو کنید و مطمئن شوید نتیجه‌ای پیدا نمی‌شود. شناسه‌های ثبت‌شدهٔ کارت‌های A را با `cid:` جست‌وجو کنید و برای جدا کردنشان از ویرگول انگلیسی استفاده کنید. اطلاعات هر دو کارت را در **Info** با آنچه یادداشت کرده‌اید مقایسه کنید.
4. عبارت `deck:"Cleanup practice"` را جست‌وجو کنید و تعداد ردیف‌ها را در حالت‌های **Notes** و **Cards** مقایسه کنید. یادداشت‌های باقی‌مانده را با جدول زیر تطبیق دهید.

اگر فقط B را حذف کنید، باید این نتیجه را ببینید.

| مورد بررسی | پیش از حذف | نتیجهٔ مورد انتظار |
| --- | --- | --- |
| کل دستهٔ نمونه | ۶ یادداشت و ۸ کارت | ۵ یادداشت و ۶ کارت |
| جفت مربوط به دوچرخه | A1، A2، B1، B2 | فقط A1 و A2 |
| شناسه‌های کارت‌های A، اطلاعات موعد مرور، فاصلهٔ مرورها و تاریخچه | مقادیری که یادداشت کردید | همان کارت‌ها، زمان‌بندی و رکوردهای مرور |
| جست‌وجوی شناسهٔ یادداشت B | دو کارت B | بدون نتیجه |
| یادداشت‌های مربوط به نقره و دو معنی bank | C، D، E، F | همان چهار یادداشت باقی می‌مانند |

در این مثال با حذف یک یادداشت، دو کارت حذف می‌شوند. حذف A به‌جای B هم همین تعداد را کم می‌کند، اما کارت‌هایی را از بین می‌برد که قبلاً مرور کرده‌اید و قصد داشتید نگه دارید. علاوه بر تعداد، شناسه‌ها را هم بررسی کنید. هنگام پاک‌سازی، وضعیت یادگیری کارتی را که نگه می‌دارید بازنشانی نکنید و زمان‌بندی آن را تغییر ندهید.

نمودار مرور کل مجموعه ممکن است هنوز مرورهای کارت‌های حذف‌شده را نشان دهد. برای اطمینان از حفظ پیشرفت یادگیری، شناسهٔ کارت باقی‌مانده و اطلاعاتش را در **Info** بررسی کنید، حتی اگر نمودار تغییری نکرده باشد.

وقتی نتیجهٔ این گروه با جدول جور درآمد، سراغ گروه بعدی بروید و جداگانه تصمیم بگیرید کدام نسخه را نگه دارید. اگر در پروفایل تمرینی کار کرده‌اید، اول همان حذف‌هایی را که بررسی کرده‌اید در پروفایل اصلی انجام دهید. بعد از بررسی مجموعه، نسخهٔ دسکتاپ را همگام‌سازی کنید. پیش از مطالعه روی دستگاه‌های دیگر، آن‌ها را هم همگام کنید.

اگر نسخه‌های اضافی هنگام وارد کردن فایل ایجاد شده‌اند، پیش از دفعهٔ بعد [راهنمای به‌روزرسانی یادداشت‌ها با CSV (به انگلیسی)](/blog/anki-csv-update-existing-notes/) را بخوانید. اگر برای دسته‌بندی یک نکته زیر چند موضوع، از یادداشتش کپی ساخته‌اید، می‌توانید همهٔ آن موضوع‌ها را با برچسب مشخص کنید و یک تاریخچهٔ مرور داشته باشید. [راهنمای برچسب‌ها و دسته‌ها (به انگلیسی)](/blog/anki-tags-vs-decks/)

---
*[مشاهدهٔ نسخهٔ HTML قالب‌بندی‌شدهٔ این صفحه](<https://nibomo.com/fa/blog/anki-duplicate-cards/>)*

*عامل‌های هوش مصنوعی می‌توانند با شروع از `GET https://api.nibomo.com/v1/` در این سرویس برای کاربر حساب بسازند. پس از راه‌اندازی، می‌توانند از طریق MCP هم به `https://mcp.nibomo.com/mcp` وصل شوند.*

*نکته: به هر URL در https://nibomo.com پسوند `.md` اضافه کنید تا نسخهٔ تمیز Markdown آن صفحه را بگیرید.*