Введение


Когда я объяснял своему ребёнку в 4-м классе, как решать текстовую задачку по математике, то неожиданно понял две вещи. Во-первых, процесс объяснения решения можно автоматизировать. А во-вторых, для большинства школьных вычислительных задач подходит универсальный метод через систему уравнений, который почему-то пока не изучается в младших классах школы. Причём освоение этого метода вполне по силам среднему школьнику и позволит справляться с ранее недоступными ему задачами. Результатом этого понимания явился сайт RESHI.RU с объясняющим задачи роботом.

Отличием от многочисленных сайтов с готовыми домашними заданиями является то, что задача может быть решена теоретически любая, а не заранее заданная. Но только теоретически, поскольку практически робот понимает только те типы задач, для которых сделана программная реализация. На задачах учебников за 4-й класс робот показывает 65% правильных решений (а если не может или сомневается, то честно об этом предупреждает), за 3-й класс — около 80%.
Решаемая задача должна быть сформулирована текстом без ошибок, не иметь графической информации в условии (картинки, схемы) и быть вычислительной, то есть ответом должны получиться одна или несколько величин. Величины в условии задачи могут быть как числами, так и переменными.

Робот пытается составить для задачи систему из простых уравнений и решить её. Для некоторых типов задач робот может решить и школьным способом, который предлагается как дополнительный.

И всё-таки у RESHI.RU основной целью является не решение конкретных задач, а объяснение на примерах универсального метода решения через систему простых уравнений.

Пример задачи


Рассмотрим пример решения роботом следующей задачи с сайта RESHI.RU.

Из поселка и города навстречу друг другу, одновременно выехали два автобуса. Один автобус до встречи проехал 100 км со скоростью 25 км/час. Сколько километров до встречи проехал второй автобус, если его скорость 50 км/час.

Робот понял, что это задача на движение двух объектов и он умеет такие решать. Осталось
правильно выделить все величины, понять их типы и соотнести с этими двумя объектами.
В качестве объяснения робот выводит последовательность разделов, в каждом из которых описывается тот или иной аспект, приближающий к получению ответа. Приведём здесь скриншоты этих разделов.









Робот также понял, что помимо универсального способа есть и школьный способ решения, который короче и проще.



Всё это вместе со схемой генерируется автоматически для каждой решаемой задачи, а не задано изначально.

Универсальный способ решения


Большинство школьных текстовых задач можно решить универсальным методом — через систему простых уравнений. Если ученик освоит этот метод, то он в принципе сможет решить любую типовую школьную задачу по математике, заданную текстом.

В 1-м классе школьников учат решать простые задачи, описываемые одним уравнением a = b + c или a = b — c. А в 3-м классе после освоения операций умножения с делением появляются простые задачи на a = b ? с или a = b / c. Составные задачи — это те задачи, которые не являются простыми, то есть не описываемые одним уравнением с тремя величинами. Здесь ученику предлагается проявить смекалку, чтобы либо составить одно сложное уравнение, либо свести задачу к ряду более простых задач, решающихся одна за другой. Составные задачи со сложением и вычитанием активно предлагаются со 2-го класса, а с 3-го класса сложность ещё возрастает с появлением новых операций.

Но есть ещё один способ решения составных задач, и состоит он в том, чтобы составить несколько простых уравнений (систему уравнений), а затем решить её целиком. Действительно, если ученик может решать простые задачи (то есть правильно составлять простое уравнение по тексту условия), то для составной задачи он в принципе может составить для каждого отдельного условия своё простое уравнение. Для этого нужно все встречающиеся величины обозначать своими символами (например, x, y, z, ...), и формировать для них соответствующие x = y + z и т.д. Потом подставить конкретные числа в уравнения. А затем решить эту систему, последовательно определяя неизвестные значения.

Данный способ может оказаться более трудоёмким для решения на конкретной задаче, так как некоторая «изюминка» обычно упрощает работу. Но её не всегда можно обнаружить, так как это своего рода искусство. А универсальный метод не требует этого, являясь технологией типа «делай раз, затем делай два, а вот и ответ».

Робот пользуется именно универсальным способом и старается максимально подробно объяснить на конкретной задаче, как он получает решение. Предполагается, что ученик потратит некоторое время на понимание того, как это делает робот, чтобы в дальнейшем повторять подобные действия на других задачах. Однако робот предлагает и школьный вариант решения, если для этого типа задач робот ему обучен (сейчас не для всех типов, но постепенно обучится).

