nanq: Performs 漢字検定 (Japan Kanji Aptitude Test) level analysis on given Kanji.

[ deprecated, gpl, natural-language-processing, program ] [ Propose Tags ]
Deprecated in favor of kanji

nanq can inform the user of a number of statistics regarding Kanji and the Nation Kanji Examination, also known as 漢字検定 or 漢検. In the most simple case, it will reveal what inputed Kanji belong to what Level of the exam.

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 1.0.0, 1.1.0, 1.1.1, 2.0.0, 3.0.0, 3.0.1
Change log
Dependencies aeson (>=, aeson-pretty (>=0.7.2), base (<5), bytestring (>=, containers (>=, extensible-effects (>=, kanji (>=2 && <3), microlens (>=, microlens-aeson (>=2.1.0), optparse-applicative (>=, text (>= [details]
License GPL-3.0-only
Author Colin Woodbury
Category Natural Language Processing
Home page
Uploaded by fosskers at 2016-04-13T05:56:40Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables nanq
Downloads 3218 total (19 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2016-04-13 [all 3 reports]

Readme for nanq-3.0.1

[back to package description]


Author: Colin Woodbury

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

NanQ 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


First, get the source files from:

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

stack build
stack install


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


Short Long Description
-a --average Given Japanese input, finds the average Level of all Kanji present
-u --unknowns Reports Kanji whose Level could not be determined
-h --help Prints a message explaining these options
-l --leveldist Find the % distribution of Levels in given Japanese
-s --splits Show what Level each Kanji belongs to
-d --density Determines how much of the input is made up of Kanji
-e --elementary Determines how much of the input is made up of Kanji learned in Japanese Elementary School


Short Long Description
none none Analyse a String of Japanese given from the command line
-f --file Get input from a given file


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


Single Kanji

$> nanq -s 日
  "levelSplit": {
    "Ten": "日"

A Japanese sentence

$> nanq -s これは日本語
    "levelSplit": {
      "Nine": "語",
      "Ten": "本日"

All options

$> nanq -leadus これは日本語
    "levelSplit": {
      "Nine": "語",
      "Ten": "本日"
    "elementary": 1,
    "average": 9.666667,
    "density": 0.5,
    "unknowns": "",
    "distributions": {
      "Nine": 0.33333334,
      "Ten": 0.6666667