mortii / anki-morphs

A MorphMan fork rebuilt from the ground up with a focus on simplicity, performance, and a codebase with minimal technical debt.
https://mortii.github.io/anki-morphs/
Mozilla Public License 2.0
55 stars 8 forks source link

The K (skip) Rational #78

Closed HQYang1979 closed 9 months ago

HQYang1979 commented 9 months ago

image

Morphman logic: when press K, all related cards are buried, and they are re-arranged to the end of the whole collection's queue. Next day they are unburied, but will appear only when you finish the whole deck.

Ankimorph logic: when press K, all related cards are suspended, and they will never appear unless unsuspended.

I'd say morphman is a bit winning, because when at the end of the day, you will still want to see those cards. A second chance maybe.

But it is just my thought.

You guys are doing an excellent job, I feel like I can delete morphman now.

Vilhelm-Ian commented 9 months ago

@HQYang1979 that's not true. AnkiMorphs by default buries those cards. It only suspends them if image you have that option enabled

HQYang1979 commented 9 months ago

I got this error message when I recalc, is it because my frequency list is too long? Three langs 50K.

Error An error occurred. Please start Anki while holding down the shift key, which will temporarily disable the add-ons you have installed. If the issue only occurs when add-ons are enabled, please use the Tools > Add-ons menu item to disable some add-ons and restart Anki, repeating until you discover the add-on that is causing the problem. When you've discovered the add-on that is causing the problem, please report the issue to the add-on author. Debug info: Anki 23.10.1 (fac9e0ee) Python 3.9.15 Qt 6.6.0 PyQt 6.6.0 Platform: Windows-10-10.0.23590 Flags: frz=True ao=True sv=3 Add-ons, last update check: 2023-11-30 11:03:10 Add-ons possibly involved: ⁨ankimorphs-alpha⁩

Caught exception: Traceback (most recent call last): File "aqt.taskman", line 138, in _on_closures_pending File "aqt.taskman", line 82, in File "aqt.taskman", line 102, in wrapped_done File "aqt.operations", line 252, in wrapped_done File "C:\Users\Administrator\AppData\Roaming\Anki2\addons21\472573498\recalc.py", line 761, in _on_failure raise error File "concurrent.futures.thread", line 58, in run File "aqt.operations", line 242, in wrapped_op File "C:\Users\Administrator\AppData\Roaming\Anki2\addons21\472573498\recalc.py", line 76, in _recalc_background_op _update_cards_and_notes(am_config) File "C:\Users\Administrator\AppData\Roaming\Anki2\addons21\472573498\recalc.py", line 282, in _update_cards_and_notes morph_priority: dict[str, int] = _get_morph_priority(am_db, config_filter) File "C:\Users\Administrator\AppData\Roaming\Anki2\addons21\472573498\recalc.py", line 442, in _get_morph_priority morph_priority = _get_morph_frequency_file_priority( File "C:\Users\Administrator\AppData\Roaming\Anki2\addons21\472573498\recalc.py", line 488, in _get_morph_frequency_file_priority key = row[0] + row[1] IndexError: list index out of range

HQYang1979 commented 9 months ago

@HQYang1979 that's not true. AnkiMorphs by default buries those cards. It only suspends them if image you have that option enabled

I see. Thank you very much!

HQYang1979 commented 9 months ago

mmm, I unchecked Suspend new cards with only known morphs, and I could not see the action of skipping xxx cards now....

mortii commented 9 months ago

Morphman logic: when press K, all related cards are buried, and they are re-arranged to the end of the whole collection's queue. Next day they are unburied, but will appear only when you finish the whole deck.

@HQYang1979 The default AnkiMorphs does the same thing, but it does not immediately bury all related cards--related cards are only buried if the user "sees" them, i.e. they are skipped.

Do you think the related cards should be buried immediately? I will be slower, so I'm not sure if it is a good idea.

Vilhelm-Ian commented 9 months ago

@mortii if there is one thing I remember from MorphMan is that it slowed down anki in so many ways. Wouldn't wish to go back to that. A different approach is to just change "suspend cards with only known morphs" to "bury cards with only known morphs" . I wrote here a paragraph that is irrelevant because of the message after) Actually now that I am writing I realize that automatically suspending them is much better than burrying them since you have to suspend them once. While you will have to burry them every day

HQYang1979 commented 9 months ago

Come to think of it, "Suspend cards with only known morphs" (SCWOKM) might be a good thing.

When I review on morphman in a small deck (like just one episode or one series), it will bury the related cards (with the same unknown/known word, or siblings), and move them to the end of the queue; the next day, the buried siblings will be unburied but you are not going to see them soon because they are at the end of the queue. I continue reviewing until all T1 cards are done. At this time the siblings will appear.

I cannot say this is the best way to do, but that's the way I was with morphman. But if you review a huge deck (1M cards etc.), you will not see the end of the queue that soon).

I am getting used to SCWOKM, I think it might work. I can always unsuspend them. At the moment, I just think that moving the siblings to the end of the queue might be a better option.

mortii commented 9 months ago

When I review on morphman in a small deck (like just one episode or one series), it will bury the related cards (with the same unknown/known word, or siblings), and move them to the end of the queue; the next day, the buried siblings will be unburied but you are not going to see them soon because they are at the end of the queue. I continue reviewing until all T1 cards are done. At this time the siblings will appear.

Ah I see, that is a very different approach to using the add-on compared to how I'm doing it, but it might be a great approach.

Are you using Recalc at any point in this process? If you don't use Recalc in AnkiMorphs then the cards will not be moved to the back of the queue.

HQYang1979 commented 9 months ago

I use Recalc all the time, I want to see the K going up.

HQYang1979 commented 9 months ago

Ah I see, that is a very different approach to using the add-on compared to how I'm doing it, but it might be a great approach.

It gives you the illusion of satisfaction that wow I finish a DECK!

Vilhelm-Ian commented 9 months ago

Ah I see, that is a very different approach to using the add-on compared to how I'm doing it, but it might be a great approach.

It gives you the illusion of satisfaction that wow I finish a DECK!

Wouldn't the suspend cards with all known morphs do the same?

mortii commented 9 months ago

When I review on morphman in a small deck (like just one episode or one series), it will bury the related cards (with the same unknown/known word, or siblings), and move them to the end of the queue; the next day, the buried siblings will be unburied but you are not going to see them soon because they are at the end of the queue. I continue reviewing until all T1 cards are done. At this time the siblings will appear.

@HQYang1979

Let's make this more explicit by using steps:

  1. Start studying small deck
  2. answer/set known and skip all the cards until the deck is empty
  3. Recalc
  4. The next day you will now see cards that were buried the previous day

Does this not happen in the same way on both morphman and ankimorphs?

HQYang1979 commented 9 months ago

Wouldn't the suspend cards with all known morphs do the same?

Mmm, kinda. But suspend is not going to get the siblings back automatically next day.

@mortii Yes, this is exactly what I mean. Again, I am not sure it is the best or proper way to do immersion, but I find it reassuring.

mortii commented 9 months ago

@mortii Yes, this is exactly what I mean. Again, I am not sure it is the best or proper way to do immersion, but I find it reassuring.

When you do these steps on ankimorphs:

1. Start studying small deck
2. answer/set known and skip all the cards until the deck is empty
3. Recalc
4. The next day you will now see cards that were buried the previous day

Do you get a different result than when you do them on morphman? If you don't get the same result, what is different? Does the 4th step not work?

HQYang1979 commented 9 months ago

Do you get a different result than when you do them on morphman? If you don't get the same result, what is different? Does the 4th step not work?

I think this is exactly morphman's been doing. If we follow these steps, the result should be the same.

Having said that, I kinda like this feature, can it be a option here: you can choose to use suspend or bury instead of just suspend or bury. And it sure will give users more ways to explore their own approaches of study.

image

HQYang1979 commented 9 months ago

when the cards or notes are skipped, where will they go if not suspended? Are they going to the end of the collection queue? @mortii @Vilhelm-Ian

Vilhelm-Ian commented 9 months ago

when the cards or notes are skipped, where will they go if not suspended? Are they going to the end of the collection queue? @mortii @Vilhelm-Ian

Currently there are two things that happen.

  1. By defauflt when they are recalculated they go to the end of the que
  2. When you learn a card every card with the same unknown morphs is buried for the current day
  3. If you press mark as name same happens as two
mortii commented 9 months ago

I think this is exactly morphman's been doing. If we follow these steps, the result should be the same.

Having said that, I kinda like this feature, can it be a option here: you can choose to use suspend or bury instead of just suspend or bury. And it sure will give users more ways to explore their own approaches of study.

image

@HQYang1979 If the steps work then the option you describe ("Bury new cards with only known morphs"), should not be neccessary right? It would basically do what is already done by default

HQYang1979 commented 9 months ago

@HQYang1979 If the steps work then the option you describe ("Bury new cards with only known morphs"), should not be neccessary right? It would basically do what is already done by default

Yes, @Vilhelm-Ian yesterday explained it to me, it is not necessary. I've been using Ankimorph whole day long, it's smooth and as expected.

Thank you guys for the effort! I have no need for morphman now.

github-actions[bot] commented 6 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.