Полезно это или нет для учеников — вопрос спорный. С одной стороны, это может повысить процент решаемых учениками задач. С другой стороны, в некоторых из учеников такая технологичность может подавить нежные ростки математической смекалки. Предлагаю направлять автору или записывать здесь свои обоснованные соображения и опасения.

Классификатор задач


По системе простых уравнений задачи можно автоматически расклассифицировать. Это может пригодиться, например, для того, чтобы предложить ученику решить аналогичную задачку для закрепления навыка. Также робот может понять, к какому реально классу относится задача, ибо даже в учебниках 4-го класса попадаются задачки уровня 1-го класса!

В настоящий момент на сайте загружено более 4000 задач из реальных учебников, и можно увидеть этот автоматический классификатор на этих задачах.

Реализация робота


Разумеется, возникает резонный вопрос — а как это робот делает? Сразу скажу, что это очень сложная реализация. Я занимаюсь обработкой текстов естественного языка около 10 лет, и это — самая сложная задача из тех, которые мне встречались в этой области. Сложность состоит в том, что нужно правильно выделить числовые величины, понять их тип и связать с объектами. Любая неточность хотя бы в одном из аспектов приводит к неправильному результату.
Перечислю только некоторые из проблем, с которыми пришлось столкнуться.

  • Псевдо-величины, которые не относятся к задаче (На кусте было 2 распустившиеся розы. Через 3 дня распустилось еще 4 розы. Сколько роз на кусте?);
  • Неявные величины, задаваемые разными комбинациями типа «столько же», «половину от» и прочее;
  • Синонимия, когда один и тот же объект обозначается разными комбинациями (грузовой автомобиль = грузовик);
  • Сложность с идентификацией объектов (От двух пристаней навстречу друг другу отплыли теплоходы… — непонятно, кто здесь объекты, пристани или теплоходы?);
  • Анафора (местоимения он, она, оно) не всегда однозначно ссылаются на объект;
  • Необходимость расщеплять задачу на подзадачи, когда базовое условие одно, но дополнительные условия или что нужно найти вариативны;
  • Неявное условие, кардинально меняющее смысл задачи (Крышка стола имеет 3 угла. Один угол спилили. Сколько углов стало у крышки стола?);

Но это то, что лежит на поверхности. На алгоритмическом уровне этих проблем гораздо больше.
Основная идея алгоритма состоит в том, что реализуются специфические обработчики задач, понимающие свои типы. Задача прогоняется по всем обработчикам, и какой распознает свой тип, тот и решает задачу. Каждый обработчик решает довольно широкий спектр задач своего типа.

Сейчас эти типы такие:

  • Задачи на движение одного или нескольких объектов;
  • Задачи на прямоугольники и квадраты (один или несколько), площади, периметры, заполнение одних другими;
  • Задачи на однородные величины (когда все величины сводятся к одной размерности, а сама задача — к системе линейных уравнений);
  • Задачи на двуродные величины (когда присутствует умножение в системе уравнений);
  • Явно описывающие уравнение (например, Частное чисел 2082 и 6 равно сумме задуманного числа и числа 48);
  • Задачи на время суток;
  • Задачи на среднее, преобразование размерностей и др. мелочи;

Когда робот понял задачу, то есть отнёс её к одному из поддерживаемых типов, правильно расставив величины и поняв, что нужно вычислить, он может сгенерировать своё понимание своим языком. Кстати, на сайте это понимание выводится справа от текстов задач для учебников. Приведём примеры с сайта.

Условие: Частное чисел 2082 и 6 равно сумме задуманного числа и числа 48.
Понимание: Найти корень уравнения: 2082: 6 = x + 48.

Условие: Спектакль для детей начался в 11 ч и закончился в 12 ч 35 мин. Сколько времени длился этот спектакль?
Понимание: Есть временной интервал. Начало интервала 11 ч. Окончание интервала 12 ч 35 мин. Какова продолжительность интервала?

Условие: Ане 12 лет. Она в 3 раза старше брата. На сколько лет Аня старше брата?
Понимание: Есть 2 числовые величины: возраст Ани и возраст брата. Возраст Ани равен 12, он в 3 раза больше, чем возраст брата. На сколько возраст Ани больше, чем возраст брата?

Условие: Один токарь каждый час изготавливает 8 деталей, а другой — 7 деталей. За сколько часов они изготовят вместе 90 деталей, если выработка в час у них не изменится?
Понимание: Есть 2 объекта: токарь №1 и токарь №2. Число деталей в ч токаря №1: 8 деталей. Число деталей в ч токаря №2: 7 деталей. Суммарное число деталей совместно: 90 деталей. Время у всех объектов одинаково. Какое значение в ч имеет время?

