Comments (9)
This is definitely planned but not for the next release. Autocorrect is a very hard problem and I'll focus on a simple and reproducible system that give predictable results rather than a complex and smart system that can complete sentences.
The first version of this feature won't be better than the stock one. But importing custom dictionaries might be something I'll want too.
from unexpected-keyboard.
Any updates on this?
I don't personally use auto-correct, but I find simple word suggestions to be incredibly invaluable when typing on mobile. Being able to fix minor typos on the fly with a single tap is a wonderful tool.
from unexpected-keyboard.
Do you know from where to source dictionaries with an open license?
As for the Finnish language, at least the one which ships with the LineageOS stock keyboard is quite awful (lacks loads of grammatical cases and compounds).
from unexpected-keyboard.
Would it be feasible to use Enchant?
There are bindings for python and some other languages, but not java afaik.
from unexpected-keyboard.
Do you know from where to source dictionaries with an open license?
As for the Finnish language, at least the one which ships with the LineageOS stock keyboard is quite awful (lacks loads of grammatical cases and compounds).
from unexpected-keyboard.
Sorry, I might not have time to work on it during this year. I won't close the issue as I also want the feature but keep in mind it's not planned soon.
from unexpected-keyboard.
I'll focus on a simple and reproducible system that give predictable results rather than a complex and smart system that can complete sentences.
I agree with this.
As someone in a multi-language environment, one issue I have constantly with many autocorrect systems is that they actually cause typing errors when they make wrong assumptions about what language you are using and "correct" the wrong language, or otherwise force you to switch to another layout, despite both languages using largely the same alphabet. So it would be great if the system could allow combining dictionaries of words from multiple languages without having to switch layouts all the time, or at least allow for custom dictionaries so we can combine them ourselves.
from unexpected-keyboard.
Has any work on this been done yet?
I don't want to seem impatient, but considering that the last comment on this issue has been written almost a year ago I think it would be good to hear if anybody has put some thought into this system.
from unexpected-keyboard.
I have thought about this feature for a while, although I still don't have time to implement it, as it will be a lot of work. However, the plan I formulated is as follows:
- Use wordfreq as a word frequency dictionary.
- Implement the autocorrect/autocomplete using a BK-Tree (like this one) with a Damerau–Levenshtein distance, or some other metric.
- The points above can be implemented in a CLI app for easy testing.
- Hook up the autocorrect to the Android keyboard.
The most uncertain point is the last one; I'm not sure how easy it is to retrieve the last typed word and render the word suggestion buttons.
This feature could be extended to:
- Use a custom metric that takes into account how common the word is (by its frequency), suggests a word if its prefix has been typed, considers the distance between letters in the current layout, etc.
- Allow choosing which dictionaries to download: there are 39 small dictionaries, ~200KB each, totaling ~8MiB, while the app today is only 633KB. It may not be worthwhile to ship all dictionaries with the app.
- Implement a small word prediction model to autosuggest words (though I'm not sure of a good option for this).
from unexpected-keyboard.
Related Issues (20)
- [FR] Keyboard (switch) key on NumPad HOT 4
- Feature request: Monet theme support HOT 1
- "Unexpectedly Quit" with Single Row Custom Keyboard Layout HOT 1
- feature request: sort list of layouts HOT 3
- [Bug] There seems to be an issue with the emojis HOT 2
- Polish QWERTY HOT 5
- /doc/*.md typos HOT 2
- Pls make it a floating keyboard HOT 1
- Turn off MessagEase style gestures HOT 12
- [question] custom layouts and layouts included in app HOT 5
- modmap in custom keyboard layout HOT 10
- Will text expansion ever be implemented (automatic snippet replacement)
- Icon replacement for text shown on keyboard & modkey compatibility
- Support for Japanese Language HOT 4
- `Ctrl + Shift` not working HOT 1
- no auto repeat for circle gesture HOT 1
- Unexpected Keyboard has Turkish language as layout only HOT 1
- unexpected behaviour for sup and sub HOT 3
- [feature request] name keyboard on space bar HOT 2
- [BRUH] Copy , paste , select all commands not working on termux HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unexpected-keyboard.