Форум программистов, компьютерный форум, киберфорум
Искусственный интеллект, ML
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/67: Рейтинг темы: голосов - 67, средняя оценка - 4.90
 Аватар для OdessaNA
19 / 19 / 6
Регистрация: 10.01.2011
Сообщений: 241

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

12.03.2016, 20:45. Показов 12949. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Ребята, подскажите пожалуйста, какие инструменты (без привязки к языкам программирования) можно применить для определения того, что введенные символы являются словом, а не бессмысленным набором символов "влдатдукывта вызвтк".
Перебор заготовленных ранее словарей не является решением задачи.
И ещё один вопрос. Можно ли здесь использовать Теорию вероятностей?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2016, 20:45
Ответы с готовыми решениями:

Составить программу, которая по заданному слову из набора строит следующее за ним по алфавиту слово из этого набора
"Слово" Указано слово (латинскими буквами). Из всех его букв составляются другие слова, возможно и бездумные. Составить программукоторая по...

Как открыть файл в виде набора символов?
Ну никак не могу понять как открыть файл любого типа(не только тхт) в виде текста(имею в виду набор символов). Открыть, сохранить этот...

Как сгенерировать случайную строку из набора символов?
как сделать чтобы вот это вот s0 = ""; Random rnd = new Random(); int n; st =...

14
 Аватар для DeadPenguin
66 / 66 / 31
Регистрация: 11.03.2016
Сообщений: 252
12.03.2016, 20:48
Цитата Сообщение от OdessaNA Посмотреть сообщение
Перебор заготовленных ранее словарей не является решением задачи.
Почему?

Цитата Сообщение от OdessaNA Посмотреть сообщение
И ещё один вопрос. Можно ли здесь использовать Теорию вероятностей?
Вы хотите найти те комбинации символов, которые будут очень похожи на реальные слова языка?
0
 Аватар для OdessaNA
19 / 19 / 6
Регистрация: 10.01.2011
Сообщений: 241
12.03.2016, 20:54  [ТС]
Цитата Сообщение от DeadPenguin Посмотреть сообщение
Вы хотите найти те комбинации символов, которые будут очень похожи на реальные слова языка?
Вы знаете, вот к этому варианту решения я пока больше всего и склоняюсь.
Но есть же и другие способы решения задачи?
Цитата Сообщение от DeadPenguin Посмотреть сообщение
Сообщение от OdessaNA
Перебор заготовленных ранее словарей не является решением задачи.
Почему?
))) такое условие задачи.
0
 Аватар для DeadPenguin
66 / 66 / 31
Регистрация: 11.03.2016
Сообщений: 252
12.03.2016, 20:58
OdessaNA, просто без словарей сам вопрос не имеет особого смысла. Конечно, вы можете описать слова русского языка какими-то правилами (вот тут суффикс, вот тут приставка, это идёт за этим), но это заведомо не охватывает ВСЕ слова (как минимум заимствования) и уж точно не охватывает неологизмы — а, как я понял, вы на них и нацелены.

Так как я не специалист в лингвистике, то я бы пошёл по топорному пути — реализовал бы генетический алгоритм, который формирует новые слова из имеющихся, сравнивая результаты со словарём и отбрасывая заведомо не-слова (например, некоторые наборы букв подряд не встречаются ни в одном слове русского языка).

Если на форуме есть специалисты по нейронным сетям — я думаю, им тоже есть что сказать
0
61 / 61 / 15
Регистрация: 18.05.2015
Сообщений: 322
12.03.2016, 20:59
Если нет перебора словаря, то можно создать алгоритмы, например, проанализировав те же словари, но их результат все равно будет сугубо вероятностным, т.к. всегда можно будет придумать странное слово, которое алгоритм пропустит (т.е. похожее на настоящее, но которого нет), и есть неплохой риск отфильтровать нормальные слова, которые являются специфичными и встречаются редко.
1
681 / 555 / 74
Регистрация: 20.09.2014
Сообщений: 3,639
12.03.2016, 21:30
Зачем какой-то интеллект для этой задачи? Интеллект будет долго обучаться. Между тем мы уже можем быстро сформулировать несколько правил.

Я бы лучше решил противоположную задачу, я бы доказывал, что набор букв - это не слово.
Например, предлагаю очень простой алгоритм: если идет три и более подряд гласных или согласных - считать набор букв "несловом". Еще можно зацепиться за буквы ь, ы, ъ - они тоже плохо сочетаются с гласными и некоторыми согласными... Любой алгоритм, в том числе словарный алгоритм, не смогут достичь 100% надежности. Зато предлагаемый метод - простой как пень.

