Я использую kakasi инвертор для преобразования символов кандзи в ромаджи, как показано ниже
echo "日本が好きです。" | kakasi -i euc -Ha -Ka -Ja -Ea -ka -s -iutf8 -outf8
nippon ga suki desu .
KAKASI - это простое кандзи в кана инвертор на основе словарей.Делать обратное - довольно трудная задача, но есть методы для преобразования Кана в Кандзи перед любым преобразованием в Romanji .Kakasi может делать Hiragana из кандзи, японских и т. Д. Инверсий, таких как
echo "7月31日" | iconv -f utf8 -t shift-jis | kakasi -JH -KH -Ea -s | iconv -f shift-jis -t utf8
7 がつ 31 にち
Я создал этот Dockerfile, который поставляется с kakasi и libskk что это должен быть конвертер кана кандзи, но я не могу от этого избавиться.Dockerfile поставляется с этой коллекцией словарей SKK, а также уже настроен для использования, как в примерах libskk здесь :
$ 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 я создал оболочку Node.js здесь , и я пытаюсь сделать то же самое с библиотекой 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
, где результат будет 養せ校循七野寮
при запуске с もし君を 許せたら
.
ПРИМЕЧАНИЯ
Для получения дополнительной информации о Какаси см. Официальный веб-сайт здесь .