Интеллектуальная транслитерация в PHP - PullRequest
13 голосов
/ 16 августа 2011

Я заинтересован в написании сценария PHP (я приветствую предложения, не зависящие от языка), который транслитерирует предложение или слово, написанное на английском (фенетически), в сценарий другого языка. Поскольку я смотрю на английский язык, написанный фенетически (то есть на слух): мне придется иметь дело с вариантами написания одного и того же слова.

Предполагается, что не существует никакого стандарта для романизации (например, на китайском языке у вас есть упрощенный вейд и т. Д.)

У кого-нибудь есть совет, с чего мне начать?

РЕДАКТИРОВАТЬ: я делаю это исключительно в образовательных целях, и у меня изначально сложилось впечатление, что для того, чтобы выяснить связь между вариантами написания (которые можно найти в корпусе сообщений IM, сообщения Facebook, написанные в романизированная форма языка), вам понадобится какой-нибудь инструмент машинного обучения. Тем не менее, я хотел бы знать, был ли я на правильном пути, и я хотел бы получить некоторую помощь в выяснении того, что мне следует изучить, чтобы получить эту работу (например: какой инструмент машинного обучения мне следует изучить?) ,

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Попробуйте Расширение PHP транслитерации Дериком Ретансом:

Это расширение позволяет транслитерировать текст латинскими буквами (например, китайский, кириллица, греческий и т. Д.) На латиницуперсонажи.Помимо транслитерации, расширение также содержит фильтры на верхний и нижний регистр латинского, кириллического и греческого языков, а также выполняет специальные формы транслитерации, такие как преобразование лигатур, таких как норвежский «æ» в «ae» и нормализация пунктуации и пробелов.

Кажется, он уже начал то, что вы ищете!(если вы не хотите иметь дело с английским -> латинским языком, но по крайней мере это касается скриптов других языков. :))

2 голосов
/ 17 августа 2011

Я знаю по крайней мере с японским, у вас есть набор буквенных комбинаций.

Итак, вы могли бы сделать что-то вроде создания соответствующего массива, как этот

array(
  'oo' => 'おう',
  'oh' => 'おう',
  'ou' => 'おう'
)

Конечно, продолжайте и убедитесь, что вы не соответствуете 'su', когда это должно быть 'tsu'.

Конечно, это будет только отправная точка.

Машинное обучение, вероятно, наиболее практично для китайцев ... но вот грубое начало хираганы: https://gist.github.com/1154969

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...