Рифма в PHP - PullRequest
       29

Рифма в PHP

3 голосов
/ 21 апреля 2009

Мне трудно найти способ определить, имеет ли два слова одинаковые рифмы в английском . Это не должно быть то же самое слоговое окончание, но что-то ближе к фонетическому сходству .

Я не могу поверить, что в 2009 году единственный способ сделать это - использовать эти старомодные словари для рифм. Знаете ли вы какие-либо ресурсы (в PHP было бы плюсом), чтобы помочь мне в этой болезненной задаче?

Спасибо.

Все ваши подсказки были по-настоящему печальными. Я найду некоторое время, чтобы исследовать это. В любом случае, дополнительную информацию о DoubleMetaPhone можно найти здесь, в правильном коде PHP (другой является расширением). В Php.net .

есть интересная информация о функции MethaPhone и doublemetaphone .

Они специально предупреждают о том, насколько медленный двойной метафон сравнивается с метафоном (примерно в 100 раз медленнее).

Ответы [ 5 ]

4 голосов
/ 21 апреля 2009

Soundex вам не поможет. Soundex фокусируется на начале слова, а не на его конце. Обычно кажется, что вам будет сложно найти какой-либо инструмент для этого. Даже для лингвиста корень слова более интересен, чем его окончание.

Обычно вам нужно разделить слова на слоги и сравнить их последний слог. Еще лучше, если бы вы могли разделить его на фонемы, изменить их порядок и сравнить по обратному слову.
Возможно, вы пытаетесь сравнить последнюю часть клавиш метафона .

3 голосов
/ 21 апреля 2009

См. Краткое описание проекта Брэдли Буда от CS из Мичигана. , в котором расстояние Левенштейна используется в качестве атома при поиске рифмующихся английских слов. Я считаю, что сочетание Левенштейна и Саундекса должно дать лучшие результаты.

1 голос
/ 21 апреля 2009

Похоже, вам нужно найти базу данных, содержащую произношение и, возможно, ударение / ударение: многосложные слова с похожими последними слогами, но ударения на разных слогах не совсем рифмуются, по крайней мере, в смысле возможности использовать их в стихи; например «стихи» и «рубцы». Другие ответы (levenshtein & soundex) должны помочь в поиске кандидатов, но они не подтвердят это:

  • жесткий
  • кашель
  • Тесто
  • через
  • сук
1 голос
/ 21 апреля 2009

Помимо упомянутой ramonzoellner функции soundex () , есть еще одна функция под названием levenshtein () , которая вычисляет расстояние Левенштейна между двумя словами. Это может помочь вам в дальнейшем.

0 голосов
/ 21 апреля 2009

Вы пробовали функцию soundex ()? Это должно дать вам хоть какое-то указание, если слова звучат одинаково.

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