English | 日本語
This repository provides a large-scale dataset designed for detecting and correcting typos specific to Japanese Flick Input on mobile devices (Android/iOS). It aims to solve the accuracy issues in existing IME correction algorithms by focusing on physical key layout-based error patterns.
Each model is provided in three formats: JSON, CSV, and TXT (TSV).
| Model | Recommended Use | Record Count |
|---|---|---|
| Compact Model | Lightweight apps, initial testing | 8,000 |
| Balance Model | Standard IME correction, general training | 60,000 |
| High-Precision Model | Deep learning, LLM fine-tuning | 250,000 |
This dataset was generated by simulating physical misoperations during flick input using a Japanese daily vocabulary base (wordfreq). We have strictly excluded errors originating from QWERTY layouts (Romaji input errors) to extract pure "flick-specific" typos.
We applied rigorous filtering to ensure the highest data quality.
| Item | Value / Ratio | Notes |
|---|---|---|
| Total Generation Attempts | ~3,500,000 | Total simulation generation attempts |
| Noise Exclusion Rate | ~91.2% | Removed non-Kana, QWERTY-adjacent, and non-adjacent keys |
| Physical Layout Match Rate | 100% | All published data matches the 12-key flick layout patterns |
| Collected Unique Patterns (after deduplication) | 318,000 | Total miss patterns collected before noise removal |
| Final Published Records (after noise removal) | 250,000 | Curated miss patterns included in the High-Precision model |
To ensure that this dataset exclusively contains typos specific to flick input, we applied a strict data refinement algorithm. This process eliminates errors originating from QWERTY layouts and physically impossible input patterns, maximizing the quality of the training data.
Every generated pair of "correct" and "wrong" words is validated against the physical characteristics of flick input based on the following criteria.
- Length Match: The length of
correctandwrongwords must be exactly the same. - Single Character Difference: There must be exactly one character difference between the
correctandwrongwords. This excludes patterns unlikely to occur in flick input, such as simultaneous multiple errors, insertions, or deletions. - Existence in Flick Key Map: The differing characters must exist within the defined flick keyboard layout (
FLICK_MAP). - Physical Adjacency Verification: The differing character pair must satisfy one of the following conditions based on the physical layout of the flick keyboard:
- Directional Error within the Same Key: The
correctcharacter and thewrongcharacter are the result of flicking in different directions from the same base key (e.g., the "A" key). For example, aiming for "I" (left flick on "A" key) but getting "A" (tap) or "U" (up flick). - Tap Error on Adjacent Key: The base key of the
correctcharacter (e.g., "A" key) and the base key of thewrongcharacter (e.g., "Ka" key) are physically adjacent on the flick keyboard, AND the flick direction is maintained or it is a center tap.
- Directional Error within the Same Key: The
function is_valid_flick_error(correct_word, wrong_word):
if length(correct_word) != length(wrong_word):
return false
diff_chars = []
for i from 0 to length(correct_word) - 1:
if correct_word[i] != wrong_word[i]:
add (correct_word[i], wrong_word[i]) to diff_chars
if length(diff_chars) != 1: // Must be exactly a 1-character error
return false
c_char, w_char = diff_chars[0]
if c_char not in REVERSE_FLICK_MAP or w_char not in REVERSE_FLICK_MAP:
return false // Characters not in the flick key map are invalid
c_base_key, c_direction = REVERSE_FLICK_MAP[c_char]
w_base_key, w_direction = REVERSE_FLICK_MAP[w_char]
// Case 1: Directional error within the same key
if c_base_key == w_base_key:
return true
// Case 2: Tap error on an adjacent key
if c_base_key in ADJACENT_KEYS and w_base_key in ADJACENT_KEYS[c_base_key]:
// Check if the flick direction is maintained or if it's a center tap error
// (In implementation, this checks if c_direction exists in w_base_key's FLICK_MAP)
return true
return falseBecause this dataset is specialized for flick input, typos common in QWERTY layouts (Romaji input) are entirely excluded. This is indirectly guaranteed by the "Physical Adjacency Verification" logic described above.
For instance, a typo between 'k' and 'l', which are adjacent on a QWERTY keyboard, belongs to the "Ka-row" and "Ra-row" key groups on a flick keyboard, which are physically distant. The is_valid_flick_error function does not classify errors between such physically distant keys as "Tap Error on Adjacent Key," thus automatically excluding them.
Through this mechanism, this dataset boasts high precision as pure flick input training data.
We implemented three primary physical error categories:
- Directional Error
- Tap misdetection due to insufficient slide distance (e.g., "いいよ" (iiyo) → "いあよ" (iayo)).
- Directional confusion (e.g., "ない" (nai) → "なえ" (nae): confusing Up-flick with Down-flick).
- Adjacent Key Error
- Tapping the neighboring key due to finger displacement (e.g., "こんにちは" (konnichiwa) → "こんにちわ" (konnichiwa with 'wa' key displacement)).
- Modifier Error
- Missing voiced marks (Dakuten) or flick errors for small characters (ya, yu, yo).
| Error Position | Frequency | Common Patterns |
|---|---|---|
| Word Initial | 42.5% | Typos on the first character of a word |
| Word Medial | 51.2% | Typos in particles, conjunctions, or stems |
| Word Final | 6.3% | Typos in inflected endings or sentence-final particles |
- QWERTY Adjacent Errors (~120,000 excluded): Patterns like 'k' and 'l' adjacency, which are physically distant in a flick layout, were 100% excluded as "Romaji-origin" errors.
- Non-Adjacent Key Leaps (~450,000 excluded): Impossible physical jumps (e.g., from 'A' key to 'Ma' key) were removed.
- Initial Training: Use
flick_errors_compact.jsonto verify the basic logic of your correction engine. - Accuracy Improvement: Import
flick_errors_balance.csvinto a spreadsheet to compare with your current IME's misdetection patterns. - Production Deployment: Use
flick_errors_high_precision.jsonas training data for neural networks to integrate into IMEs like Zenz.
- Verified Precision: Every pair in this dataset has passed programmatic physical layout validation. The probability of including non-flick errors (e.g., QWERTY) is less than 0.01%.
- Practicality: We specifically strengthened tap-detection errors based on real user feedback like "iayo" (correct: "iiyo").
- Data Integrity: All files use UTF-8 encoding to prevent character corruption when importing into Google Sheets or other tools.