Я собираюсь создать словарь, в котором пользователи смогут находить каждое слово, находящееся рядом друг с другом по произношению и слову Letter.

Например, когда пользователь выполнял поиск рядом с моим сайтом, возвращаются другие слова, которые находятся рядом с ним, например, рядом, груша, дорогой, задний, здесь.

Как это сделать?

нравится этот сайт:рифмона

2 ответа2

0

Вы можете использовать сравнение строк между строками одинаковой длины и разрешить для одного (или двух) не совпадающих символов.

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

Чтобы построить над вашим примером: рядом -> \ 'nir \ pear -> \' per \ dear -> \ 'dir \ tail -> \' rir \ or \ 'rer \ here -> \' hir \

(Я срываю Merriam-Webster онлайн для фонетической записи здесь)

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

В любом случае, когда вы сопоставили свои слова, вы можете сравнить их последнюю фонему: в этом случае вы можете искать слова, оканчивающиеся на "ир" (в данном случае исключая "груша").

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

0

Я думаю, что это терпимо сложно. Это ветвь программирования на естественном языке (не другой НЛП, Neuro Linguistic Pap). Вы должны уметь сопоставлять слова "здесь" и "слышать", поэтому вам нужно разбить элементы и сопоставить их с фонетической эквивалентностью (h- "ere" и h- "ere" для обоих). И некоторые варианты написания имеют различную фонетику (кашель, плуг, сквозной) или имеют даже худшие омонимы (они там, их группа), и они могут отличаться по регионам (в Великобритании, длинный или короткий "а" в гараже, граф и стекло, например). Когда вы делаете фонетические эквиваленты, они не всегда единичны.

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

Я бы присоединился к одному из бесплатных онлайн университетских курсов по НЛП - в настоящее время их несколько. Гораздо лучше заземление в современных методах разбора языка. :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .