Skip to content

About

Mobile device touch input 12-key layout for AI-based automatic correction training dataset and overview

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

English | 日本語

Flick-Error-Dataset: Training Source for Mobile Flick Input Correction

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.

Available Files

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

Dataset Overview

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.

Refining Process Statistics

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

Data Refinement Algorithm

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.

1. Flick Error Validation Logic

Every generated pair of "correct" and "wrong" words is validated against the physical characteristics of flick input based on the following criteria.

Criteria:

  1. Length Match: The length of correct and wrong words must be exactly the same.
  2. Single Character Difference: There must be exactly one character difference between the correct and wrong words. This excludes patterns unlikely to occur in flick input, such as simultaneous multiple errors, insertions, or deletions.
  3. Existence in Flick Key Map: The differing characters must exist within the defined flick keyboard layout (FLICK_MAP).
  4. 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 correct character and the wrong character 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 correct character (e.g., "A" key) and the base key of the wrong character (e.g., "Ka" key) are physically adjacent on the flick keyboard, AND the flick direction is maintained or it is a center tap.

Pseudocode:

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 false

2. Exclusion of QWERTY-Origin Errors

Because 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.


Implemented Flick Error Logic

We implemented three primary physical error categories:

  1. 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).
  2. Adjacent Key Error
    • Tapping the neighboring key due to finger displacement (e.g., "こんにちは" (konnichiwa) → "こんにちわ" (konnichiwa with 'wa' key displacement)).
  3. Modifier Error
    • Missing voiced marks (Dakuten) or flick errors for small characters (ya, yu, yo).

Dataset Statistics (High-Precision Model: 250,000 records)

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

Excluded Data Patterns (Noise Breakdown)

  • 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.

Recommended Usage

  1. Initial Training: Use flick_errors_compact.json to verify the basic logic of your correction engine.
  2. Accuracy Improvement: Import flick_errors_balance.csv into a spreadsheet to compare with your current IME's misdetection patterns.
  3. Production Deployment: Use flick_errors_high_precision.json as training data for neural networks to integrate into IMEs like Zenz.

Quality Assurance

  • 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.

About

Mobile device touch input 12-key layout for AI-based automatic correction training dataset and overview

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors