Я не впевнений, чи належить це питання тут, і я вибачаюся, якщо ні. Те, що я хочу зробити, - це розробити програмний спосіб, за допомогою якого я зможу імовірнісно визначити, чи належить дана струна в мішок рядків. Наприклад, якщо у мене є сумка з 10000 назв міст у США, і тоді у мене є рядок "Філадельфія", я хотів би отримати кількісну міру того, наскільки "Філадельфія" - це назва міста США, засноване на назвах міст США, які я вже знаю. Хоча я знаю, що я не зможу відокремити справжні назви міст від підроблених назв міст у цьому контексті, я, принаймні, сподівався, що такі рядки, як "123.75" та "Швидка руда лисиця, перестрибнувши через ледачих коричневих собак", виключені якийсь поріг.
Для початку я переглянув відстань Левенштейна і трохи роздумував, як це застосовується до проблем, принаймні дещо схожих на ту, яку я намагаюся вирішити. Одним із цікавих застосувань, які я знайшов, було виявлення плагіату, в одному документі було описано, як Левенштейн використовував відстань за допомогою модифікованого алгоритму Сміта-Уотермана для оцінки робіт, виходячи з того, наскільки ймовірно, вони були розкутою версією базового паперу. Моє запитання - чи хтось міг би вказати мені в правильному напрямку за допомогою інших усталених алгоритмів чи методологій, які могли б мені допомогти. У мене виникає відчуття, що це може бути проблема, яку хтось у минулому намагався вирішити, але поки мій Google-фу зірвав мене.