@blooscorn ~ thank you for sharing this. It seems this issue then is even more diverse than before. Yet another reason for Memrise to address the issue and vanquish these phantom entries once and for all !
I fear that they won’t get around to this for a long time, if ever. I learned a lot when addressing this issue for myself and it is apparent that fixing the issue will require that they change a ton of the logic behind how memrise presently works. The changes made to fix the issue would also be a lot less efficient, meaning that they would need to pay more for servers. I know that I would not fix it if I was in their position.
That being said, I would provide a way of fixing it for the user who is truly desperate. Maybe I would make something that works like my script but then make it a little bit inconvenient to use. Course creators would therefore know where it is but then wouldn’t inclined to use it every time they open the course database. Otherwise, it could kill the servers.
@DrewSSP ~ wow, way out of my league. I guess it will continue to be a nuisance then. Another one of those “Memrise things” that I used to hear people talk about when I first began using the program a few years ago.
If it means adding more servers, then that is probably the buzz killer in and of itself. It seems that they are either struggling to control or maintain the ones they have, or looking to minimize the number overall.
Thanks again for your insight into this issue. I guess a lot of us will just have to wait and see what the future holds. Hopefully there are not too many desperate course creators out there.
Best of luck to you with your HSK6 issues, and anything else you are working on.
@skstudio No yet. I’m willing to upload it though. I’m moving at the moment from one country to another and travelling a bit in the meantime. I’ll upload it when I get the chance but please understand that my temporary homelessness might make it difficult to do that any time soon.
Here it is! Set up is a bit complicated but it’s there for those who want it
[wiki] All the Userscripts
Thank you very much @DrewSSP! The script looks good. I’ll try it on my database.
I just thought I’d let you all know, set up on the script here is just a bit less complicated than it was before. I revisited it and noticed that I could make a few quick improvements.
I think I was having this problem and I think I found a workaround that no one will like. The words that pull the wrong or broken answer pools have to be deleted and re entered into the database/level. That’s the only way I found to fix it. apparently the phantoms live in a word not the whole database.
I only had this problem with levels that I tried to bulk insert. They didn’t sort properly so i deleted just the ones that were wrong and started over without starting from scratch. I haven’t tested all levels yet but the words i replaced no longer have the issue.
I have ghost entries also but I haven’t deleted a word. I have just modified them and the old versions are appearing.
Let me explain what causes the phantom answers.
Every word in your database has a bunch of information associated with it. You can see this in your database in the form of columns. Oftentimes, this information will be the english translation for the word, an audio file, its attributes, etc… There is also hidden information that is not shown in the database page. One of the hidden pieces of information is a list of words that Memrise will use to populate all the incorrect answers in questions. This is the stuff that’s causing phantom answers.
If you don’t fully understand the above paragraph, then remember this: The wrong answers for any question are stored in secret information inside every word in your course.
This is actually a good idea on Memrise’s part because, if you think about it, Memrise doesn’t need to search through your entire database to make incorrect options in your questions. It just needs to look inside the word’s secret information and it’s right there. It’s very efficient.
So where to the phantom answers come from? Well, imagine that you have a word that you want to change, but that word is inside the hidden information of another word. The problem comes from the fact that these two words have now way of talking to each other. One word will have no way of knowing if you changed something elsewhere in the course database. So a word will just continue using information that it got a long time ago, which can sadly become outdated. That outdated information is being shown as phantom answers.
So the big question is, how can we make words update their hidden information? Every time you change something in a word, the word will update the hidden information associated with the part you just updated. So if you change the English translation, it will update the hidden information related to the English translation for that word. Included in that hidden information will be all of the possible wrong answers when asked for the English translation during a session.
Long story short, Memrise allows phantom answers because it allows for higher efficiency. If you see a phantom answer in a session, find that word in the database and change the field on which you were just tested. So if you saw a phantom answer on “pomme” and you were supposed to click “apple”, find the word “pomme” in the database, change the part that says “apple” just a little bit (ie “appleA”), save the change, and then go back and change it back to “apple” and save the change once again. This will force Memrise to re-evaluate the answers that it might present you with during testing for that word.
How to eliminate incorrect answers that are no longer visible in the database
Removing all words and replacing
I used to have the idea that Memrise picked the wrong answers from a range surrounding the current entry. Do you have any more info on that? And do you know how many incorrect answers each entry is associated with?
Do you think this behavior can be manipulated to our advantage?
@Arete_Hime There are times when I’ve wondered if Memrise favours using words from the same level. There might be something to that suspicion since we’ve both thought it. But I promise that Memrise cares a lot more about how much a word resembles another in the database. If there is a word in the database that closely resembles the correct answer of the word in the question, it will include that one in its list of possible incorrect answers every every time.
As for your question toward the quantity of words that exist in the hidden list of possible incorrect answers, I’ve seen some words with 8, and others with 12. I don’t know why it changes between those two numbers but it does. It’s interesting to watch the learning/review sessions after learning about this because you start to notice that individual words will always have mostly the same options each time that you see them.
As for manipulating it, I don’t see how we could. The only way to control which words get put into the hidden information is to control which words are in the database when it most recently changed. That could only work predictably for one word and then you would start having to rely on luck with exponentially decreasing probability that it works in your favour for every word that you add to the database.
I’m skeptical of your explanation, because I’m pretty sure that I’ve seen very old words (that I haven’t updated in forever) show some multiple choice options that include some of the newer words I’ve added to the same database. If that’s true, that contradicts what you said. I’m also skeptical because it would make the sizes of their databases much larger, by an order of magnitude at least, maybe two.
Do you have any reliable sources saying that it works the way you described?
@cos A bigger database is much better for servers than making 7 or 11 extra requests to the database every time a word comes up for review.
There may be a second method that Memrise uses to populate wrong answers, as @Arete_Hime and I were talking about. That doesn’t make my explanation incorrect. I’m just describing the piece that’s broken and how to fix it. Either way, I fixed the error for my own courses, which requires the knowledge that you are challenging. Believe me or don’t, it doesn’t matter to me.
What is your source for your explanation of how it works? That is, how do you know that that’s how it works? I gave reasons that I’m skeptical, but that doesn’t mean you’re wrong - it means it doesn’t seem right and I have no idea where your information is coming from. So, where did you get this from?
This is something I found by digging through the source code of Memrise on the client side myself. You can find lots of the hidden working of memrise by monitoring what the website sends and receives through chrome’s inspection tools. I wish Memrise would provide an official API or something to allow users with programming experience to take a bit of control over their experience on the website but they don’t. Everything I tell you is something I dug up myself and was inferred from what was seen by manipulating their unofficial api.
@DrewSSP so what they really need is a way to make the answers database for a word reset? Or reset the whole thing like anki does, check database? I don’t know much about coding but i came to the same conclusion as you, that the words have to make there own list of wrong answers embedded somehow in the word entry in the database. So it can’t be too hard to make it reset with a button?
I have found the appearance of incorrect or delete entries as alternatives very frustrating.
I was told that if one un-lists a course, saves it, lists it as incomplete and re-saves it then finally make it public and save, it would reset the alternatives but it has never worked for me.
You’re right @Angelbratt, what is needed is a way to make Memrise “refresh” a course database. Changing the status of the course as @DW7 mentions is unlikely to force Memrise to do this. I say that because, if I was programming Memrise, I would not see any reason to connect a feature that refreshes the database to a change in the course’s status. This is especially true if refreshing the database is a feature that has not yet been developed, which seems to currently be the case.
I’ve mentioned here and there that one can add a character to the word, save the change, then undo the change to revert the word to what it was before. This will refresh everything related to that one part of that specific word. The script that I provided earlier in this thread does that for every single part of every single word in a database automatically. It’s a work around that gives users the power to do something that Memrise should really have a feature for.
A nice side effect of using the script is that the alternative answers become a lot more intelligent and answering questions becomes a bit trickier.