Feature Suggestions

mikelove

皇帝
Staff member
Yeah - we designed the text export to be compatible with 1.0, and for that, duplicates are the only way to get cards into all of the categories they were in before. However, if you export cards from Manage Cards instead (do a search there for "all cards", then use the Export command in the Batch screen), that should skip outputting category headers altogether, and only include each card once (in whatever sort order they were in in Manage Cards).
 

Alexis

状元
1) Would be useful to have the ability to save an advanced search and have it show up as a new search type in the "Manage flashcards" search drop-down options. For example, I usually run an advanced search to find 'all cards that were incorrect and that were reviewed after midnight'. But when I switch to another type of search, I have to re-enter the advanced search criteria later on.

2) Would be nice to have the "info" screen for flashcards fill the entire screen (on applicable devices) by expanding the definition field.

Thanks!
Alexis
 

mikelove

皇帝
Staff member
Good idea on saved searches in Manage Flashcards, those could definitely be handy. (we could probably stand to allow more than 3 search fields at a time, too)

Card Info is actually getting a full-on redesign in 2.1, I think, with multiple tabs - even on a larger display it'd still be rather cramped, and there's a lot more information we could show (detailed review history, predicted date of next review in rep-spaced, etc), so having the definition in a separate "preview" tab makes sense, though we'd still want at least the headword + Pinyin to be visible in any tab I think.
 

Alexis

状元
For free answer tests, can we make the "require filed" option work when "show sketchbox" is selected?

ie. If I check "require filled" and "show sketchbox" options, it would not reveal the answer unless there is some input in the sketchbox.

This would help alot when I accidentally double tap in writing tests and accidentally reveal the answer.

Thanks!
Alexis
 

Alexis

状元
Alternatively, something that might work for ALL tests is to measure the time between clicking the "correct/incorrect/score" button and the "reveal" button. If the time between them is too small, then it will not reveal. This would be somewhat analogous to a "switch debouncing routine".
 

mikelove

皇帝
Staff member
There actually is some bounce protection built into the flashcard button handling system already, though perhaps the interval is too short - we could add a preference option for that, I guess, but we wouldn't want it to be too long by default since it feels a lot more buggy to tap on the button and have it do nothing.
 

jiacheng

榜眼
Upcoming workload:
I was thinking that it would be useful to try and predict your upcoming workload when using the repetition spaced algorithm. Say, given your historical miss rate, and cards that are due to be shown. Or even simply to easily see how many cards you have that are due to be shown at some point in the future. Could be useful in telling whether or not it's a good time to add in some new material.

hit/miss rate relative to score:
There is already an overall correct % given in the statistics screen. It would be interesting to be able to break that percentage that down relative to a card's score. Not sure if you'd only take into account a card's most recent review, or if you would do it based on historical data as well.
 

mikelove

皇帝
Staff member
We've had a few requests for some sort of upcoming review calendar, actually - not too difficult programming-wise, but another thing that'd be better in conjunction with a new scoring algorithm (so that there'd be more you could do to compensate for having too many / too few upcoming cards).

I'm not quite sure what the point would be of reviewing correct %s relative to card scores - what could you do with that information?
 

mikelove

皇帝
Staff member
Wouldn't be that difficult to implement - we've already got the outlines and the ability to match taps / line draws (unused but implemented in an earlier 2.0 beta) to them - but I'm not that wild about that particular UI; drawing a stroke and having it just disappear if it's wrong kind of bugs me. It'd be especially annoying on the low-accuracy iPhone digitizer, since it'd be way too easy to hit the wrong stroke (or mistakenly hit the right one when you had the wrong one in mind). If we could find a better approach we might consider adding a pen-movement-based stroke order test, but in general I'd rather stick with our current outline system, perhaps adding the ability to match stroke direction at some point.
 

Alexis

状元
I currently use the stroke order diagrams to test stroke order (stroke directions would be great!) and the free answer (with writing box) to test character recall/writing.

But I was thinking more of an additional mode added to free answer that would let you test your character recall AND help you to improve your writing.
1) gave you a character writing box (divided, with light/dashed lines, into quadrants)
2) An option for a thicker pen
3) When revealing the answer, it would underlay the original character (in a different color underneath) so you can see how close you were to the real character. I *really* like the font style used for the stroke order diagrams; this would be the ideal underlay character.
 

jiacheng

榜眼
My thinking on the % correct breakdown by score was just to try and get a general feel for how well the algorithm is matching your memory curve. I had the thought that if your percentage correct was very high or low, you might actually be able to study more efficiently by raising or lowering the the aggressiveness setting.

For my current study regimen, I have 3 tests basically testing the same material, but with different directions. Because of this redundancy, I suspect that it might be more efficient to increase the aggressiveness from the default setting, but I'm a bit reluctant to mess with it since it's working pretty well. It would be nice if we had some sort of guideline so that we could make a more informed decision about what aggressiveness setting is going to give you the best results.

Clearly, you can lower your miss rate by studying cards more often, but there is a point at which the extra work doesn't justify the improvement since by increasing the time you spend on maintaining knowledge of words you already know, you decrease the time you can spend learning new ones. To be able to find that sweet spot would be very useful.
 

mikelove

皇帝
Staff member
Alexis - that wouldn't be too hard, I think; might even be able to do something cool with it like, say, feed the strokes in each box to the handwriting recognizer and see if one of the possible matches was the correct character. Or just roughly compare the stroke count / positions and score it correct or incorrect (which is I guess basically what Skritter does, but I'd much rather do it after drawing the whole thing than live).

jiacheng - that's reasonable, but I think we could come up with a report that was more specifically tailored to that - not look at a pure correct percentage but at recent history weighted towards the last few answers, and plot that against the difficulty factor. That'd give you a nice graph where you could see if there were any bumps / valleys / etc that corresponded to understudied / overstudied cards.

Of course we could also do something that adjusted the calculations dynamically based on your recall %, like later versions of SuperMemo do, but I agree with the creator of Anki that it's not good to have such an opaque system (and that it can have perverse side effects, like having an answer score of 4 result in a longer interval than a score of 6).
 

johnh113

榜眼
Dear Mike,

I currently pronounce the words out loud as I'm doing my flashcards. Do you think it would make any sense to activate the microphone so that I could hear myself (in my headphones) saying the character? The way I envision it, I would listen to the character and then listen to my pronunciation, both through the headphones. No recording involved, just a direct feed of the microphone input into the headphones.

John
 

caesartg

榜眼
Dear Mike

Perhaps there's already a way to do this...

As I've been studying some new lessons, I've been building up my flashcard lists of vocab, as well as lists of characters. I use the ABC, ACE and Oxford dictionaries for vocab and the UNI dictionary for the characters. I have a set of 8 separate test profiles set up (4 aimed at character study and 4 at vocab study), each with their own scorefile and each configured for a specific test (Character - writing, stroke order, pronunciation and understanding; vocab - reading, listening, pronunciation and writing). This is the method that has so far worked very well indeed for me.

In the past I used a set of the 5000 most frequently-used characters for my character tests (starting with the first 1000 say and then adding as I 'learn' them via the 'repetition spaced' algorithms). However, this fairly unstructured approach is much less useful than studying the characters used in my current lesson vocab.

In order that I can better study the characters used in the vocab I'm studying, is there any function that would allow me to take a set of flashcards and output the unique single character flashcards? At the moment, the only two ways I can see is completely manually one by one as I'm studying the vocab flashcards using the pop-up and then setting it to the UNI dictionary before adding them (a horrible method). The other way would be to export a set of flashcards and manually build a new flashcard file using a suitable text editor.

I asked about something similar before, where I was talking about a function that could build a set of single character flashcards from a text file (E.g. Say I have a Chinese BBC news article) - I think a single character flash card list would programmatically be quite easy to implement (unlike one that would build a vocabulary list say).

Cheers

Ben
 

mikelove

皇帝
Staff member
johnh113 - well maybe, but once we're recording it I'd think we'd want to play it back too - let you compare what you said with the correct pronunciation. Fairly basic / common feature already supported by a lot of other programs, so we ought to do it too.

caesartg - there isn't really any good way to do that, no - interesting idea, though, particularly useful for stroke order tests.
 

caesartg

榜眼
Hi Mike

Seeing as you're rethinking the Flashcard system just now, it might be worthwhile to include some kind of automatically generated character practise based on the user's vocab study. E.g. To give a basic example - if a complete beginner were to study the two pieces of vocab 'Ni3hao3' and 'Ni3men' they could also get a separate quiz that could test them on the 'ni3', 'hao3' and 'men' characters.

My two cents on this:-

Based on the current system, you would have the following four test types for characters and the system would rely on the UNI dictionary for all but the stroke order: MEANING (using the UNI dictionary: SELF SCORED - Headword), WRITING (using the UNI dictionary - FREE ANSWER show: pron.+defn; ask for: headword), STROKE ORDER and PRONUNCIATION (using the UNI dictionary: FREE ANSWER show: headword; ask for: pronunciation).

Obviously, using the current system, I have to set pronunciation manually where there are multiple pronunciations for a character. I pick the one that crops up the most in basic vocab. Maybe you would skip a pronunciation test based on this inaccuracy, however, I'd argue that it's generally worth it. Of course, you could simply change the test to have extra user input boxes for the other pronunciations!

Each of these tests would behind-the-scenes best have a separate scoring (with high aggressiveness) as users may have difficulties with any particular character's writing, pronunciation, meaning or stroke order. However, for simplicity sake, the user would just see the one test - the system would work out whether it needs to focus more on the writing of say 鬱 of 憂鬱症, or the stroke order of 機, the meaning of 軒 or the pronunciation of 齒 by the results of the individual test scorings for each character.

Hope this makes sense! :-(

Cheers

Ben
 

mikelove

皇帝
Staff member
Makes sense, but this is actually a bit more of an overhaul than we're currently planning - would really be a radical reinvention of the whole idea of a "card," at least as far as its internal representation in our system is concerned. Might be a possibility for some farther-off release like 3.0 or 4.0, but for the more immediate future we're mostly thinking about improvements to the scoring / card management / card selection / testing systems which keep the basic concepts of cards / categories / etc intact. (of course if, say, Android and BlackBerry and iPhone and Symbian would have the decency to vanish off the face of the earth and we'd be left with Windows Mobile having 80% market share we could get to these things a lot faster :)
 
*Problem ;-)

I'm using manual scoring combined with a score filter threshold (and random card selection). As cards increase in score they cross the threshold and I don't see them again. If I get them wrong they appear more often as the score decreases. Eventually all cross the threshold. Good.

The problem now is that I would still like those cards I have learnt to re-appear, actually I want the whole set to re-appear in time. I just want cards to flash less if I'm getting them right. It would be good if this could be achieved without me continually updating that fixed threshold. Solution => dynamic threshold.

*Solution 1
Use Average Score as threshold for card inclusion.
Think of the bell curve that is the distribution of scores, if the threshold sits within that then it will roll forward as the set as a whole is learnt (or back if going badly). As the back end of that distribution increases in score the average will push forward and include cards that were previously excluded. Eventually it will roll past even the highest scored cards (what were), and they will get included.

A tight distribution will need to be considered, say for example initial conditions. If all cards are 100 then the average is 100 and if threshold is < average then none will be included. But if <= then all are included, fine.

It's hard to picture the dynamics of how this works over time, may be some problems, would need to simulate to really find out. Cards would be allowed to drag behind.

*Solution 2 (I think this is better)
Include the bottom x % of cards.
Bottom scores are the worst, we want to learn them. Imagine including the bottom 20 %. We get their scores right and they no longer are in the bottom 20 %. If wrong then they remain bottom 20 %. Kind of similar to above but without the distribution issues. If all are same score then we choose random 20 %, or maybe entire set, can make some kind of option there. Two ways to interpret this parameter, the bottom 20 % of cards, or the threshold is the score of the card which is 20 % into the set from the bottom (the latter seems better to me).

When using either of these methods it would be nice to have both addition and multiplication factors (biases) for fine tuning.

e.g.
Threshold = AverageScore * Multiplier + Addition (default Multiplier = 1, default Addition = 0)
Threshold = CardAtX%Score * Multiplier + Addition

thanks

HC

PS I see the 'Cards' screen allows card selection based on the Learnt status, and also criteria for learnt can be Score. It appears it still has problem of applying a fixed score threshold to a set which has a dynamic score distribution.
 
Top