monkeytype icon indicating copy to clipboard operation
monkeytype copied to clipboard

Keep a list of most mistyped words / letters

Open Arithmetics opened this issue 4 years ago • 25 comments

track which words i mistype the most and maybe the word behind it. create a special typing test made of these words so i can practice

Arithmetics avatar May 21 '20 19:05 Arithmetics

Interesing idea! I will keep this in mind for the future.

Miodec avatar May 21 '20 19:05 Miodec

To expand upon this, not only could we have a list of all the most incorrectly typed words, a list of all the words that you type the slowest would also be very useful. Unsure of the feasibility of this though.

FYI I'm thinking about a general list, not a list specific to only the currently done test.

ghost avatar Aug 07 '20 19:08 ghost

Each char and each word (up to like the top 1000?) could have associated with it a miss rate and an avg time-to-type (in ms).

chars = {'a':{'miss-rate':0.04, 'avg-time':60},...}
words = {'the':{'miss-rate':0.11, 'avg-time':180},...}

These dicts could then be plotted somewhere on the user's profile. Two new funboxes for practicing these commonly missed chars and words could then be added.

It'd be nice if this took into account things you missed in other funboxes such as ascii. That would be my primary use of it - practicing my most missed chars in ascii.

ghost avatar Aug 28 '20 20:08 ghost

Disappointing that this is files as Low Priority, as I think it would be a very effective way of improving my speed and accuracy from using MT. As it is, I feel MT is better at benchmarking speed and accuracy rather than the best way to improve it.

eggbean avatar Sep 29 '20 21:09 eggbean

@eggbean @Arithmetics I'm interested in this too. As it's an open source project, there is nothing stoping you or I raising a PR and adding the feature - other than Miodec approving it. Share your thoughts with me on what the minimal viable functionality for this feature would be.

I like the idea of a list of mistyped words. Cap it at a reasonable amount and make it ordered, so new words being added pop older words you might no longer be mistaking off the list. Mistyped words contain the mistyped characters, so your getting char and words in one - although you wouldn't have stats on worst character or anything like that. If the list was ordered, and pulled more from the front, you'd be seeing more of the mistakes you've made recently.

Another thought would be giving mistyped words a score, +10 points when it's first added to the list, +3 points if it's already on the list, -1 point each time you type it with no mistakes. If the score reaches 0, it's removed from the list.

Let me know your thoughts and I'll look at it this weekend or next.

RebonackAl avatar Oct 13 '20 12:10 RebonackAl

@RebonackAl I think what I had in mind is pretty much exactly what you describe. Sounds great, but I would imagine not easy to implement if MT is not already logging mistyped words.

eggbean avatar Oct 13 '20 17:10 eggbean

Would be nice to see the progress (in speed and mistakes) in mistyped words (and letters) over time as well.

When it come to letters, I generally struggle with letter combinations such as "exq". Would be nice for the system to pick up on word combinations that cause the typo (i.e. the preceding 1 or 2 characters before the typo and look for other words in the dictionary with similar characters. And then build a test out of such words.)

Orcomp avatar Oct 30 '20 01:10 Orcomp

I would love to contribute to this issue!

kevinzhao07 avatar Apr 05 '21 18:04 kevinzhao07

As discussed on Discord: assigning @kevinzhao07

Miodec avatar Apr 05 '21 18:04 Miodec

To give an idea how it could look like, here are some examples from the ecosystem.

keybr.com shows overall mistyped keys as a visualization:

image

ZSA Oryx training tool shows per-lesson stats:

image

I think a collection of successful hit rates over time per-letter would be amazing.

ahmetb avatar May 03 '21 03:05 ahmetb

Here are more examples from https://tipp10.de

I like the overview of characters with the split between target errors (should have been pressed) and errors (was wrongly pressed)

grafik grafik

whnr avatar May 09 '21 00:05 whnr

I like the target error / actual error / frequency / error rate stats. Something to consider @kevinzhao07

Miodec avatar May 09 '21 02:05 Miodec

Hey Miodec, Because my school has ended, I'm no longer working on the project. You can remove me from the assignment now, thank you.

Kevin M. Zhao The University of Michigan | Class of 2022 Computer Science | Economics | College of Engineering @.*** | (917) 637-0775

