Review count analysis

Hello,

In this thread  /t/Script-Request-Tracker-for-All-Reviews-Completed/9655/1 Druciakb requested a script to count all the reviews a user has done.

That was a pretty interesting idea, I thought, so I made a Greasmonkey/Tampermonkey userscript that puts a small section on the dashboard with a button to show a table of all the Radical/Kanji/Vocab reviews you have done.

It shows a table with a row for each of your levels, with total radical/Kanji/Vocab reviews and correct/incorrect totals, also a total of all reviews for each level. Then a main total at the bottom.

It uses the jQuery ajax  functions so it creates the table and then the results populate as each level’s data is returned (the results are async of course). It takes a couple of seconds for mine to finish returning.


Update Aug 29 2015


Version 0.1.0

I have given this a bit of an overhaul.

By default it now counts reviews more like Wanikani does. There is one correct answer per review per item, and one reading/meaning pair per review for Kanji and Vocab.

There can be multiple wrong answers per review but this doesn’t affect the count, it does affect the accuracy.

Enter API key. If there is no API Key available the button will be red.



Once you enter your key it will be saved and the button will be green.



If you don’t want to have you API Key stored any more click the button, delete the key, and press OK. It wll be deleted from jStorage.

By default it now treats Kanji or Vocab Reading/Meaning pair as one review, the same as WK does. It also counts one correct answer per review session.

Accuracy is still based on total correct answers versus total incorrect answers.



Once you press the “Review Count Analysis” button it goes grey to avoid muliple sets of queries running at once. Pressing “Clear Results” enables it again.

I still think it is quite interesting to see how many time you have entered answers for items, so that option is still available. Open the Display Options and check the “Display as total answers entered” box.



It’s on Greasy Fork.

https://greasyfork.org/en/scripts/12018-wanikani-review-count-analysis


2 Likes

This is a great idea. Thank you for implementing it.

Dusk252 said... This is a great idea. Thank you for implementing it.
 You're welcome :)
1 Like

This is really cool, thanks!

Edit: I have a question about it. It seems to me that it shows how many times you have reviewed each level’s respective items (so at the intersection between Rad and 5 you get how many times you have reviewed the Radicals from Level 5). Is this correct? If so, would it be theoretically possible to have an API that measured how many reviews you had while you were level 5 (regardless of from which level the items stem)? I’m just asking because I think it would be interesting to have some numbers on how WaniKani’s workload increases over time.

ElliottTamer said... This is really cool, thanks!

Edit: I have a question about it. It seems to me that it shows how many times you have reviewed each level's respective items (so at the intersection between Rad and 5 you get how many times you have reviewed the Radicals from Level 5). Is this correct? If so, would it be theoretically possible to have an API that measured how many reviews you had while you were level 5 (regardless of from which level the items stem)? I'm just asking because I think it would be interesting to have some numbers on how WaniKani's workload increases over time.
 I don't think you could get a count of the reviews you did when you were on a particular level. The values are:
meaning_correct
meaning_incorrect
reading_correct
reading_incorrect

With no indication of which level you were on when you gave the answers.

I'm glad you asked that question though, because while I was checking that I realised I had screwed up X^D - Thanks

[EDIT: It's fixed now... the review count has increased considerably]




almost 250k

Does it count vocab or kanji as 1 or 2 reviews?

ElliottTamer said... This is really cool, thanks!

Edit: I have a question about it. It seems to me that it shows how many times you have reviewed each level's respective items (so at the intersection between Rad and 5 you get how many times you have reviewed the Radicals from Level 5). Is this correct? If so, would it be theoretically possible to have an API that measured how many reviews you had while you were level 5 (regardless of from which level the items stem)? I'm just asking because I think it would be interesting to have some numbers on how WaniKani's workload increases over time.
 Since I gave the method for the current solution, I thought I would provide a more in depth method which could allow you to get the script that you want. 

So basically what you do is get the total number of review for the current level, and keep doing this overwriting the previous total for that level. But when you move over to the next level it will no longer change the previous total count and change the current level. Then obviously if you want to see how many reviews you've done in a specific level, you just get the reviews up until that level take away the reviews up until the previous level.

Here's some pseudocode:
fn update() 
    numReviewsLevel[getCurrentLevel()] = getTotalReviewCount();
fn getReviewsLevel( n ) 
    numReviewsLevel[n] - numReviewsLevel[n-1];

So since your current script has to go through every single kanji, radical and vocab, that would obviously be resource extensive. Maybe find a better way to count the reviews.

But please only do the update on browser load.

Edit:

Here's an optimization for the current grabbing of the review counts: 
Make sure you're iterating until you reach a locked item, then not continuing past that level.

Naryoril said... almost 250k

Does it count vocab or kanji as 1 or 2 reviews?
 It counts each Kanji  and each Vocab as two. Meaning + Reading

I am going to split the Kanji and Vocab columns to show separate Meaning/Reading counts. Maybe it would also be interesting to have a checkbox so that you could choose to count Kanji and Vocab as only one review per Meaning/Reading pair.
Naryoril said... almost 250k

Does it count vocab or kanji as 1 or 2 reviews?
Yes it does, since it's reading each kanji for both the reading and meaning review count
rade134 said...
ElliottTamer said... This is really cool, thanks!

Edit: I have a question about it. It seems to me that it shows how many times you have reviewed each level's respective items (so at the intersection between Rad and 5 you get how many times you have reviewed the Radicals from Level 5). Is this correct? If so, would it be theoretically possible to have an API that measured how many reviews you had while you were level 5 (regardless of from which level the items stem)? I'm just asking because I think it would be interesting to have some numbers on how WaniKani's workload increases over time.
 Since I gave the method for the current solution, I thought I would provide a more in depth method which could allow you to get the script that you want. 

So basically what you do is get the total number of review for the current level, and keep doing this overwriting the previous total for that level. But when you move over to the next level it will no longer change the previous total count and change the current level. Then obviously if you want to see how many reviews you've done in a specific level, you just get the reviews up until that level take away the reviews up until the previous level.

Here's some pseudocode:
fn update() 
    numReviewsLevel[getCurrentLevel()] = getTotalReviewCount();
fn getReviewsLevel( n ) 
    numReviewsLevel[n] - numReviewsLevel[n-1];

So since your current script has to go through every single kanji, radical and vocab, that would obviously be resource extensive. So I noticed your total 
review count are there on your profile page on the right just under the kanji and vocab total progression bar.
Radicals aren't listed, so you might have to brute force them.

But please only do the update on page load or maybe even browser load.



 I don't understand what you are saying.

You can't tell how many reviews you did when you were level 5, because at level 28 you could still be reviewing level 5 items if they are not yet burned.

The level totals in that table are the total number of reviews performed on the items in that level, regardless of what level you were when you did them.
hoovard said... I don't understand what you are saying.

You can't tell how many reviews you did when you were level 5, because at level 28 you could still be reviewing level 5 items if they are not yet burned.

The level totals in that table are the total number of reviews performed on the items in that level, regardless of what level you were when you did them.
 Lets assume you are level 23 currently, the script that I have described will not work for the previous levels, it will only work for future levels while you have the script on. Basically the idea is you keep track of your current review progress past level 23 and once you reach level 28 you can look back and say ooh it took me x number of reviews from level 25-26

Also my assumption is based that we are not using your table at all but constructing a completely new one where it counts all levels of kanji, radicals and vocab and adds it to a level that you're currently at. So this means you will have all reviews to have reached this level not the kanji, radicals and vocab of that level.

Edit: 

Btw read through my last post since I made some changes, which I realised were wrong.
rade134 said...
hoovard said... I don't understand what you are saying.

You can't tell how many reviews you did when you were level 5, because at level 28 you could still be reviewing level 5 items if they are not yet burned.

The level totals in that table are the total number of reviews performed on the items in that level, regardless of what level you were when you did them.
 Lets assume you are level 23 currently, the script that I have described will not work for the previous levels, it will only work for future levels while you have the script on. Basically the idea is you keep track of your current review progress past level 23 and once you reach level 28 you can look back and say ooh it took me x number of reviews from level 25-26

Also my assumption is based that we are not using your table at all but constructing a completely new one where it counts all levels of kanji, radicals and vocab and adds it to a level that you're currently at. So this means you will have all reviews to have reached this level not the kanji, radicals and vocab of that level.

Edit: 

Btw read through my last post since I made some changes, which I realised were wrong.
 Oh, I see.

You are proposing a script which tracks your reviews separately from the results that are stored in the WK database?

Hmm. That would need another database somewhere.

I'm not doing that.


hoovard said... Oh, I see.

You are proposing a script which tracks your reviews separately from the results that are stored in the WK database?

Hmm. That would need another database somewhere.

I'm not doing that.


GreaseMonkey has built in functions to store things over page loads, why not use that?
http://stackoverflow.com/questions/1268232/storing-data-in-greasemonkey-scripts

You only have to store a max of 50 ints.

I’m kind of curious to know what my overall % score is. Not that I’m competitive, but I wanna know.

rob87 said... I'm kind of curious to know what my overall % score is. Not that I'm competitive, but I wanna know.
 Just before you install it, search TOTAL REVIEWS:

and change all 3 lines to : 

$( "td#mainTotal" ).html( "TOTAL REVIEWS: "+ (iCorrectTotal+iIncorrectTotal) +", TOTAL PERCENTAGE: "+Math.round(iCorrectTotal/(iCorrectTotal+iIncorrectTotal)*10000)/100 + "%");

rade134 said...

GreaseMonkey has built in functions to store things over page loads, why not use that?

I'm not even sure what results this would yield, and I am not interested enough to spend time on it. The results I am getting from  what is already in the WK database are sufficient to satisfy my curiosity.


rob87 said... I'm kind of curious to know what my overall % score is. Not that I'm competitive, but I wanna know.

EDIT:
rade134 already gave you the solution for this.

ElliottTamer said...I think it would be interesting to have some numbers on how WaniKani's workload increases over time.
 ![](upload://vPANlgHoqUIHpPsjkYw7vsN3VAs.gif)

This is pretty much the universal average daily workload shape.  The only thing that changes significantly is the length of time over which it is spread, based mostly on accuracy rate and the times of day that you review.  The actual *amount* of daily workload only changes if you stop doing lessons, which looks pretty much the same as when you reach the last level as seen above on the X=25 mark.

The example shows 80% accuracy at Apprentice level, increasing to 97% accuracy at Burn level.
Each point is a 1-month (actually, 30-day) average.  So, so can see it took about 3 months to reach peak workload, and that workload continued until level 60 was reached at X=25.

With a really low accuracy rate, the simulations show that it may take 7 or 8 months to reach peak workload.  It doesn't really get much faster than 3 months, even with 100% accuracy.

Just because I really liked this, I’ll post the version with my changes:

Includes Total Percentage you got right.
Only have to enter your api key once, then you never see that again, after you refresh.

https://greasyfork.org/en/scripts/12020-wanikani-review-count-analysis

I have been wondering how many reviews I will and/or have accumulated at certain points and overall.

I’ll give it a try, thanks for sharing this!

Edit:
For some reason I had to install it twice for it to work, though the code seemingly was the same…

And now that I took a look at it, I can say that it’s another really near addon to the site.
Also, on a sidenote: I finally got a confirmation concerning my feeling that Lvl 5 “was one of the hardest”, overall it seems that I by far have the most reviews there.

rade134 said... Just because I really liked this, I'll post the version with my changes:

Includes Total Percentage you got right.
Only have to enter your api key once, then you never see that again, after you refresh.

https://greasyfork.org/en/scripts/12020-wanikani-review-count-analysis
 would like to try your version. I don't get any box to put in the api key though, not even the first time.