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
48 stars 6 forks source link

Filter in browser all cards with one unknown lemma that i've already seen #189

Closed Vilhelm-Ian closed 4 months ago

Vilhelm-Ian commented 4 months ago

I am frustrated when I see a card that I already know since it shows me another form of a lemma I already know

I would like to be able to filter the browser all the cards that have 1 unknown morph that is a lemma that I've already seen so I can mass tag them as known

Describe alternatives you've considered Making the morphemizer shedule cards with different lemmanization forms as the same

mortii commented 4 months ago

I would like to be able to filter the browser all the cards that have 1 unknown morph that is a lemma that I've already seen so I can mass tag them as known

This is a little ambiguous, could you describe it with a stepwise workflow, e.g something like this:

  1. review a new card
  2. I want to press a keyboard shortcut to open the browser that has all the cards that that lemma
  3. mass tag them

An example of of what you would like\imagine the search query in the browse window to look like, would be helpful.

Also, maybe you could do that in #141 instead of an issue, since it already has some context about these inflection issues you are having,

Vilhelm-Ian commented 4 months ago

I want to be able to go the browser press a button that will show all cards with 1 unknown, and that lemma is a form an already known morph. So I can select them all and mark as known.

I known it's a niche use case. Just wanted to hear your thoughts

mortii commented 4 months ago

Would it not be easier to press "Ctrl+Shift+L" when you reviewing a card and then select all of them except the current one and then suspend those cards?

Btw, did you see my comment here: https://github.com/mortii/anki-morphs/issues/120#issuecomment-1970966789 ? A solution like that would make this kind of thing redundant.

Vilhelm-Ian commented 4 months ago

no I did not see that comment. You are right if I would implement that it would become redudent

xofm31 commented 4 months ago

Looking at #120

if you can remake _get_card_difficulty_and_unknowns_and_learning_status() to produce your desired results, then we can maybe add that algorithm as a separate option people can choose instead of the current algorithm.

I'm interested in a different card difficulty algorithm also. Maybe we could coordinate?

It seems like if there is going to be a selection of algorithms, maybe there could be

I'd have to try to code it before being able to tell how complicated this would be to put all in one function.

mortii commented 4 months ago

I should mention that I don't love the idea of having multiple algorithms, nor further complicating the current one, so I might change my mind about this entire enterprise. Sorry for being fickle and potentially wasting your time, but It's a little tricky to give judgement calls on this kind of thing without seeing it in action.

Vilhelm-Ian commented 4 months ago

Looking at #120

if you can remake _get_card_difficulty_and_unknowns_and_learning_status() to produce your desired results, then we can maybe add that algorithm as a separate option people can choose instead of the current algorithm.

I'm interested in a different card difficulty algorithm also. Maybe we could coordinate?

It seems like if there is going to be a selection of algorithms, maybe there could be

* "Prioritize sentences based on difficulty" vs "Prioritize words based on usefulness"

* "Treat related lemmas as being the same" or not

* "Try to include another morph that is in learning stage for reinforcement" or not (this is a thing in the Morphman code comments, and it seems like a good idea, but doesn't seem to really work)

I'd have to try to code it before being able to tell how complicated this would be to put all in one function.

I wouldn't mind. I won't be able to do anything till the end of the month

xofm31 commented 4 months ago

I should mention that I don't love the idea of having multiple algorithms, nor further complicating the current one, so I might change my mind about this entire enterprise. Sorry for being fickle and potentially wasting your time, but It's a little tricky to give judgement calls on this kind of thing without seeing it in action.

Understood. I'm not sure when I'll get to thinking about this more, but hopefully we can find a solution that will be intuitive for everyone. If not, it will be fine. Once I throw something together, I'll submit a PR and then you can take a look.

Before working on it, though, I'd like to understand what you are thinking about for a "study plan." The Morphman study plan generates a new "frequency list" which lists unknown morphs in the order that it has determined will be the most useful. It doesn't include any known morphs. This will be problematic for the way that you are calculating difficulty right now, because the majority of the known words would be missing from the frequency list.

Vilhelm-Ian commented 4 months ago
        if morph.lemma_and_inflection not in morph_priority:
            # Heavily penalizes if a morph is not in frequency file
            difficulty = morph_unknown_penalty - 1

you are talking about this line. We could add a condition that skips this step if the morphs in the known db

mortii commented 4 months ago

Before working on it, though, I'd like to understand what you are thinking about for a "study plan." The Morphman study plan generates a new "frequency list" which lists unknown morphs in the order that it has determined will be the most useful. It doesn't include any known morphs. This will be problematic for the way that you are calculating difficulty right now, because the majority of the known words would be missing from the frequency list.

I thought it was just concatenating the frequency lists of each file? Even if morphman doesn't do that, would that approach not be adequate?

you are talking about this line. We could add a condition that skips this step if the morphs in the known db

I don't know if you are directing that at me, but as far as I'm concerned the new function(s) that calculates the difficulty can contain whatever you want as long as it produces good results, and then I can take a look at it.

You guys might want to create a discussion thread about this, its reply feature makes brainstorming easier.

xofm31 commented 4 months ago

I thought it was just concatenating the frequency lists of each file? Even if morphman doesn't do that, would that approach not be adequate?

I think you'd at least need to filter out the words that were in first file when you do the second file. Also, the study plan allowed you to say what percent coverage you wanted to get to before going to the next file. This is for sometime later, so I'll think about the simplest way to get the core functionality.

Vilhelm-Ian commented 4 months ago

new discussion #191

mortii commented 4 months ago

I think you'd at least need to filter out the words that were in first file when you do the second file. Also, the study plan allowed you to say what percent coverage you wanted to get to before going to the next file. This is for sometime later, so I'll think about the simplest way to get the core functionality.

Yeah, it wouldn't be a pure concatenation, removing duplicate morphs would be necessary of course. Let's keep the study plan discussion confined to #155 though, having it all in one place makes it easier to go through at a later time.