我正在使用kakasi逆变器将汉字字符转换为罗马字,如下所示:
echo "日本が好きです。" | kakasi -i euc -Ha -Ka -Ja -Ea -ka -s -iutf8 -outf8
nippon ga suki desu .
KAKASI是基于字典的简单汉字至假名逆变器。相反,这是一项艰巨的任务,但是有一些方法可以将假名转换为汉字,然后再转换成 Romanji 。卡卡西人可以通过汉字,日语等类似版本的
进行平假名echo "7月31日" | iconv -f utf8 -t shift-jis | kakasi -JH -KH -Ea -s | iconv -f shift-jis -t utf8
7 がつ 31 にち
我已经建立了this随kakasi和 libskk 一起提供的Dockerfile,它应该是假名汉字转换器,但是我不能摆脱它。 Dockerfile随附了this个SKK词典集合,并且已经配置为像libskk示例here中那样使用:
$ echo "A i SPC" | skk
{ "input": "A i SPC", "output": "", "preedit": "▼愛" }
$ echo "K a p a SPC K a SPC" | skk
{ "input": "K a p a SPC K a SPC", "output": "", "preedit": "▼かぱ【▼蚊】" }
$ echo "r k" | skk -r tutcode
{ "input": "r k", "output": "あ", "preedit": "" }
$ echo "a (usleep 50000) b (usleep 200000)" | skk -r nicola
{ "input": "a (usleep 50000) b (usleep 200000)", "output": "うへ", "preedit": "" }
我想使用libskk
将假名转换为汉字,最终通过编程将kakasi用作中间步骤。对于Kakasi,我已经构建了一个Node.js包装器here,并且我正尝试对SKK库执行相同的操作。
current文档是日文,而执行此操作的示例是mecab-skkserve,但我找不到有关其工作原理的文档。
这里有一些基于skk
可用示例的尝试
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.L
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.S
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.M
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.M -r tutcode
{ "input": "n i p p o n g a s u k i d e s u", "output": "然諾毎度大団", "preedit": "u" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.M -r nicola
{ "input": "n i p p o n g a s u k i d e s u", "output": "めく,,つめせうしちきくてたし", "preedit": "" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.L.unannotated
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.itaiji
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
i$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.jinmei
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.ML
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
$ echo "n i p p o n g a s u k i d e s u" | skk -f ../dict/SKK-JISYO.hukugougo
{ "input": "n i p p o n g a s u k i d e s u", "output": "にっぽんがすきです", "preedit": "" }
这是kakasi
和skk
之间通过jq
传递数据的有趣管道:
echo "もし君を 許せたら" | kakasi -i euc -Ha -Ka -Ja -Ea -ka -s -iutf8 -outf8 | awk '{gsub(/./,"& ",$0);print}' | skk -f ../dict/SKK-JISYO.M -r tutcode | jq -r .output
从養せ校循七野寮
开始时结果为もし君を 許せたら
。
注释
有关kakasi的更多信息,请参见官方网站here。