← Вернуться к списку

Используйте Машинное/Глубокое Обучение для Предсказания Строки

Краткое содержание

Я хочу иметь возможность вводить блок текста и затем заставлять его угадывать строку внутри заданного диапазона (то есть строку, начинающуюся с трех букв и заканчивающуюся пятью цифрами, например "XXX12345" и т.п.). Идеально, если строка, которую он будет угадывать, окажется где-нибудь в блоке текста, но иногда это не случается. Я испытываю трудности с тем, с чего начать или даже правильно ли я выбираю направление для рассмотрения машинного/глубокого обучения, чтобы попытаться решить эту задачу. Помогите!

Полный текст

Использовать Машины/Глубокое Обучение для Угадывания Строки Задать Вопрос

Задано 7 лет, 8 месяцев назад Изменено сегодня Просмотрено 1 тыс. раз

Задано 7 лет, 8 месяцев назад

5 $\begingroup$ Я хочу иметь возможность вводить блок текста и затем заставлять его угадывать строку внутри заданного диапазона (т.е. строку, начинающуюся с трех букв и заканчивающуюся пятью цифрами, например "XXX12345" и т.п.). Идеально, если строка, которую нужно угадать, будет где-то в блоке текста, но иногда это не так. Я испытываю трудности с тем, с чего начать на этом или даже правильно ли я направляюсь, рассматривая Машины/Глубокое Обучение для решения этой задачи. Помогите! нейронные сети машинное обучение глубокое обучение долгосрочная краткосрочная память текстовое суммирование поделиться улучшить вопрос следовать отредактировано 11 апреля 2018 г., 13:30 задано 10 апреля 2018 г., 18:41 TreHoffman 59 5 5 бронзовые значки $\endgroup$ 8 1 $\begingroup$ Похоже на статистическую задачу. Но, возможно, вам стоит использовать рекуррентные нейронные сети $\endgroup$ Andreas Storvik Strauman – Andreas Storvik Strauman 2018-04-10 19:04:17 +00:00 прокомментировано 10 апреля 2018 г., 19:04 1 $\begingroup$ Изменяется ли размер блока текста? Можете привести пример того, как выглядит входные данные? $\endgroup$ Andreas Storvik Strauman – Andreas Storvik Strauman 2018-04-10 19:53:20 +00:00 прокомментировано 10 апреля 2018 г., 19:53 1 $\begingroup$ Да, размер блока текста может меняться. Например, это может быть что-то вроде: hello my name is richard cheese. XXX12345 12345 Fake Street Faketown, FakeState USA или XXX12345 – мой никнейм. Мои интересы – публикация в Stack Overflow и употребление алкоголя до потери сознания. С нетерпением жду вашего ответа! ...по сути, мне нужна нейронная сеть, которая будет извлекать "никнейм" из любого блока текста, который ей предоставляется. $\endgroup$ TreHoffman – TreHoffman 2018-04-10 19:58:23 +00:00 прокомментировано 10 апреля 2018 г., 19:58 1 $\begingroup$ Похоже, вам нужно это распарсить, а не учить. Вы можете посмотреть на регулярные выражения. Вот пример . $\endgroup$ Andreas Storvik Strauman – Andreas Storvik Strauman 2018-04-10 20:06:37 +00:00 прокомментировано 10 апреля 2018 г., 20:06 2 $\begingroup$ Честно говоря, я не знаю. Я подозреваю, что есть лучшие способы сделать это с большей точностью. Это сильно зависит от обучающих данных и того, какие опечатки вы научите алгоритму. Если вам действительно нужно использовать DL, я все еще придерживаюсь мнения, что RNN – лучший выбор здесь, поскольку они могут "улавливать контекст". Обратитесь к блогу Колаха для получения дополнительной информации об RNN. $\endgroup$ Andreas Storvik Strauman – Andreas Storvik Strauman 2018-04-10 20:12:38 +00:00 прокомментировано 10 апреля 2018 г., 20:12 | Показать 3 дополнительных комментария 4 Ответа 4 Отсортировано по: Сбросить до значения по умолчанию Наивысший рейтинг (по умолчанию) Измененная дата (от новых к старым) Создано дата (от старых к новым) 0 $\begingroup$ Вы, безусловно, должны изучить рекуррентные нейронные сети, обученные на данных о языке с уровнем символов. Но убедитесь, что у вас есть соответствующий набор данных. поделиться улучшить ответ следовать ответил 1 июня 2018 г., 21:30 thecomplexitytheorist 776 3 3 серебряные значки 19 19 бронзовые значки $\endgroup$ 2 $\begingroup$ Не могли бы вы привести пример реализации, на которой я мог бы основываться? $\endgroup$ TreHoffman – TreHoffman 2018-10-19 17:17:25 +00:00 прокомментировано 19 октября 2018 г., 17:17 $\begingroup$ github.com/karpathy/char-rnn $\endgroup$ thecomplexitytheorist – thecomplexitytheorist 2018-10-22 04:27:48 +00:00 прокомментировано 22 октября 2018 г., 4:27 Добавить комментарий | 0 $\begingroup$ Я также рекомендую использовать рекуррентные нейронные сети на уровне символов, но с использованием обычных рекуррентных нейронных сетей на уровне символов мы можем только предсказывать следующие символы на основе предыдущих символов, поэтому вам следует рассматривать это как двунаправленную RNN, поскольку если у нас есть текст "xxx12345" то, по сути, если мы подаем его в нашу модель, наша модель должна сначала предсказать первые три места на основе последних мест (в DL они называют это возвратом во времени) и это возможно только с помощью двунаправленной RNN. поделиться улучшить ответ следовать ответил 8 июня 2018 г., 17:44 koushik 11 1 1 бронзовый знак $\endgroup$ 1 $\begingroup$ Не могли бы вы привести пример реализации?