Конвертируйте японское кандзи в фуригану, используя драгоценный камень Natto (Mecab)

Используя Natto gem (MeCab), можно ли преобразовать смешанную строку катакана / хирагана / кандзи / альфа в катакана / хирагана / альфа? (т.е. преобразует кандзи).

Например мне нужно конвертировать этот текст:

日本語だぜ、これが。 これはカタカナである。 こいつはEnglish alphabet charsなのです。 ABC123てのは全角英数字です。

в это:

にほんごだぜ、これが。これはカタカナである。こいつはEnglishalphabetcharsなのです。ABC123てのはぜんかくえいすーじです。

Спасибо!

1 ответ

Решение

Автор натто rubygem здесь. Спасибо за использование натто!

Если я правильно понимаю ваш вопрос, вы хотели бы преобразовать только символы кандзи в их соответствующие символы хирагана (фуригана). Библиотека расширений Ruby NKF позволяет вам преобразовывать катакану в хирагану, и поскольку MeCab yomi по умолчанию возвращается как катакана, вы можете комбинировать натто и NKF для преобразования значений йоми только для кандзи, оставляя другие символы (хирагана, катакана, полный текст). и / или символы половинной ширины) как есть.

Ключ заключается в том, чтобы использовать natto для синтаксического анализа входных данных и проверки значения типа char для каждого узла MeCab. Если значение типа символа узла равно 2, это соответствует узлу кандзи. Затем вы можете получить значение катакана йоми из узла MeCab, а затем использовать NKF для преобразования катакана йоми в хирагану.

Я просто привел пример в натто вики.

Надеюсь, это поможет!

Другие вопросы по тегам