Пользователь
0,0
рейтинг
23 марта 2013 в 23:37

Разработка → Microsoft показала «умный» Excel — «формулы» можно задавать на «обычном» языке

Ресурс MSFT Kitchen опубликовал видео с Microsoft TechFest, в котором продемонстрирована работа проекта Project Analyze исследовательского подразделения Microsoft Research. Суть проекта заключается в том, что работа с табличным процессором Excel производится не путём ввода формул и щёлкания по ячейкам, а при помощи команд, похожих на естественный английский язык.

Начиная с первой минуты видео (всего около 8 минут), демонстрируется в качестве примера финансовый документ с готовыми данными, в котором требуется получить ещё одно поле, складывая два последних — Base pay и Of pay. Обычный действия заключаются в том, что необходимо разместить курсор в нужной ячейке, ввести в неё формулу и «протащить» её до нужного диапазона. Вместо этого в поле для формулы вводится команда "add the base pay and of pay" и в итоге Excel заполняет поле, складывая указанные в «формуле» значения ячеек в указанных столбцах. Примерно также находится и сумма — командой "add up".

Далее показана работа команд, в которых легко угадываются foreach или некое подобие WHERE в SQL (вообще сильно похоже на SQL), что, в принципе, делает показанные примеры не вполне впечатляющими. Однако, оказывается системе можно задать и не вполне «стандартный» вопрос "who has a pay larger than average" (в итоге нужные поля Excel подсвечивает), что уже более похоже на обычную речь и выглядит более эффектно. К сожалению, на этом «естественные» вопросы более не показаны, так что о дальнейших особенностях системы можно только догадываться. Тем не менее, вероятно, будущие версии Excel (в Office 16)будут обладать некоторым подобием «естественного языка формул» или, возможно, неким подобием голосового управления, что в свете таких проектов как Siri выглядит уже вполне реально.




