Chorder Root/"Fix" List Generator
Quick points:
- This repository keeps a list of prefixes and suffixes (infixes to come) and show which words can be chorded based on these "fixs".
- For emitting a chorded output with no space following the chord.
- I envision that by chording via prefixes, infixes, suffixes, and roots, one can reduce, by a significant amount, the number of chords one has to memorize to grasp the skill of chording in the English language for most of their typing.
Theory
According to Google, there are ~120 root words which originate from Greek and Latin Over 60 percent of all English words have Greek or Latin roots. In the vocabulary of the sciences and technology, the figure rises to over 90 percent. source
Credit
Some modification of prefix and suffix list from this gist. Pretty comprehensive list of roots (1020 of them, not considering prefix/infix/suffix duplicates): https://membean.com/roots/ Holy grail of Latin and Greek roots in English language (oh my goodness): https://en.wikipedia.org/wiki/List_of_Greek_and_Latin_roots_in_English Extreme amountt of words here: https://kaikki.org/dictionary/English/index.html
Java 2 Kotlin conversion from this code to find words that match a prefix (to show usefulness of chording in "fixs").
Great frequency list for English: https://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/A_Frequency_Dictionary_of_Contemporary_American_English
Avoiding Collisions Randomness
You can add more randomness to chorded words perhaps by indicating in your system the length of them or some other unique property.
This could be triggered by a letter press or key that has no bearing on the typed words…or you could remap some key or modifier, whatever you can do to indicate to your program what is occurring and avoid a collision
This would provide uniqueness and cut down on collisions in your current system when autogenerating (and triggering) a chord library.
Future work
Just a loose idea here. More prefixes, infixes, and suffixes should be added to completely grasp the English language.
Additionally, the same should be done for other languages if speakers of those languages so wish.
Add things that are not roots...E.g., "micr" is a root, but "micro" is the (common) prefix. Here is a good starting point: https://www.readingrockets.org/article/root-words-roots-and-affixes
These may also be useful to parse and include:
- https://en.wikipedia.org/wiki/List_of_medical_roots,_suffixes_and_prefixes
- https://en.wikipedia.org/wiki/List_of_commonly_used_taxonomic_affixes
The pom.xml
is cluttered as I copied from another project.