просто краткое объяснение возможного фактического решения, которое мы использовали. Спасибо всем, кто порекомендовал mecab - похоже, это удалось.
У нас есть в основном Rails-бэкэнд, но в наших обстоятельствах нам не нужно было решать эту проблему на бэкэнде. Для введенных пользователем данных, например, создавая новые сущности с японскими именами, мы изменили пользовательский интерфейс, чтобы потребовать от пользователя ввода фонетического йомигана в дополнение к имени кандзи. Пользователи, кажется, привыкли к этому. Проблема заключалась в большом массиве данных, встроенных в приложение - в основном, в названиях больниц, компаний и мест.
Итак, что мы сделали:
- Мы преобразовали все исходные данные (список из 4000 больниц с названием, адресом и т. Д.) В формат .csv (конечно, в кодировке UTF-8).
- Затем для разработчиков мы написали скрипт ruby, который:
- Использует mecab для перевода содержимого этого файла в фонетические чтения на японском языке.
(точная использованная команда была
mecab -Oyomi -o seed_hospitals.converted.csv seed_hospitals.csv
, которая выводит новый файл с кандзи, замененным фонетическим эквивалентом, выраженным в катакане полной ширины).
- Стандартизирует все йомиката в хирагане (поскольку пользователи, как правило, вводят хирагану при ручном вводе йомикаты, а хирагана и катакана сортируют по-разному). Ruby делает это легко, как только вы его найдете:
NKF.nkf("-h1 -w", katakana_str) # -h1 means to hiragana, -w means output utf8
- Используя потрясающе удобную новую версию CSV для Ruby 1.9.2, объедините входной файл с файлом, переведенным в mecab, чтобы в результирующий файл были добавлены дополнительные столбцы, такие как NAME, NAME_YOMIGANA, ADDRESS, ADDRESS_YOMIGANA и т. на.
- Используйте данные из полученного файла .csv, чтобы заполнить наше приложение rails встроенными значениями.
Время от времени клиент обновляет исходные данные, поэтому мы должны будем делать это всякий раз, когда это происходит.
Насколько я могу судить, этот вывод хороший. Мой японский недостаточно хорош, чтобы быть на 100% уверенным, но несколько моих японских коллег просмотрели его и сказали, что все выглядит хорошо. Я поместил слегка запутанный образец преобразованных адресов в эту суть , чтобы любой, кто хотел прочитать это, мог убедиться в этом.
ОБНОВЛЕНИЕ: Результаты в ... это довольно хорошо, но не идеально. Тем не менее, похоже, что он правильно фонетизировал 95% + квази-случайных адресов в моем списке.
Большое спасибо всем, кто мне помог!