Как определить, звучит ли случайная строка как английская? - PullRequest
22 голосов
/ 18 сентября 2008

У меня есть алгоритм, который генерирует строки на основе списка входных слов. Как отделить только строки, которые звучат как английские слова? то есть. сбросьте RDLO , сохраняя LORD .

РЕДАКТИРОВАТЬ: Чтобы уточнить, они не должны быть реальными словами в словаре. Они просто должны звучать как английский. Например, KEAL будет принято.

Ответы [ 13 ]

0 голосов
/ 18 сентября 2008

Я бы, вероятно, оценил каждое слово, используя алгоритм SOUNDEX, по базе данных английских слов. Если вы делаете это на SQL-сервере, вам будет довольно легко настроить базу данных, содержащую список большинства английских слов (используя свободно доступный словарь), а на сервере MSSQL SOUNDEX реализован как доступный алгоритм поиска.

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

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

0 голосов
/ 18 сентября 2008

Звучит как довольно сложная задача! Вверху моей головы согласной фонеме нужна гласная до или после нее. Определить, что такое фонема, будет довольно сложно! Возможно, вам придется вручную выписать их список. Например, «TR» - это нормально, но не «TD» и т. Д.

0 голосов
/ 18 сентября 2008

Вы можете сравнить их со словарем (свободно доступным в Интернете), но это может быть дорогостоящим с точки зрения использования процессора. Кроме этого, я не знаю другого программного способа сделать это.

...