Условие: Из двух сёл одновременно навстречу друг другу вышли два товарища — Миша и Коля. Миша шёл со скоростью 3 км/ч, а Коля — 5 км/ч. Одновременно с Мишей к Коле побежала собака. Она бежала со скоростью 8 км/ч. Добежав до Коли, она повернула назад, к Мише, и так и бегала между ребятами, пока они не встретились. Сколько километров пробежала собака, если расстояние между сёлами 16 км?
Понимание: Два объекта (миша и коля) одновременно начали движение друг к другу с расстояния 16 км. Между ними перемещается туда и обратно 3-й объект (собака) со скоростью 8 км/ч. Первый объект (миша) перемещался со скоростью 3 км/ч. Второй объект (коля) перемещался со скоростью 5 км/ч. Какой путь в км преодолел 3-й объект?

Условие: В комнате, длина которой 8 м, а ширина на 2 м меньше длины, надо покрасить пол. Сколько для этого понадобится краски, если расходовать по 150 г на 1 м2?
Понимание: Прямоугольник длиной 8 м. Ширина на 2 м меньше, чем длина. Площадь заполняется элементами по 150 гр на единицу площади. Сколько элементов на всю площадь?

Что дальше?


Планируются следующие направления развития:

  • Повысить процент решаемых задач. Сейчас для задач 4-го класса робот показывает 65% правильных решений, для 3-го класса — около 80%, для 1 и 2 — процент ещё выше;
  • Организовать продвижение сайта;
  • Ввести задачи всех популярных учебников по математике, в том числе и для стран СНГ (на русском языке);
  • Поддержать другие языки славянской группы;
  • Пойти в направлении 5-го класса и далее;
  • Подумать о текстовых задачах по физике;

Реализация этих направлений будет зависеть от реальной востребованности сайта.

