Как отличить «слово» от бессмысленного набора символов?

Здравствуйте.
Ребята, подскажите пожалуйста, какие инструменты (без привязки к языкам программирования) можно применить для определения того, что введенные символы являются словом, а не бессмысленным набором символов "влдатдукывта вызвтк".
Перебор заготовленных ранее словарей не является решением задачи.
И ещё один вопрос. Можно ли здесь использовать Теорию вероятностей?
  • Вопрос задан
  • 877 просмотров
Пригласить эксперта
Ответы на вопрос 4
Биграммный анализ, триграммный анализ, анализ невозможностей языка
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
вообще задача решается перебором подготовленных ранее корпусов

но если хочется алгоритмов:
1) частота букв в языке ( канает при больших текста)
2) сочетания букв в языке (канает для почти даже слов)
естественно, оба варианта проигрывают корпусам
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Есть идея проверить через подсчёт весов возможностей языка по N-граммам:
1. Кол-во N-грамм невозможностей буквосочетаний языка.
2. Кол-во N-грамм возможностей буквосочетаний языка.
Если п.1 - "<=33%" (почему не 0: допуск на ошибку в слове) и п.2 - ">=67%" - это слово.
Иначе - нет.

(ИМХО + это мои домыслы, сам ещё не проверял)
Ответ написан
Комментировать
@Mercury13
Программист на «си с крестами» и не только
Самый простой способ, пришедший на ум.
Представить слово как цепь Маркова (это именно что теорвер). Вероятности перехода есть в знаменитой книге Жельникова (да и не только там, я уверен).
Затем высчитываем вероятность пройти в цепи Маркова именно по этому пути. Если вероятность слишком мала — точно рандомный набор символов.

Без заготовленных ранее словарей никуда — например, слова «Шымкент» или «парашют» с «невозможными» буквосочетаниями (их вероятность в ЦМ будет, разумеется, нулевая).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы