kantord / LibreLingo

🐢 🌎 📚 a community-owned language-learning platform
https://librelingo.app
GNU Affero General Public License v3.0
1.93k stars 211 forks source link

Merge words and phrases? #1658

Open zmbc opened 2 years ago

zmbc commented 2 years ago

Is your feature request related to a problem? Please describe. It's a bit confusing having the names "words" and "phrases" not be accurate. Anytime you want to teach a word that can't be shown with a picture, you make it a phrase. And I've seen in some languages multi-word "words" such as including the gendered articles.

Sometimes, you realize that you made something a "word" when it should be a "phrase." Then you have to move it to another part of the YAML file, and change several key names that don't match.

Describe the solution you'd like The actual distinction, as far as I can tell, is between phrases that can be shown with an image and phrases that can't. The images are used in the cards challenge, and (kind of for aesthetic purposes only) in the short-input challenge.

I think it would be much easier to understand if:

Describe alternatives you've considered

Additional context

zmbc commented 2 years ago

This could be a bad idea if there are future plans for new types of challenges, etc that truly do require a word/sentence distinction. Duolingo appears to have this distinction, though I do not see any way that they use it aside from the images difference.

In that case, it would be good to enforce the distinction so that it is meaningful and reliable. Current workarounds would need to be changed (e.g. we would still need to have words without images, because many words cannot be represented by one).

kantord commented 2 years ago

It's a bit confusing having the names "words" and "phrases" not be accurate. Anytime you want to teach a word that can't be shown with a picture, you make it a phrase.

This is a good point, the naming is confusing

And I've seen in some languages multi-word "words" such as including the gendered articles.

I'm personally a bit against that approach used in courses, I would personally have a word Frau instead of die Frau in German. Of course something like ice cream as a single word is totally fine

kantord commented 2 years ago

I realize this would be quite a difficult challenge. I would prefer that LibreLingo had a system for looping through phrases at increasing difficulty, similar to Duolingo's "levels" on a skill, but it doesn't. For now, I think this approach would be workable.

Not sure what you mean, what would be the challenge? Phrases of increasing difficulty, I think this could be implemented, thought I'm not sure how you'd measure or record difficulty. Or perhaps just approximate it by length?

kantord commented 2 years ago

One thing to keep in mind is this:

https://github.com/kantord/LibreLingo/blob/be08b75b67e76c69210accb7b4cb6fe7527735cc/apps/librelingo_utils/librelingo_utils/utils.py#L6-L10

we are basically choosing the number of levels based on how many words and phrases a skill has. I. e. words increase the number of levels less than phrases do.

If we merge the 2, then this calculation would also need to be completely re-thought

zmbc commented 2 years ago

Not sure what you mean, what would be the challenge?

Sorry, I wasn't clear -- the word "challenge" here means this kind of challenge, not a challenge for us to implement. I mean that a freeform input challenge on a phrase would be more difficult than any existing challenge (since right now the user only has to do chips for phrases).

One thing to keep in mind is this:

Huh, I wasn't aware of that. Perhaps this could be re-written to somehow calculate based on the actual lengths of the items, not the word/phrase distinction.

kantord commented 2 years ago

Huh, I wasn't aware of that. Perhaps this could be re-written to somehow calculate based on the actual lengths of the items, not the word/phrase distinction.

That might makes sense, or perhaps even something more sophisticated is possible, for example counting the number of new words or something like that 🤔 albeit, finding a good way to define and measure "new words" can be difficult

kantord commented 2 years ago

Also probably if we implement this, I would probably go for a non-breaking change 🤔 for example, these 3 tasks could be implemented independently of each other:

Then it will be later on possible to remove the old syntax.

But I'm still not 100% convinced it's a good idea. And keep in mind, new categories will be added in the future. Such as characters/symbols for characters/target languages that use a different script than a the original one

zmbc commented 2 years ago

keep in mind, new categories will be added in the future. Such as characters/symbols for characters/target languages that use a different script than a the original one

Yes, that makes sense. I'm not against having multiple categories, I just think the current setup is confusing because the "word" vs "phrase" distinction does not meaningfully describe the difference, which seems to be about whether or not something can be represented by an image.

By the way, another advantage of pooling words and phrases would be having plausible incorrect options on the Options challenge. Right now, if most of your single-word vocab is in the "Words" section but one word isn't representable with a picture so is technically a "Phrase," it will only use other phrases as incorrect options. This makes it really easy to guess because one answer option is a word while the others may be full sentences.

kantord commented 2 years ago

I just think the current setup is confusing because the "word" vs "phrase" distinction does not meaningfully describe the difference, which seems to be about whether or not something can be represented by an image.

that's a fair point.