Комментарии (51)


  1. Griboks
    08.10.2019 23:22

    Интересно получается. Вот вводит школьник задачу, получает решение, которое практически в половине случаев неверное. Учит это решение, пишет его на контрольной, а потом получает двойку. Как-то неправильно работает этот сервис.

    Хочу заметить, что робот плохо работает с окончаниям. Если написать, например, 10 литров в час, то он сломается и выдаст V=10 л.


    1. KonstantinSmith Автор
      09.10.2019 00:20

      Зависит от типа задач. Для движений объектов, например, правильно за 90%. Разумеется, человек всегда сможет обмануть бедного робота...


      1. Griboks
        09.10.2019 09:14
        -1

        Когда речь идёт об образовании и формировании мышления на всю жизнь, 90% — это очень мало, а 60 — и подавно. И когда ваш сын получит двойку по математике, объясните ему, что он просто попал в те 10-40 % неудачников.

        Аналогично, нельзя построить какой-нибудь боинг, который упадёт с вероятностью 10%. Либо 0, либо не строить.

        P. S.
        Я не пытаюсь вас обвинить в чем-то. Но в таких вопросах нельзя выпускать недоделки и сырые вещи, тк школьники слишком глупые, чтобы это понять.


        1. vassabi
          09.10.2019 10:00
          +2

          Какие боинги о чем вы?
          Первая же двойка по «домашке» или контрольной работе отучит ученика слепо доверяться таким сайтам. Это будет более полезный навык в жизни чем даже абстрактная математика.


          1. Griboks
            09.10.2019 12:56

            Ну так давайте его сразу в кадеты отправим, да все игрушки отберём. Сразу, так сказать, полезным навыкам в жизни обучим. К чему этот цирк со школой, егэ и прочим? Пусть сразу привыкает вставать — кушать — работать — кушать — спать на всю жизнь. Ну а на 5 году обучения уже водочку на выходные будем поставлять+отправим курьером в яндекс работать. Пусть привыкает к своей никчёмной жизни, да?


            1. vassabi
              09.10.2019 14:50
              +1

              я не знаю — почему вас так сильно переклинило в состоянии «нарисую мрачное будущее и буду задавать дурацкие вопросы», но рискну предположить, что это была реакция на «абстрактная математика». Если это не так — напишите.
              Если я угадал, то обратите силу своих эмоций на то, что есть еще и неабстрактная математика (посчитать сдачу, площадь с объемом или прикинуть концентрацию веществ в растворах когда их смешиваешь). Кроме этого человечество не совсем отрицает светлое будущее даже тех профессий, которые могут обходиться даже без такой математики (хотя им бывает в жизни нелегко, и из-за этого происходят курьезные случаи) — например актеры, художники, писатели (и много-много других, не исключая курьеров яндекса).


              1. Griboks
                09.10.2019 14:58

                1. Зачем делать сервис, который обманывает школьников?
                2. Если обманывает не всегда, то почему нет предупреждения или пояснения?
                3. Зачем детям подсовывать сырой ненадёжный сервис, которые иногда работает, а иногда не работает?
                4. Зачем детям учится на своих ошибках, если можно сначала думать, а потом делать?
                5. Зачем детей учить плохим навыкам?


                1. vassabi
                  09.10.2019 20:03

                  зачем задавать риторические вопросы?
                  автор явно указал, что написал это все для себя, так что если кто-то это использует — то действует на свой страх и риск.
                  Максимум, что можно у него спросить — указал ли он этот disclaimer пользователю при посещении сайта или нет.


        1. KonstantinSmith Автор
          09.10.2019 14:13
          +1

          Процитирую себя же: И всё-таки у RESHI.RU основной целью является не решение конкретных задач, а объяснение на примерах универсального метода решения через систему простых уравнений.
          Достаточно один раз понять идею, и «серебряная пуля» в кармане на всю жизнь… А на задачах из реальных учебников вполне хорошо работает, а там, где не работает, то и говорит, что «не могу».


    1. GeMir
      09.10.2019 08:07

      С одной стороны, логичное развитие идей Photomath и Math 42, но выпускать в открытый доступ проект, находящийся в стадии разработки, в данном случае, по-моему, не стоило.


  1. KonstantinSmith Автор
    09.10.2019 00:21

    Правила


  1. Marwin
    09.10.2019 00:45
    +1

    оффтоп
    по прошествии лет обучения ребенка в школе мне вообще даже жалко стало школьников начальных/средних классов, которые сидят и чуть ли не часами думают как решить ту или иную задачку "материальным" способом, представляя как оно всё в жизни. Хотя задача прекрасно в момент решается синтетической системой уравнений по единому алгоритму вообще на все случаи жизни. Даже думать не надо. Сюда же можно отнести решения с переходом в промежуточные минуса и прочие невероятные штуки.
    Так вот, сообсно, вопрос… неужели это подтверждено наблюдениями и статистикой, что изучение расширенной математики невозможно донести до юных падаванов, а только после этого уже приступать к решению каких-то счётных задач. Безусловно, я не имею ввиду, что-то совсем уж заумное типо интегралов (хотя и их полезно понимать в самом начале перед уроками геометрии и прочей истории с площадями), но уж уравнения-то и полный числовой ряд. Это как говорить А и не говорить Б…
    Вобщем я к тому, что раз в основе всего лежит математика, так почему не отливать в граните мозга сначала её с полным набором функционала, а не обрезанную демо версию, где шаг влево (меньше нуля) — шаг вправо (извлекать квадратный корень из отрицательных) — расстрел )), а уж потом предлагать учить решать с помощью неё какие-то повседневные задачи.


    1. Zenitchik
      09.10.2019 12:36
      +2

      Не знаю, как на счёт наблюдательной статистики, но вот чисто интуитивно кажется, если довести юного падавана этими «материальными способами» настолько, что он уже морально готов сам абстракцию выдумать — абстракция ляжет на подготовленную почву.
      Ну, типа, как чтобы врубиться, зачем нужны классы и наследование — нужно хорошенько поработать в стареньком языке в процедурном стиле.


  1. Impuls
    09.10.2019 08:25

    3 землекопа за 2 часа вырыли 3 ямы. Сколько ям выроют 6 землекопов за 5 часов?


    1. WinLin2
      09.10.2019 09:53

      Это задача из 7 класса — прямая и обратная зависимость.
      Никаких формул только сравнение часов и землекопов.
      … сам удивляюсь современному обучению.


    1. KonstantinSmith Автор
      09.10.2019 14:14

      Робот пока ориентирован на задачи до 4-го класса. Когда-нибудь может дойдём и до этих задач.


    1. ivtst1
      09.10.2019 14:24

      В общем виде задача имеет бесконечное множество решений. Единственное решение будет только в том случае, если сделать предположение, что землекопы работают с одинаковой скоростью.


  1. CryptoPirate
    09.10.2019 12:14

    На планете Бромоклюк деньги называются бряклы. Хрюкла стоит 3 бряклы. Чтобы купить моклу нужно 8 брякл. Бубльмог пошёл в магазин чтобы купить 2 хрюклы и 3 моклы.

    Если закончить задачу «У Бубльмога есть 32 бряклы. Хватит ли ему денег?»
    То выдаёт: "? ERROR Разность 4-х величин: -42 деньги"

    А если в конце спросить «Сколько Бубльмогу нужно брякл?»
    То выдаёт "? ERROR Разность 3-х величин: -10 бряков"


    1. KonstantinSmith Автор
      09.10.2019 14:18

      Робот ориентируется на ту лексику, которая используется в реальных учебниках (на сайте эти загруженные учебники есть на отдельной странице). То есть на типовые задачи. Хотя кое-что понимает и не из типовых. Но хитрые и олимпиадные задачи робот пока не может, и не знаю, сможет ли…


  1. GeorgKDeft
    09.10.2019 12:14

    Раньше спрашивали «сам реферат написал или скачал?», а теперь будут спрашивать «сам решил или роботом воспользовался?».


  1. lamerok
    09.10.2019 14:01

    У Маши 3 яблока, а у Юли 2 яблока. Юля съела 1 яблоко. Сколько яблок стало у Юли и Маши вместе.


    Результат #2: 1 Маша.


    1. RISENT
      09.10.2019 14:06
      +1

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


      1. KonstantinSmith Автор
        09.10.2019 14:23

        Совершенно верно, глаголы сильно влияют на понимание, какая операция должна быть использована. И алгоритм содержит списки типовых глаголов, связанных с операциями. В данном примере если слегка переформулировать «У Маши 3 яблока, а у Юли 2 яблока. Юля съела 1 яблоко. Сколько яблок осталось.», то робот понимает и решает правильно. Здесь его смутило «стало» и «вместе».


        1. kretuk
          09.10.2019 15:04
          -1

          текст задачи:
          «Один в поле не воин. Три себе лоб. Сколько лет трактору?»
          решение Вашим роботом:
          «Решение, Ответ: Сумма 2-х величин: 4 года»

          я делаю вывод, что ваш робот как минимум не понимаент части речи — «три» в данном контексте глагол, а не числительное.
          собственно о какой точности может идти речь, _не_ решаются базовые задачи при обработке текста?


          1. KonstantinSmith Автор
            09.10.2019 15:17
            +1

            1) Робот ориентирован на «типовые школьные задачи»;
            2) Человек всегда сможет обмануть робота;
            3) Вы — человек, а, следовательно, всегда сможете придумать задачку, на которой робот сломается;

            Вообще в области обработки неструктурированной информации имеют место 2 фактора:
            1) Невозможно достичь качества обработки в 100%;
            2) «Г-но на входе — г-но на выходе»;


            1. kretuk
              09.10.2019 15:38

              это понятно))
              "… следовательно, всегда сможете придумать задачку, на которой робот сломается;" — вообще звучит как отговорка.

              тут дело такое: вы же публикуете эту статью в профильном ресурсе, где её читают и оценивают в основном люди, которые сами решают подобные задачи, так?

              персонально я тоже немного знаком с подобными задачами, и мне интересно как именно вы решаете типовые задачи, которые _всегда_ так или иначе возникают при обработке текста.

              или может я чего-то не понимаю и вы не собираетесь ничего обсущдать, и это просто реклама?!


              1. KonstantinSmith Автор
                09.10.2019 16:00
                +1

                Как — немного я уже описал в самой статье (сведение к одному из поддерживаемых типов). В основе обработки текста лежит движок SDK Pullenti (из pullenti.ru), из которого используется морфология из Motphology и немного толковой информации из Explanatory. А далее идёт уже специфическая накрутка. Я здесь ничего не скрываю, но описание этого вряд ли кому-нибудь пригодится. Если интерес не праздный, то могу рассказать по скайпу. Обсуждение здесь не техническое, а скорее методическое.


                1. kretuk
                  09.10.2019 16:40

                  движок SDK Pullenti я так бегло видал.
                  похоже он хорошо рабирает адреса, всякие номера паспортов, документов и т.д.
                  на таких задачах правила работают хорошо, но вот работа с текстом, в часности русским…

                  у меня технический вопрос в связи с этим:
                  как вы определяете части речи? по языковой модели, просто по словарю или как? контекст учитывается?


                  1. KonstantinSmith Автор
                    09.10.2019 16:52

                    Часть речи — для словоформы POS-tagger из Pullenti возвращает вариант(ы), а я уже далее использую их при анализе. Конечно, «Три себе лоб» при таком подходе определится неправильно. Но это экзотический случай, в реальных задачах подобная неоднозначность исключительно редка и на данном этапе я ей пренебрёг.


                    1. kretuk
                      09.10.2019 16:59

                      если у вас "«Три себе лоб» при таком подходе определится неправильно", то это я понимаю как то, что у вас в Pullenti части речи определяются просто по словарю, _без_ учета контекста.

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


            1. kretuk
              09.10.2019 15:46

              «Г-но на входе — г-но на выходе»
              — так у вас не пишет, что «Г-но на входе». не пишет как раз потому, что не понимает, где какая часть речи.
              не понимая, где какая часть речи (более базовую задачу), нельзя решить более сложную задачу — понять, о чем текст (в вашем случае текст задачи) — семантический смысл, так?

              не понимая семантический смысл текста как можно делить, в вашем случае матем. задачи, на какие-то типы, которые вы можете решить или нет?
              и о какой точности может идти речь?

              с таким же успехом можно говорить о точности набора обезьяной теста «войны и мир»)))


  1. inwardik
    09.10.2019 14:14
    +1

    У Ивана две руки, а у Лены на три руки больше, чем у Ивана. Сколько рук у Лены?
    Ответ: 2/3 — оригинальный подход к решению.
    А вообще: интересный проект, успехов Вам в его развитии!


    1. KonstantinSmith Автор
      09.10.2019 14:35
      +2

      Да, много ещё недопониманий, туповатый пока робот. Спасибо, исправлю.


  1. kretuk
    09.10.2019 14:18

    а как именно робот понимает задачи?
    с помощью неких обученных моделей или с помощью заданных правил?


    1. KonstantinSmith Автор
      09.10.2019 14:23

      Правила, запрограммированные жестко.


  1. aarmaageedoon
    09.10.2019 14:24

    Нельзя это давать школьникам в руки! Вы не получите, что хотите. Те, кто умеют решать подобные задачи, решат ее без сервиса, а те, кто имеют сложности с пониманием не станут тратить время на вникание в объяснения, потому что проще взять и списать. Все равно, что списать у товарища по парте.
    Да и дело в том, что не просто так в 4 классе не дают СРАЗУ метод решения уравнений. Вся эта система направлена на спиральное преподнесение материала, чтобы у детей формировались различные интеллектуальные навыки в соответствии с уровнем развития, на котором они находятся. Именно по этой причине никто сразу не дает детям отрицательные числа, как было сказано выше. Насколько мне помнится, в 4 классе деление столбиком проходят. О каком таком понятии уравнений может идти речь, если еще даже не вводились понятия числовых выражений, например? Понятие корней уравнений вводится в начале 7 класса! А системы уравнений чуть познее.
    Другое дело, конечно, что для того, чтобы все эти спиральные скачки были заметны, нужны качественные преподаватели и правильное влияние родителей.
    К тому же, ваш сервис пытается переложить педагогическую задачу на детей, предлагая им самим в чем-то разбираться, т.е. задача из обучения превращается в самообучение. Но чтобы самообучатся, нужно иметь это делать, нужна мотивация, а с этим «бывают сложности» в младших классах, скажу я вам. И не только в младших.
    Другой важный аспект преподавания является взаимодействие с живым человек, что по мимо социального развития ребенка, имеет преимущество в том, что может быть сгенерировано еще два-три объяснения одной и той же задачи, могут быть уточнены моменты, где именно задача непонятна.
    Ваш сервис отлично может подойти преподавателям для того, чтобы создавать наглядные слайды для презентации, например, на которых он все сможет объяснить. На своем опыте преподавания могу сказать, что каким бы доходчивым ваше объяснение ни казалось, для ребенка это может казаться кромешным мраком. Поэтому пока лучше оставить эту задачу для людей.
    Кстати, а проект закрытый? Мне бы хотелось детальнее посмотреть, как это выглядит изнутри. Сам я тоже NLP-разработчик, но много менее опытный, чем вы.


    1. KonstantinSmith Автор
      09.10.2019 14:32
      +1

      Предистория такова. Мой ребёнок в недоумении подошёл ко мне (4-й класс), когда им задали типа «Вася купил 3 книги и заплатил за них… руб. За 1-ю и 2-ю заплатил… руб, за 2-ю и 3-ю — … руб. Сколько стоит каждая книга?». Им просто не объясняли, как это решать. А это система из 3-х линейных уравнений. И после моего объяснения ребёнок ПОНЯЛ! и почти сам решил аналогичную задачу. И тут я тоже кое-что понял и начал делать этот сайт. И это не самая плохая московская школа, и ребёнок хорошо учится.
      Конечно, если есть репетитор или хороший педагог, да или просто родитель с математическим образованием, то проблем нет. Ну а другим что делать? Вот не объясняют, и всё тут.
      Я согласен, что робот пока объясняет, может, и коряво. Ну так когда к делу подключатся методисты и подшлифуют, то будет лучше. Если подключатся.
      Проект закрытый в том смысле, что код никуда не выкладывается по причине бесполезности — он настолько сложный, что мало кому пригодится. Но любые комментарии дать могу, да и показать, если интерес не праздный. Связывайтесь по скайпу, особых секретов у меня нет.


      1. user_man
        09.10.2019 15:01

        >> Конечно, если есть репетитор или хороший педагог, да или просто родитель с математическим образованием, то проблем нет. Ну а другим что делать? Вот не объясняют, и всё тут

        Ориентируйтесь в продвижении на родителей. Если родителю плевать на обучение чада, то сам ребёнок, к сожалению, в подавляющем большинстве случаев не сможет разумно распорядиться временем и выбрать правильный сайт/программу или более абстрактно — метод. Но родители, если интересуются своим ребёнком и не могут умело объяснять математику, вполне могут заинтересоваться и вашим сайтом. А следом — научат ребёнка.

        >> Проект закрытый в том смысле, что код никуда не выкладывается по причине бесполезности — он настолько сложный, что мало кому пригодится

        Здесь тоже нужно менять подход. То есть код сам по себе действительно мало кому нужен, потому что людям нужно понимание. Тупо копипастить сложный код чаще всего бессмысленно, а вот при наличии понимания, можно быстрее написать самому, чем разбираться в сложном чужом коде. Поэтому было бы чудесно, если бы вы написали здесь же статью на тему «как обеспечить человеко-машинный интерфейс на основе упрощённого понимания смысла текста». Эта тема зашла бы весьма легко, ведь сейчас мода на разного рода чат-ботов и прочий ИИ, вот под это дело и стоит подавать свои знания, ибо они быстро найдут благодарных учеников. Надеюсь, что если вы всё хорошо понимаете, то сложностей с объяснение не будет, а значит и востребованность темы будет большая.


        1. KonstantinSmith Автор
          09.10.2019 15:11
          +1

          >>если бы вы написали здесь же статью на тему «как обеспечить человеко-машинный интерфейс на основе упрощённого понимания смысла текста»
          Если бы я знал «как», то был бы уже, возможно, нобелевским лауреатом… Ещё мой отец начиная с 70-х годов писал монографии на эту тему. Я же больше специализируюсь по программам, чем статьям. Практик, так сказать…


          1. user_man
            09.10.2019 17:07

            Вы, наверное, несколько неправильно восприняли фразу «понимание смысла текста». Смысл ведь не означает ничего супер-сложного, это просто информация. Это не универсальный ИИ или что-то в этом духе. Для понимания смысла некоего запроса пользователя программе достаточно заполнить некие пустые места в её модели, например — в семантическом графе. Вот вам и весь смысл. Точно так же и человек заполняет свой семантический граф, но в этом случае граф много сложнее и, разумеется, я не ожидаю, что вы реализуете что-то подобное. А вот простой граф типа «значение Х минус значение У равно Z» — ну что в этом сложного? То есть сам граф примитивный, а вся сложность интерфейса именно в конвертации фразы «я хочу сложить 3 и минус пять» в предложенный выше граф. Но вы как раз и занимаетесь такой конвертацией, и это как раз многим будет интересно, поскольку примерно так строятся все эти чат-боты.

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


            1. KonstantinSmith Автор
              09.10.2019 17:28
              +1

              Ну да, в таком смысле это у меня так примерно и работает. Пусть, например, робот пытается задачу привязать к модели движения 2-х объектов. В тексте встретил значение. И теперь пытается это значение (1) понять, что это (расстояние, скорость, время) и (2) к которому из 2-х объектов или не к объектам это относится. То есть заполняет значениями внутреннюю модель. Если не заполнил или есть противоречия, то берёт следующую модель из списка поддержанных.


  1. samsergey
    09.10.2019 22:44
    +1

    Комментарии напомнили знаменитый анекдот про японскую лесопилку и суровых сибирских мужиков.
    Интереснейшая задача, человек вплотную подошел к её реальному решению, рассказал как он это сделал и полностью открыт для общения со спецами, но! Самым интересным для уважаемых спецов оказалось тыкать в робота палкой, до тех пор, пока он не сломается, а потом гордо сказать: "ага!!" :)
    Поздравляю автора с отличной задачей и классной реализацией! Уверен, что вы с сыном получили то, что искали: и пользу и удовольствие. А сын ещё и получил возможность восхититься тем, на что способны математика и папа!
    В то время, как тыкатели палками могут гордиться тем, что они могут сломать что угодно, доказывая тем самым превосходство человека "над системой" :)


    1. kretuk
      09.10.2019 22:59

      странные ваши рассуждения.
      тут не премия Оскар вручается, за сторание и прележание))
      автор явно её заслуживает — упорства, судя по всему ему не занимать- это серьезно, буз иронии.
      он это не отменят сложности и качества решения таких задач, что и вызывает вопросы: «а как вы то сделали?», «а как с этим поборолись?» и т.д.


      1. samsergey
        09.10.2019 23:12

        Таких конструктивных вопросов было два. Из 42 комментов про "пользу" и "несовершенство" :)


    1. KonstantinSmith Автор
      10.10.2019 14:47

      Спасибо за тёплые слова, мне тоже пришёл на ум этот анекдот при чтении комментариев!
      А так конечно, я осознаю, что сервис пока получился «сложноватым», причём и для родителей. Я мечтаю, что какой-нибудь методист наткнётся на статью и скажет: «А ведь верно, можно же так решать задачи, но только нужно это оформить так-то и так-то...». Заинтересуется, например, в рамках своей диссертации или диплома. Я даже готов немного спонсировать. Ждём…


      1. user_man
        11.10.2019 13:12

        Вообще, если говорить методически, сразу напирать на системы уравнений, может действительно неправильно. Обучаемый должен понимать, что происходит, а для понимания, нужна база, которая задаётся на предыдущих уроках. Если на предыдущих уроках не было базы для систем уравнений, то вся нагрузка по созданию базы ляжет на предложенный сайт, но это увеличит необходимое время, которое учащийся обязан будет потратить на сайте, при чём — увеличит на порядки. Одно дело просто воспользоваться калькулятором, и другое — понять, как калькулятор работает, да ещё самостоятельно изучить то, что пока ещё в школе не проходили. Ведь нужно понять, что такое алгебра, потом понять, что такое уравнение, потом — что такое система уравнений, а кроме того — понять методы решения как уравнений, так и систем, ну и всё это поверх методов преобразования алгебраических выражений. И всё это — абстракции, которые для школьника, оперирующего конкретикой на уровне «у бабушки был дедушка», превращаются в нечто совершенно непонятное, типа «имеем объект Х, вступающий в бинарное отношение 'замужество' (а возможно и просто 'сожительство') с объектом У». И вот эта вся абстракция должна быть понятна первокласснику, пытающемуся решить задачи на сайте. Реально? Ответ очевиден. А без понимания — это просто магический калькулятор, непонятно как что-то там внутри считающий (да ещё и ошибающийся, что тоже привносит свою «магию»).

        По сути нужна некая рассуждалка, которая подталкивает ученика к правильному решению, но сама за него ничего не решает, как это делает калькулятор.


        1. KonstantinSmith Автор
          11.10.2019 14:37

          Для первоклашек и второклашек это, действительно, не нужно. Третий класс — под вопросом. А вот четвероклассник вполне может освоить этот метод. Эксперимент на моём ребёнке это подтвердил. Разумеется, нужно как-то методически правильно обучить этому методу (на сайте я предложил разобраться с несколькими задачами на вкладке «Метод решения»). Идея состоит в том, что нужно напрячься и освоить метод ОДИН РАЗ, и всю оставшуюся жизнь пользоваться им как «серебряной пулей».


          1. user_man
            11.10.2019 15:55

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

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

            Хотя да, дети способны понять как решать проблемы «по быстрому», и вполне умеют нажимать кнопки и раздвигать пальцами картинку для её увеличения, но это всё обезьяний навык, в этом всём отсутствует понимание сути происходящего, остаётся одна лишь магия. Я против обучения детей исключительно обезьяньим навыкам. Я за понимание, которое можно закреплять примерами (по сути — игрой с уравнениями) на сайте.

            Отсутствие понимания привело всю страну в задницу (простите за мой французский) и вы хотите ещё усугубить ситуацию?


  1. a1ex322
    10.10.2019 14:47

    Не специалист по нейросетям, но кмк либо они либо билдер условия


    1. KonstantinSmith Автор
      10.10.2019 14:49

      На основе той информации, что я имею про нейросети, очень сомневаюсь, что они подходят для решения этой задачи. Хотя сейчас ни в чём нельзя быть абсолютно уверенным.