Теория вероятностей (точнее лингвистическая статистика) тоже может давать неплохие оценки, на мой взгляд. Буква "ы" не может часто попадаться. А лучше конечно анализировать сочетания букв, например, "ый" может встречаться часто, чаще чем другие сочетания с буквой "ы".
1
Модератор
Эксперт функциональных языков программирования
3088 / 2237 / 466
Регистрация: 26.03.2015
Сообщений: 8,770
12.03.2016, 22:10
Цитата Сообщение от OdessaNA Посмотреть сообщение
введенные символы являются словом, а не бессмысленным набором символов
Перебор заготовленных ранее словарей является единственным возможным решением данной задачи.

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

Добавлено через 2 минуты
И "lisp", "c#" - тоже нельзя отнести к "бессмысленным наборам символов".
1
 Аватар для OdessaNA
19 / 19 / 6
Регистрация: 10.01.2011
Сообщений: 241
12.03.2016, 22:37  [ТС]
Да, перебор заготовленных ранее словарей - лучшее решение (тем более, что предметная область ограничивает количество возможных вариантов).
Но в том-то и заключается сложность этой задачи - вариант со словарями, как решение, не рассматривается.
По вопросу формулировки. Могут быть использованы только имена существительные без специальных символов.
0
Модератор
Эксперт функциональных языков программирования
3088 / 2237 / 466
Регистрация: 26.03.2015
Сообщений: 8,770
13.03.2016, 04:18
Цитата Сообщение от OdessaNA Посмотреть сообщение
Но в том-то и заключается сложность этой задачи - вариант со словарями, как решение, не рассматривается.
Решения нет при подобной формулировке. Не существует способа (кроме сравнения со словарём) определить, какое из двух слов "клод" и "клад" (или "слон" и "слан") является словом, а какое бессмысленным набором букв.
1
681 / 555 / 74
Регистрация: 20.09.2014
Сообщений: 3,639
13.03.2016, 07:41
Цитата Сообщение от Shamil1 Посмотреть сообщение
Решения нет при подобной формулировке.
Топикстартер намеренно приводил пример другого характера:
Цитата Сообщение от OdessaNA Посмотреть сообщение
влдатдукывта вызвтк
Хочу обратить внимание, предлагаемый мною простейший алгоритм четко обработал бы этот пример, но не справился бы с КЛОД-КЛАД, СЛОН-СЛАН.

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

P.S. Я бы поставил не менее востребованную практическую задачу: определить по имени пользователя, является ли он спам-ботом?
Примерный список:
Иншар
Santim
ESP-KZ
Rinat
metalizator
Cortés
Gulzhanar
michajlo
lazator
Topol
Yurich12
OttoRino
Maximus
anton
alkovas
eminently
demalhome
albertik59
frost_pk
RenRon
dogottor
Segvi
r0ma32
Jose
rancatto
А вот типичные имена спам-ботов:
Karinaml
AngelaSVEi
Sofiyemumb
KristinNib
Miriamfax
Modjoojj
Aurorescof
Cecilemt
Staceyzzmit
PaulineGer
lina77ma
Robertsex
HesterNak
Jenniebex
Необязательно должен получиться результат со 100 % надежностью. Цель - облегчить отсеивание спам-ботов для администратора форума.
1
 Аватар для OdessaNA
19 / 19 / 6
Регистрация: 10.01.2011
Сообщений: 241
13.03.2016, 09:50  [ТС]
Конечно же о 100% речь идти не может. В любом случае есть процент погрешности. Моя задача и заключается в том, чтобы выработать механизм с наименьшим процентом погрешности.
0
681 / 555 / 74
Регистрация: 20.09.2014
Сообщений: 3,639
13.03.2016, 10:34
Нужно определить баланс между размером словаря и качеством фильтрации.
1
Модератор
Эксперт функциональных языков программирования
3088 / 2237 / 466
Регистрация: 26.03.2015
Сообщений: 8,770
13.03.2016, 13:57
Цитата Сообщение от OdessaNA Посмотреть сообщение
Конечно же о 100% речь идти не может. В любом случае есть процент погрешности.
Если есть набор букв, построенный с учётом фонетики русского языка, то вероятность примерно 50%. Больше для более коротких слов, меньше для более длинных. 50% Вас устраивает?

Если Вы просто ищете наборы букв, которые выглядят и звучат как слово русского языка (и Вам всё равно, есть ли у этого набора букв смысл), то это совсем другая задача. И у этой задачи есть простое решение, основанное на статистике.

