kaegi / MorphMan

Anki plugin that reorders language cards based on the words you know
Other
262 stars 66 forks source link

Morphman doesn't remove word from database even though there's no card with it in the SRS #172

Closed bxkx closed 4 years ago

bxkx commented 4 years ago

Hey. I recently deleted a card that was a leech, removed seen.db, known.db, mature.db and all.db let it recalc. I expected Morphman to tag the other cards with the same target as i+1 as it usually would and put them back in queue. But this time this didn't happen. I'm not sure what's going on. Morphman keeps them as 0, even though I have no card in the SRS with that target anymore. If I check the the databases, it is still sneaking in there with every recalc.

Here's a screenshot of the cards left: 2020-10-24_18-46

As you can see, there're only 4 cards with 騒ぐ and they're all at i+0 because 騒ぐ is still being written into the databases, even when there's no active card with it anymore and therefore should be tagged i+1.

bxkx commented 4 years ago

So I was able to sort this out, I think. I looked around some more to see which card that I've interacted with contained the kanji. I checked my retired cards and one had the kanji in the expression, the i+1 target was something completely else though. I did delete that card though to see what happens and Morphman surprisingly tagged the above mentioned cards correctly again, put them back in queue and removed the word from the databases.

Is there any reason to why it would see the kanji in an expression of a card with a different i+1 target as mature? Is it because the card was suspended? I doubt I'll get an answer seeing that this project is as good as dead, but maybe I'm missing something obvious or somebody else experienced this and figured it out?

On an unrelated note: I thought it happened again today, but turns out when I extracted the morphemes from a list of words for the external.db it just added a word with a kanji that isn't in my list at all. I guess the (newer) mecab parser messing up? Still weirdly enough.

SaraSmiseth commented 4 years ago

It does not matter what the i+1 target was when you learned a card. Morphman will consider every word in the expression of every card that is not new as learned.

bxkx commented 4 years ago

Oh, I see. Thanks! That explains it (and makes sense now that I think about it). I will keep this in mind.

Also I think I just realized where the word is coming from that Morphman/the parser adds when I extract my word list into the external.db. There's 放れる in my list which disappears and is probably replaced by 離れる as they share the same reading. Might be a coincidence, though. (Is there a log or something that shows how it's parsing the list?) I might it a try with the old mecab parser for comparison, but that's not too important. It's mostly working as intended, so I'm good.