Skip to content

About

燐字データセットのデータ集

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Repository files navigation

linzklar-recognition

What this is

Linzklar (pronounced LINTS-claah), or Lanermic logogram, is a logographic writing system used mainly in Faikleone, a conworld the authors of this repository are building.

This repository currently contains the dataset of hand-written linzklar (written by the builders of the conworld through a Web app), with which we aim to implement a handwriting linzklar input system in the future.

Data format

/data

/data contains all the raw data, where each JSON file is either an array of { "character": (annotation), "data" : (array of array of {x: number, y: number}) }, or { "character": (annotation), "data" : (array of array of {x: number, y: number}), initialDotCaptured: true}. Each array of coordinates corresponds to a stroke; an array of strokes makes up a character. Due to an oversight, for the first 30,126 samples the initial dot of every single stroke is absent from the data, and such files are marked with the lack of initialDotCaptured: true.

Since Linzklar is (obviously) not in Unicode, and since the use of Private Use Area in a public place like a GitHub repository is to be frowned upon, each annotation is actually given in terms of a conventionally determined mapping to a Chinese character. Hence is annotated as 王, as 冠, and so on.

To give an example,

[
  {
    "character": "再",
    "data": [
      [
        { "x": 72, "y": 103 },
        { "x": 74, "y": 110 },
        { "x": 78, "y": 119 },
        { "x": 84, "y": 128 },
        { "x": 89, "y": 135 },
        { "x": 94, "y": 139 },
        { "x": 97, "y": 141 },
        { "x": 97, "y": 141 }
      ],
      [
        { "x": 159, "y": 89 },
        { "x": 159, "y": 94 },
        { "x": 159, "y": 106 },
        { "x": 158, "y": 115 },
        { "x": 152, "y": 136 },
        { "x": 145, "y": 155 },
        { "x": 134, "y": 172 },
        { "x": 120, "y": 188 },
        { "x": 108, "y": 198 },
        { "x": 99, "y": 204 },
        { "x": 95, "y": 206 },
        { "x": 95, "y": 206 }
      ]
    ]
   }, {
    "character": "無",
    "data": [
      [
        { "x": 95.12094116210938, "y": 92.58360290527344 },
        { "x": 109.80926513671875, "y": 102.65560913085938 },
        { "x": 114.42559814453125, "y": 107.27194213867188 },
        { "x": 119.88128662109375, "y": 113.14726257324219 },
        { "x": 127.43524169921875, "y": 122.79959106445312 },
        { "x": 127.43524169921875, "y": 122.79959106445312 }
      ]
    ],
    "initialDotCaptured": true
  }
]

stores two samples that corresponds to (transcribed 再) and (transcribed 無). We can see that is made up of two strokes, and hence its data is an array of the two strokes comprising the character.

/data_images/svg

/data_images/svg contains all the raw data converted into svg images. initial_dot_captured contains the >20,000 samples whose initial dot of every stroke is properly recorded. initial_dot_omitted is made up of >50,000 samples stripped off of their initial dots (unintentionally for the first 30,126; intentionally for the remaining data). initial_dot_captured_or_augmented is a folder containing all the images in initial_dot_captured, as well as the first 30,126 samples with each of the missing initial dot inferred (by a simple linear interpolation) from the remaining dots.

Inside each /data_images/svg/initial_dot_* are folders whose names are the annotations (given in terms of the Chinese characters), and each folder contains the svgs (supposedly) corresponding to the same character. As for the file name, 070cd99d-ce1d-4906-90b7-503c73421f97.json__268.svg means that it is the 268th (0th index) sample in the file 070cd99d-ce1d-4906-90b7-503c73421f97.json.

/data_images/svg is generated by converting from /data using /converter. Provided that you have cargo installed, all you need to do is

$ cd converter
$ cargo run --release

Using cargo run -- --dry-run will simply count the data, and will not generate the SVG files. This is considerably faster, and should be used when you only want to count the data.

/data_images/png

/data_images/png is the same as /data_images/svg, except that it is converted to png with mogrify.

Shuffle through the dataset

Shuffle through the dataset.

Pairs that are expected to be difficult to distinguish

  • 菓 and 終
  • 氏 and 果
  • 左 and 而
  • 受 and 絵

これはなに

燐字データセットのデータ集

cf. thanks.txt

About

燐字データセットのデータ集

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages