Skip to content
/ kanji Public

Haskell suite for determining what 級 (level) of the 漢字検定 (national Kanji exam) a given Kanji belongs to.

License

Notifications You must be signed in to change notification settings

fosskers/kanji

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kanji

kanji is a Japanese Kanji library and analysation program written in Haskell. Its main function is to tell what Kanji belong to what Level of the Japanese National Kanji Examination (漢字検定).

kanji can be used to:

  • determine what Level individual Kanji belong to
  • determine the average Level (difficulty, in other words) of a group of Kanji
  • apply the above to whole files of Japanese

INSTALLING kanji

First, get the source files from:

https://github.com/fosskers/kanji

kanji is written in Haskell and uses the stack tool. Once stack is installed, move to the source directory and perform:

stack install

USAGE

Assuming you've made it so that you can run the executable, the following command-line options are available:

Usage: kanji [-d|--density] [-e|--elementary] [-l|--leveldist] [-s|--splits]
             ((-f|--file ARG) | JAPANESE)

Available options:
  -h,--help                Show this help text
  -d,--density             Find how much of the input is made of Kanji
  -e,--elementary          Find density of Kanji learnt in elementary school
  -l,--leveldist           Find the distribution of Kanji levels
  -s,--splits              Show which Level each Kanji belongs to
  -f,--file ARG            Take input from a file

NOTES ON CLOs

  • All options above can be mixed to include their analysis result in the output JSON.
  • -h will over-ride any other options or arguments, discarding them and printing a help message.

Examples

Single Kanji

$> kanji -s 日
{
    "levelSplit": {
        "Ten": [
            "日"
        ]
    }
}

A Japanese sentence

$> kanji -s これは日本語
{
    "levelSplit": {
        "Nine": ["語"],
        "Ten": ["本", "日"]
    }
}

All options

$> kanji -sled これは日本語。串と糞
{
    "levelSplit": {
        "Nine": ["語"],
        "Ten": ["本", "日"],
        "Unknown": ["糞"],
        "Two": ["串"]
    },
    "elementary": 0.6,
    "density": 0.5,
    "distributions": {
        "Nine": 0.2,
        "Ten": 0.4,
        "Unknown": 0.2,
        "Two": 0.2
    }
}

About

Haskell suite for determining what 級 (level) of the 漢字検定 (national Kanji exam) a given Kanji belongs to.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published