On Sat, May 8, 2021 at 10:19 PM Jack @.***> wrote:

I like the target error / actual error / frequency / error rate stats. Something to consider @kevinzhao07 https://github.com/kevinzhao07

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Miodec/monkeytype/issues/44#issuecomment-835632968, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMEHBT3LIMDGITYXYETHRPDTMXWJXANCNFSM4NHDDNYQ .

kevinzhao07 avatar May 09 '21 19:05 kevinzhao07

Mio I would love to work on this issue. Can you assign me?

Thanks, Rizwan Mustafa.

rizwanmustafa avatar Mar 11 '22 06:03 rizwanmustafa

I like the idea of somewhat doing what keybr.com does and using:

This application generates random but readable and pronounceable words, using the phonetic rules of your native language. These words look almost natural, and often are. Typing sensible text is much easier than repeating random letters, and it helps you remember frequent key combinations. The latest point is crucial. For example, it’s almost impossible for the letter ‘W’ to follow the ‘Z’ in English, and you will never type such a combination in this application. Instead, you will type more common words, such as «the,» « that,» «with,» and so on. Soon you will learn how to type the «th» combo really fast.

The words are generated from the letters which are selected using the following rules. https://www.keybr.com/help

This helps with practicing words that are "misspelled" while focusing on letters that are commonly missed according to each user. It would also show stats and progress over time.

doprz avatar Apr 23 '22 22:04 doprz

I would like to work on this issue. I think we can start of simple and scale this up as we go

The first iteration would probably involve storing the mistyped words in the past x tests. Then we have a practice mode where we can type only the top x mistyped words (practice-words.ts in the FE already implements part of this, we just need to tell it which words to use.)

I propose we store mistyped words in an array for each test, and we store the past x tests in the db. image

if we assume on average there are 10 mistyped words per test and we store the past 50 tests, there will be 500 strings to store for each user. Is this a realistic possibility? 500 should not be too bad right?

We can then build 1 array of all mistyped words and we use a hashmap to count the occurences. This can be done in O(n) time, where n is the total number of words (https://www.geeksforgeeks.org/find-winner-election-votes-represented-candidate-names/)

After that we can start also recording the speed of each word we can probably just record the mean and st dev for each word, and sample the words via a normal distribution

nocommentcode avatar Jun 11 '22 10:06 nocommentcode

@nocommentcode If we store the data for such a short period, maybe we could store it in the browser's localStorage?

nobergg avatar Jul 03 '22 06:07 nobergg

I would like to work on this issue. I think we can start of simple and scale this up as we go

Sorry, I don't wanna assign anyone to this issue. I wanna do this a very particular way

Miodec avatar Jul 03 '22 13:07 Miodec

I know this isn't fancy feature like million themes to chose from, but really useful one. Pls do not let it wait another 2 years.

rpost avatar Nov 04 '22 14:11 rpost

@Miodec I want to contribute to Monkey type, I am its active user and would love to contribute but as a beginner in open source I am unable to contribute much anywhere. I need some mentor to help me.

I would learn anything required to contribute, just please tell me how to do that. I would like to work upon this feature but where to start and how. Please help me out.

Ganesh910 avatar Apr 01 '23 17:04 Ganesh910

Out of curiosity, any updates on this? I arrived here when searching for such feature as a user, it is really missing in order to improve. I used it all the time with keybr, however keybr doesn't support another language I want to practice so switched to monkeytype and really miss the ability to know what keys I need to focus on in order to improve.

yanshay avatar Sep 02 '23 13:09 yanshay

Hi, as a user I am also interested in having a list of top 20 (or so) mistyped words so that I can practice. I came here from keybr as I needed to be able to practice British English spelling for words. Thanks for your hard work!

GitAlv96 avatar Oct 22 '23 22:10 GitAlv96

I would also absolutely love this feature, currently I use keybr.com to train my weak spots, but this would make (my) monkeytype experience so much better to have it all here.

eikowagenknecht avatar Jan 04 '24 13:01 eikowagenknecht

I would imagine this should also include things like bigrams

Silverdev2482 avatar Apr 04 '24 16:04 Silverdev2482