Конвертировать похожие звуковые части слова
У меня проблемы с поиском правильных терминов, чтобы решить приведенную ниже проблему; Я уверен, что это сделано, я просто не могу найти правильные термины, чтобы выразить проблему!
Я в основном пытаюсь создать классификатор, который будет принимать результаты сравнения слов (например, некоторые результаты из расстояний Левенштейна) и решать, достаточно ли отличаются слова. Важным вкладом, вероятно, будет что-то вроде сравнения soundex. Проблема в том, что я создаю обучающий набор для алгоритма (в данном случае SVM). У меня длинный список имен, и мне нужно немного их поменять (основываясь на похожих звуках в слове).
Например John
а также Jon
было бы сделать мутацию, и я мог бы пометить это в тестовом наборе как эквивалентный. John
а также Johann
иметь достаточно разные звуковые и буквенные расстояния, чтобы считаться разными.
Итак, я прошу о том, чтобы создать генератор вариаций фонем, но нужно уметь сохранять структуру букв английского алфавита.
Может быть достаточно даже простого перевода, например, "f" можно (иногда) заменить на "ph". Я делаю это на Java, так что любые советы в этом направлении тоже будут хорошими! Благодарю.
РЕДАКТИРОВАТЬ
Это самое близкое, что мне встречалось до сих пор: http://www.isi.edu/natural-language/people/hovy/papers/07IJCAI-spelling-variants.pdf
1 ответ
Я просто думаю вслух.
Основанный на правилах: Примените основанную на правилах систему, в которой вы могли бы использовать стандартные правила подстановки, такие как 'ph' для 'f', и правила вставки, такие как вставка h между гласным и согласным.
Выравнивание n-граммы символов: используйте инструмент выравнивания слов, такой как Giza++, чтобы выровнять n-граммы символов из параллельных корпусов, таких как Europarl. Я думаю, вы сможете найти интересные варианты написания слов, такие как "дом", "дом" и т. Д. Вы можете играть с различными значениями n.
Самонастраивающееся выравнивание n-граммы символов на основе правил: вы также можете использовать комбинацию из двух, в которой вы, в принципе, могли бы повысить вероятности некоторых выравниваний, используя набор внешних правил и эвристики.