[Источник]
Евгений @jeston
карма
80,2
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

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

  • +2
    Людям с ограниченными возможностями будет полезно голосовое управление.
    • –1
      Как классно жить в это время. Постоянно что-то новое и прорывное…
  • +48
    • +5
      Когда смотришь этот ролик раз в третий, приходит мысль, что сказать «десять» им было бы значительно проще) Ну и этаж пешком…
  • +5
    В качестве развлечения — неплохо.

    Но для серьёзной работы вряд ли годится — либо каждый раз перепроверять, правильно ли Excel расслышал формулу (и тогда не быстрее ли её сразу самому набрать?), либо объяснять потом сотрудникам, почему зарплата начислена неверно — «я был простужен, и Excel не так расслышал.»
    • +2
      Ага, нет такого понятия как «интуитивно понятный синтаксис»
  • +25
    Напомню: SQL изначально разрабатывался для обычных пользователей, макросы вроде как тоже для неспециалистов.
    • +15
      Я вот тоже всегда поражался. Почему в школах преподают географию, а SQL, который позволит работать свободно с кучей баз данных — нет?

      Ну ладно, про школы я совсем загнул. Но елки, проще формул Excel и придумать что-то тяжело. Зачем еще упрощать? Пока искусственный интеллект не развит до уровня полного понимания человека, придется городить костыли вроде языков программирования, скриптов и т.д. Не понимаю, неужели тяжело потратить 30 минут на изучение синтаксиса функций Excel?

      Буду очень рад, если кто-то объяснить, в чем преимущество (хоть малейшее) такого подхода
      • +1
        Во-первых, формулы — это страшно. Их учить надо, а это лениво.
        Во-вторых, в майкрософте думают, что они реально сумеют написать парсер, который будет разбирать естественную речь, и пользователям не придётся изучать синтаксис, который этот парсер понимает.
        • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Не надо там ничего учить: там есть кнопка, в которую тыкаешь и получаешь список функций, разбитый по категориям, с об'яснениями. За редким исключением там и без справки понятно.
        • +4
          Конечно, распознают… Откуда им знать, что значит фраза «Я хочу нажать… чтобы зелененьким и вместе все… крокодилы-бегемоты… а дальше сами понимаете...»?
          ИТшник часто не понимает, чего хотят пользователи. Да что там говорить — сами пользователи часто сами не понимают, чего хотят.
          • +1
            Самое страшное будет если она таки поймёт как-то (так или не так, как пользователь подразумевал), а тебе, айтишнику, потом придётся это дебажить…
        • 0
          Их учить надо, а это лениво.

          Не надо ничего учить. Никогда в жизни ничего не учил кроме стишков, которые в младшей школе таки заставляли под угрозой пыток (порок). Всегда есть документация. Если бояться, что в важный момент её не будет — то учить всё, а всего не выучишь, так что не надо учить вообще ничего. IMHO.
          • 0
            Запоминание наизусть — это кэш. Информация, к которой часто обращаешься, автоматически туда запишется. Любая функция вместе с названием и аргументами и даже практическими примерами сама запомнится стоит пара раз слазить за ней в документацию когда она потребуется. Искусственно же что-то заучивать, обращаться к информации тупо чтобы она закэшировалась — в большинстве случаев весьма нелепое занятие.
            • +1
              Есть мнение, что с появлением гугла, вики и т. п. эффективность кэша у людей ухудшилась, слишком часто из него выкидывается нужное ростоянно и записывается нужное один раз.
        • +1
          Вы пробовали пользоваться русскими формулами в Excel? Это просто наказание как перевели функции и зачем это было сделано… Всякие ВПР вместо VLOOKUP, или ГПР вместо HLOOKUP. Я боюсь представить что будет с этим «естественным представлением» функций когда Мелкомягкие решает его на русский язык конвертнуть.
          • 0
            Кажется, хабрапарсер съел тег «ирония» в моём комментарии. )
      • +3
        Но елки, проще формул Excel и придумать что-то тяжело. Зачем еще упрощать?

        Когда мне приходится писать формулы для Excel/Calc я вспоминаю каждый раз свои первые опыты по программированию на асм и бэйсике. Абсолютная адресация памяти без каких-либо меток или алиасов и переменные из двух символов максимум — что может быть проще?

        Простота не симноним удобства. Меня бесят эти всякие A1 и ZZ768, ведь казалось бы у каждых строки и столбца в таблице обычно есть заголовок на который можно сослаться. (Про именованные диапазоны и ячейки я знаю, но это неудобно и оверхидно для одноразовой таблички).
        • 0
          Офис же вроде умеет с 2010 версии ориентироваться по заголовкам таблиц.
          • –2
            С ним не разбирался.
        • +1
          Абсолютная адресация памяти без каких-либо меток или алиасов

          Откройте для себя именованные диапазоны.
          На риббоне «Formulas» кнопка «Define Name».
        • 0
          Дочитал до "(Про именованные диапазоны и ячейки я знаю, но это неудобно и оверхидно для одноразовой таблички)."

          Ну так HLOOKUP тоже поддерживается с глубокой древности.
          =HLOOKUP(«heading»,$A:$Z,rownumber)
          Как это можно было реализовать ещё проще?
          • +1
            =heading :)
        • –1
          Меня бесят эти всякие A1 и ZZ768

          А мне казалось столбцы и области можно было именовать ещё в Excel 95.
          • 0
            Можно, но сложно. нарушается DRY. Сначала я задаю «визуальное» имя, а потом «программное».
            • 0
              Ой-вэй… По-моему когда «программируешь» под Excel и тому подобные кухонные комбаины, о паттернах и правилах хорошего тона думать не принято. Я тоже из идеалистов, которые стараются вести себя как джентльмены даже в курятнике, но иногда жизненно необходимо уметь впадать в «контролируемую глупость».
            • 0
              А мне кажется совершенно естественным, когда контрол программно называется txtUsername, а визуально подписан «Имя пользователя».
              Это тоже нарушение DRY тогда?
              • 0
                Это для программистов естественно разделять сущность и её представление (и то не для всех). А для «среднего пользователя» ни разу. Нет у них в голове такого уровня абстракций.
  • +4
    Лучше бы усовершенствовали VBA, чем строки формул.
    • 0
      А что не так с VBA — давно не слежу. Отстает от VB?
      • 0
        Как VB официально мёртв с 2005, так и в VBA за последний десяток лет вносились только косметические изменения.
        • 0
          Был уверен, что они давно перешли на VB .NET VBA .NET. В мое время довольно синхронно шли VB и VBA, а когда .NET начали двигать, а я как раз от продукции MS стал отдаляться.
    • +1
      Лучше бы усовершенствовали VBA, чем строки формул.

      Да, мне тоже кажется, что VBA здорово задержался на этом свете. Давно пора заменить на что-то более современное. C#, VB.Net, Python, JavaScript, LISP/Scheme, что угодно. Понятно, что поддержку старых документов отрубать не хочется, но что мешало, например, оставить VBA в старом (который без x на конце) формате?
  • 0
    Лучше бы сделали возможность вводить функции в формулы не только на русском языке. Бесит нереально, когда надо переключаться на английский для ввода адреса ячейки или названия колонки в таблице, а потом обратно на русский для ввода какого-нибудь ВПР или ЛЕВСИМВ.
    • 0
      • 0
        а теперь тоже самое, но с русским языком интерфейса.
    • 0
      Лучше бы сделали возможность вводить функции в формулы не только на русском языке. Бесит нереально,

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

      когда надо переключаться на английский для ввода адреса ячейки или названия колонки в таблице, а потом обратно на русский

      Это ещё что, я, вот, при письме на русском (даже сейчас, когда пишу комменты на Хабре), переключаюсь на английский всякий раз, когда надо, например, набрать кавычку или ещё что-нибудь в этом роде. Раньше даже для точек и запятых переключался :-| В принципе делаю это на автомате и за доли секунды, но всё-таки… Я, вот думаю, классно было бы, если бы клавиатуры были хотябы на пару рядов больше и раскладки на разных языках максимально соответствовали…
      • +1
        По-моему это ужасно когда язык, по сути, программирования, использует разные названия одних и тех же функций на разных компьютерах у разных пользователей.

        Не перебарщивайте с «языком программирования». Имхо, продукт такого уровня должен понимать формулы на любом языке.
        • +1
          С тем, что должен понимать, я ещё соглашусь, но с тем, что локализованная версия не должна понимать английские — ни за что.
          • +1
            Я тоже.
          • 0
            Я помню чудесную русифицированную версию MicroWorlds, где каждое ключевое слово поддерживалось в четырёх вариантах — русском и английском, полном и сокращённом. Например, «вп» «вперед» «fw» «forward».
            В результате удобно было всем — и опытным программистам, и начинающим.
          • 0
            Особенно когда VBA там поддерживает только английский вариант.
  • +11
    Apple уже делала попытку сделать язык максимально похожий на разговорный английский — AppleScript

    в простых вещах действительно интуитивно
    display dialog "Hello, world!"

    или
    tell application "Finder" to open POSIX file "/Users/sj/coolpicture.jpg"

    но как только дело доходит до более серьезных вещей то тут уже не все так благополучно
    
    set recipientName to "John Doe"
    set recipientAddress to "nobody@nowhere.com"
    set theSubject to "AppleScript Automated Email"
    set theContent to "This email was created and sent using AppleScript!"
    tell application "Mail"
        set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}
        tell theMessage
            make new to recipient with properties {name:recipientName, address:recipientAddress}
            send
        end tell
    end tell
    
    • 0
      Да собственно Perl всегда славился этим
      defined and print foreach(@elements)
      
    • +3
      Ага, «to open POSIX file» — так похоже на разговорный английский :-)
  • +2
    Может быть для каких-то простых вещей это и будет полезно, но вот я, например, работаю с фин. моделями на работе иногда — там от 3,5к строк, куча формул и макросы (модель покупная) и все это добро и так вешает эксель по три раза в день, а если он, еще и попытается парсить голосовые команды или команды заданные в свободной форме текстом, то он будет виснуть пятьдесят раз в день. Мне кажется, что сейчас в экселе есть уже просто все, что только можно придумать — поработали бы лучше над стабильностью работы.
    • 0
      Цель у новых версий не улучшение работы, а продажа новых экземпляров. К сожалению «лучшесть» (и цену) проще объяснить новыми фичами (пусть сырыми) чем допиливанием чего то чем занимаются только «айтишники».
    • +2
      Мне кажется, что сейчас в экселе есть уже просто все, что только можно придумать


      В ассемблере точно есть всё, что можно придумать (в рамках железа).
    • 0
      >работаю с фин. моделями на работе иногда — там от 3,5к строк, куча формул и макросы
      если эксель уже не тянет и виснет, то неужели нет более подходящего специализированного софта под эти задачи? В крайнем случае накатать свой велосипед/напрячь местных кодеров
      • 0
        Может быть и есть, но модель, которой пользуюсь сама по себе довольно мощная штука — она, например, используется как стандарт во многих банках, так что отказываться от неё нет смысла. просто приходится терпеть и уповать на автосохранение, хотя когда до сдачи проекта 1-2 дня, а тебе надо добить 14 фин. моделей и раз в час все падает (пусть и с сохранением данных), то нервы просто не выдерживают. страдает больше всего переферия — мышки и клавиатуры, как объект снятия стресса…
        Хотя, если кто знает надежный софт для фин. моделирования в области недвижимости и строительства, буду благодарен за советы.
  • 0
    Да здравствует COBOL!
  • 0
    так и не понял над чем они там работают и для кого будет конечный продукт… я так же не понимаю как можно использовать «естественный язык» как инструмент для написания программ. Если нет формализации языка — нет документации, значит использование функционала будет исключительно примитивным и по примерам. В общем на «продакшен» использование можно и не надеяться.
    (а если у кого-то нет сил освоить и без того простую функциональность экселя, для которой авторы подготовили замену, то может стоит заняться чем-то другим?)
    • 0
      стандартная sales серебряная пуля — мы предоставим вам функционал с которым ваши бухгалтера(условно говоря, ничего против бухгалтеров не имею) смогут самостоятельно управлять процессом без привлечения дорогостоящих It специалистов. А то что ровно так же позиционировался и предыдущий функционал уже все забыли.
    • 0
      Для тех, кому сложно даются низкоуровневые абстракции типа C$4. Или они бесят своей низкоуровнестью.

      И кто сказал, что нет формального описания?
      • 0
        >Для тех, кому сложно даются низкоуровневые абстракции типа C$4. Или они бесят своей низкоуровнестью.
        ну так нужно дать пользователям возможность переименовывать колонки вместо просто «С». Можно выкидывать знак доллора когда пользователь ввёл «C$4» и подсвечивать как-нибудь, что бы было ясно что «система схавала». Да и вообще кто играл в «морской бой» всё поймёт :)

        >И кто сказал, что нет формального описания?
        и где же оно? :) Или всё это ненужные игрушки типа шаблонов «who has ${var} ${opt}...» (что плохо соответствует статусу MS Research) или реально имеет такую формализацию, от которой у бухгалтеров волосы вылезут при первом погружении. Если данные структурированы, то смысла в NLP я не вижу.
        если бы я был бухгалтером, то я не за что в жизни не доверил бы подобной системе посчитать годовой баланс, только руками, только так как я это явно указал.
        Короче интересно насколько большие выражения способна переваривать система, какая вообще предсказуемость у такой интерпретации, сколько у этого «NLP» разных «но и если».
        Как по мне — так исключительно академический интерес без реальной возможности применения (если только не миксовать с привычной схемой создания формул — отдельный вопрос сколько смысла в новой системе если всё равно нужна старая).
        • 0
          Упс. Промахнулся. Ниже ответ.
  • +1
    ну так нужно дать пользователям возможность переименовывать колонки вместо просто «С»

    Вот кстати почему этого никто не делает — не понимаю
    и где же оно? :)

    #jump_to_future#excel16.exe#enter##F1# :)
    Или всё это ненужные игрушки типа шаблонов «who has ${var} ${opt}...» (что плохо соответствует статусу MS Research) или реально имеет такую формализацию, от которой у бухгалтеров волосы вылезут при первом погружении.

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

    Фича конвертации в обычные формулы наверняка есть.
  • +1
    Отлично! Теперь народ можно будет не учить правильно писать/говорить на родном языке отдельно и языку формул отдельно. Это все будет совмещено! Единый курс русского языка! Это же просто прекрасно, а?

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