Replies: 2 comments 2 replies
-
I was dealing with a family health emergency this weekend when I saw this posted so I did not reply. I will come back to read this later this week when I can give it proper attention. |
Beta Was this translation helpful? Give feedback.
-
(For anyone, I know psoukie is very busy, so no need to read or respond to this). I
The idea behind this was having a program that would, after a space, look up what I typed in a dictionary and then output the word I intended. So if I chorded A lazy way of chording; little more closer "type in words" (more like "type in pieces of a word") instead of the "type by letter" concept. Anyways, next step if I will pursue further would be tweaking V1 of this software (less code to read) or implement it myself in AHK to replace the word typed after it registers a space. Pretty neat IMO that I could get that level of efficiency for |
Beta Was this translation helpful? Give feedback.
-
PREFACE
This is probably out of scope for ZipChord, As you have discussed already, ZipChorder has a specific purpose. I am not declaring or suggesting that ZipChord should function in this way, I am merely posting here as it may provoke some thought as my last suggestion did where you took it in a really cool direction.
QUESTION
Can we mash keys on the keyboard, in some formulaic way, and receive the whole word without manually creating chords that lose similarity to the original word?
THEORY
I propose that if one splits a word into groups in a formulaic way (e.g.,
Greek and Latin Roots
) and add in character entry to make up the lack of the grouping (e.g., no roots), then alphabetize/sort the input (chord or character entry (note: result is just itself, so just concatenate)), a more unique "code" of the word appears, which can map to the whole word, outputting what the user wants.Note: If we merely alphabetized each word, then we would have many anagrams, which would not work. But since we are alphabetizing the chords as they are entered and character entry (again, just itself) and concatenating them, we get something more unique.
ALGORITHM
0) Find a list of words
["aer", "o", "space"]
is one example of using the Greek and Latin Roots + character entry for the wordaerospace
).["aer", "o", "space"]
becomes["aer", "o", "aceps"]
).aerospace
).aeroaceps
in this case) maps to anything in our dictionary.aerospace
). If a match is not found, no replacement occurs and we clear the buffer, ready for the next input to match on.TESTING
As a part of an ongoing project (horrible code! It probably does no good to anyone to link here, but I am trying to be transparent...see [4] in sources), I first took a list of Greek and Latin Roots from Wikipedia to formulate the chords (see source [1] below).
Then, I took a list of ~1,000 words and ran my Algorithm (minus the program) to generate chords + character entries and the resultant string for the program to look for in the output buffer.
Finally, I took a really large list of words -- 846,863 -- and did the same thing.
RESULTS
~0.65%
(~5.5k out of 846,863).This means, to me anyways, that someone could chord in "roots" and use character entry to make up the difference. There is a caveat (see [2] in Future Intrigue section).
LIMITATIONS
[1] I can't just chord "are" because I could mean "ear". EDIT: I mistakenly said
aer
was a root of ear, not true. But if one chordedaer
and then pressed space, they may produceear
if it was a chord, which was my point...But not related to roots right now. END EDIT. It would also be a conflict. I think for shorter words this system does not work well. Perhaps a workaround would be to restrict this system to chording larger words... but in no way would I think I could get rid of all collisions.[2] Practically chording this way remains to be seen if it is easy to do. As someone pointed out, it may be nice for people in the medical fields (due to Greek and Latin being heavily used in that space), but the average user may find it difficult to parse the word rather than type the word one at a time or chord a shorter code (i.e., chording) for the word.
FUTURE INTRIGUE
root size <=4
instead of 5 (e.g.,space
). Though user preference plays a role here...SOURCES
[1] Latin and Greek Roots
[2] English Dictionary from Wikipedia - note: I preprocessed this to only include non-hyphenated, non-spaced, and unique words (dataset is not a set).
[3] CharaChorder word set
[4] Ongoing Kotlin Program
Beta Was this translation helpful? Give feedback.
All reactions