mike-fabian / ibus-typing-booster

ibus-typing-booster is a completion input method for faster typing
https://mike-fabian.github.io/ibus-typing-booster/
Other
232 stars 16 forks source link

“Automatically select the best candidate” could be improved #285

Closed mike-fabian closed 2 years ago

mike-fabian commented 2 years ago

Currently there is the option:

☑️ Automatically select the best candidate

which I personnally find almost useless (but I think there was at least one user who liked it, so I won’t take it away.

But it might be a good idea to add another level to that option instead of just on and off, maybe like this:

Automatically select the best candidate [Never|For very good candidates|Always]

Never would be the same as if the currently available option is off.

Always would be the same as if the currently available option is switched on.

For very good candidates would automatically select only in such cases where we have “almost full certainty”.

See also the discussion here:

https://github.com/mike-fabian/ibus-typing-booster/issues/158#issuecomment-1055100520

psads-git commented 2 years ago

Thanks, Mike! And have a good vacation!

mike-fabian commented 2 years ago

https://copr.fedorainfracloud.org/coprs/mfabian/ibus-typing-booster/builds/

has new test builds ibus-typing-booster-2.16.9

with an improved autoselection feature. The option has three possible values now:

Automatically select the best candidate: [ No | Yes, but only when extremely likely | Yes, always ]

(If you have suggestions for better wording in the English names of these options, please tell me!)

As we discussed in

https://github.com/mike-fabian/ibus-typing-booster/issues/158#issuecomment-1055100520

I am using the strategy to consider the best candidate as “extremely likely” only if these 4 conditions are met:

  1. the whole context can be found in a dictionary of a single language
  2. the whole context has a high user score because it has been typed many times before
  3. the suggestion doesn’t change the order of any letters
  4. the suggestion doesn’t change the length, only adds or removes accents or changes only capitalization

(I added this or changes only capitalization)

That means if inline completion is used with the recently added value “Yes, without fallback to popup”, this new autoselection option will in some rare cases show a popup: when an “extremely likely” candidate is available but cannot be shown inline because it would violate the rule that an inline completion should never change anything typed already. I am not sure whether this is the right thing to do, I could change it to never do that and observe the “Yes, without fallback to popup” even in this case. If I do that, the autoselection would never do anything if inline completion “Yes, without fallback to popup” is used, one would need to allow at least the fallback to the popup.

But in this test release I allow a popup when autoselection happens even if the inline completion mode “Yes, without fallback to popup” is used.

I am also not so sure about my addition of allowing changes only capitalization when deciding whether a candidate is extremely likely or not.

My intention was to fix “I like japan” Automatically to “I like Japan” because country names are always upper case in English.

But actually while I am testing this now I think I get far too many wrong capitalizations this way.

So I will probably remove this capitalization hack again in 2.16.10. But tell me what you think about it!

mike-fabian commented 2 years ago

Another problem I noticed while testing is that sometimes quite surprising groups of 3 words can be found in a single dictionary.

For example in ('I', 'have', 'arrivé') all 3 words can suprisingly be found in the French dictionary:

This may cause a candidate popup “arrivé” when you type “I have arrive” if you are using a French and and English dictionary. “Obviously” one is trying to write English here so the selection of “arrivé” lis wrong. And if one does not commit by space but continues to type a “d” when the popup appears one gets the correct “I have arrived”. But the popup appearing before the “d” is typed is confusing!

I could reduce this problem by requiring a group of 4 words from the context instead of just 3 to be found in a single dictionary.

But then the context “Je suis arrive” would not be long enough to automatially select “arrivé” .

psads-git commented 2 years ago

Thanks, Mike: This is a very great improvement! It speeds up typing a lot!

Regarding auto-capitalization, maybe the dictionaries have the information about whether a word is the name of a country or of a person. If so, for these cases, the auto-capitalization feature could be kept.

mike-fabian commented 2 years ago

Thanks, Mike: This is a very great improvement! It speeds up typing a lot!

I was less enthusiastic when testing, it saved a few key strokes here and there but it also inserted wrong stuff quite frequently which annoyed me a lot.

Regarding auto-capitalization, maybe the dictionaries have the information about whether a word is the name of a country or of a person. If so, for these cases, the auto-capitalization feature could be kept.

No, the dictionaries don’t have that information.

I have removed this capitalization again already for 2.16.10, it was annoying me terribly, it was wrong for me more than 50% of the time.

psads-git commented 2 years ago

Well, I am quite enthusiastic regarding this new improvement! But if ibus-typing-booster is wrong too many times, maybe we could think on how to improve its precision. Or do you think this new feature is really unworthy, Mike?

mike-fabian commented 2 years ago

No, I’ll keep that feature, but without giving “very likely” candidates which change the capitalization, only those which change only accents seem to work resonably well for me.

Overall this new feature seems to be an improvement. But a very small improvement ...

mike-fabian commented 2 years ago

What do you think of the names of the new option?:

Automatically select the best candidate: [ No | Yes, but only when extremely likely | Yes, always ]

If these texts are OK, I would push these new translatable strings to git main already to give the translators time to translate it already at

https://translate.fedoraproject.org/projects/ibus-typing-booster/app/

before I make the official release with the new feature.

psads-git commented 2 years ago

I think the names are very fine, Mike!

mike-fabian commented 2 years ago

I pushed them, so they can be translated at https://translate.fedoraproject.org/projects/ibus-typing-booster/app/ now.

I already did the German translations and Yuri Chornoivan already did the Ukrainian translation.

psads-git commented 2 years ago

I can do the translation to Portuguese, Mike.

mike-fabian commented 2 years ago

I can do the translation to Portuguese, Mike.

Thank you very much! Your translations and the improvement for this issue here are included in:

https://github.com/mike-fabian/ibus-typing-booster/releases/tag/2.17.0

mike-fabian commented 2 years ago

Thank you very much for completing the translations 100% ❣️:

Screenshot

psads-git commented 2 years ago

I have meanwhile completed the translation, Mike.

Is it possible to use ibus-typing-booster in Portuguese, despite having my computer using English for everything, Mike? This would be very useful for checking my own translation in context.

mike-fabian commented 2 years ago

You can start the setup tool in Portuguese from the command line like that:

LC_ALL=pt_PT.UTF-8 python3 /usr/share/ibus-typing-booster/setup/main.py
mike-fabian commented 2 years ago

https://github.com/mike-fabian/ibus-typing-booster/releases/tag/2.17.1 contains your translations.

psads-git commented 2 years ago

Thanks, Mike. I have meanwhile checked my translation, which seems fine to me. Notwithstanding, if meanwhile I want to improve the translation of some specific words, how can I do that? Should I use the site:

https://translate.fedoraproject.org/projects/ibus-typing-booster/app/

?

mike-fabian commented 2 years ago

Thanks, Mike. I have meanwhile checked my translation, which seems fine to me. Notwithstanding, if meanwhile I want to improve the translation of some specific words, how can I do that? Should I use the site:

https://translate.fedoraproject.org/projects/ibus-typing-booster/app/

?

Yes.

psads-git commented 2 years ago

Thanks, Mike!