Добавлено через 7 минут
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Хочу обратить внимание, предлагаемый мною простейший алгоритм четко обработал бы этот пример, но не справился бы с КЛОД-КЛАД, СЛОН-СЛАН.
"клод" - это тоже бессмысленный набор символов, как и "влдатдукывта вызвтк"
"клад" - это тоже слово, как и "эйафьятлайокудль"

В задаче написано "бессмысленный набор символов" и ничего про "благозвучный набор символов" и т.п.
Конечно, многие отвечают в стиле "автор просит одно, но мне лучше знать, что ему надо, поэтому я отвечу про другое" (и часто угадывают), но у меня нет желания гадать.
1
681 / 555 / 74
Регистрация: 20.09.2014
Сообщений: 3,639
13.03.2016, 17:34
Лучший ответ Сообщение было отмечено OdessaNA как решение

Решение

Цитата Сообщение от Shamil1 Посмотреть сообщение
Конечно, многие отвечают в стиле "автор просит одно, но мне лучше знать, что ему надо, поэтому я отвечу про другое" (и часто угадывают), но у меня нет желания гадать.
А это искусство такое - понять, что хочет заказчик...
0
1641 / 1543 / 257
Регистрация: 19.02.2010
Сообщений: 4,122
13.03.2016, 22:28
Лучший ответ Сообщение было отмечено OdessaNA как решение

Решение

Цитата Сообщение от OdessaNA Посмотреть сообщение
введенные символы являются словом, а не бессмысленным набором символов "влдатдукывта вызвтк".
Если бы задача была для достаточно длинного текста (а не слова или, максимум, короткого предложения) - то я бы предложил сравнение частоты встречаемости букв во введённом тексте и "в среднем" в текстах нужного языка. Либо - сравнение матриц переходных вероятностей (от буквы к букве) в марковских цепях.
Т.е. на вопрос из стартового поста о применении теории вероятности - да, считаете частоты или вероятности и проверяете статистические гипотезы о равенстве или различии частот либо вероятностей.

А для слова - только словарь, может, с проверкой-коррекцией возможных опечаток (расстояние Левенштейна).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2016, 22:28
Помогаю со студенческими работами здесь

Написать программу, которая удаляет из данного набора символов все вхождения символов S и s
Написать программу, которая получает от пользователя набор символов, исключая пропуск, и удаляет из этого набора все вхождения символов S и...

Для каждой строки из заданного набора S проверить: верно ли, что она содержит как подстроку одну из строк из набора T
Здравствуйте, уважаемые пользователи! Опять несложная задачка на строки, но не все тесты пройдены...Буду благодарен всем, кто может помочь....

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

Как считать слово от 3 символов?
У меня есть скрипт который считает количество слов и их плотность в тексте в % (кому нужен полный скрипт тут http://pastebin.com/a6FcEw86)...

Регулярные выражения: одно слово из набора
Здравствуйте, как составить регулярное выражение на поиск одного из слов? Pattern pattern =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
Реляционная модель и правила Кодда: фундамент современных баз данных
Codd 05.04.2025
Конец 1960-х — начало 1970-х годов был периодом глубоких трансформаций в области хранения и обработки данных. На фоне растущих потребностей бизнеса и правительственных структур существовавшие на тот. . .
Асинхронные операции в Django с Celery
py-thonny 05.04.2025
Разработчики Django часто сталкиваются с проблемой, когда пользователь нажимает кнопку отправки формы и. . . ждёт. Секунды растягиваются в минуты, терпение иссякает, а интерфейс приложения замирает. . . .
Использование кэшей CPU: Максимальная производительность в Go
golander 05.04.2025
Разработчикам хорошо известно, что эффективность кода зависит не только от алгоритмов и структур данных, но и от того, насколько удачно программа взаимодействует с железом. Среди множества факторов,. . .
Создаем Telegram бот на TypeScript с grammY
run.dev 05.04.2025
Одна из его самых сильных сторон Telegram — это интеграция ботов прямо в экосистему приложения. В отличие от многих других платформ, он предоставляет разработчикам мощный API, позволяющий создавать. . .
Паттерны распределённых транзакций в Event-Driven микросервисах
ArchitectMsa 05.04.2025
Современные программные системы всё чаще проектируются как совокупность взаимодействующих микросервисов. И хотя такой подход даёт множество преимуществ — масштабируемость, гибкость, устойчивость к. . .
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер