Wolfram alpha на русском онлайн: Придаем всем пользователям новые возможности благодаря мощным вычислительным алгоритмам

Содержание

Wolfram Research, Champaign — Wolfram Language, Mathematica, Wolfram Alpha и др. / Статьи / Хабр

Перевод доклада Стивена Вольфрама, прочитанного им на фестивале SXSW 2014.
Оригинальный текст вы можете найти здесь.

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

Итак, на этот час запланировано довольно много.

В целом, мне бы хотелось рассказать историю, происходящую со мной в течение последних 40 лет, которая начинает приносить удивительные результаты только сейчас. Я имею ввиду что мы практически можем наблюдать эти результаты сегодня. Я хотел бы впервые представить вам весь спектр технологий, являющийся довольно-таки значительным результатом этих сорокалетних трудов. И я думаю что это достаточно важно.

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

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

Можно сказать, я гонялся за этой идеей 40 лет. Я уже давно балансирую на стыке науки и технологий — создаю все более масштабные строительные блоки и строю из них все более высокую башню. И каждые несколько лет мне удается увидеть куда она будет расти дальше. По-моему, получается здорово. Однако, в последние несколько лет случилось нечто удивительное — своего рода великая унификация, которая ведет к технологическому Кембрийскому взрыву. И сегодня я впервые вам частично её представлю.

Но, для начала, немного истории. 40 лет назад я был 14-летним юнцом, который впервые прикоснулся к компьютеру (он тогда еще был размером со стол).

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

Вернемся в 1981-й год. В этом году случилось нечто восхитительное для 21-летнего ученого — я превратил все это в свой первый продукт и свою первую компанию. Важно то, что это заставило меня осознать — программные продукты могут стимулировать интеллектуальное мышление.

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

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

Аналоги Wolfram Alpha — 5 похожих программ и сервисов для замены

Аналоги Wolfram Alpha — 5 похожих программ и сервисов для замены
  • 186

  • SpeedCrunch

    SpeedCrunch — бесплатный, быстрый и высокоточный алгебраический калькулятор.

    • Бесплатная
    • Windows
    • Mac OS

    SpeedCrunch — это бесплатный, быстрый и высокоточный алгебраический калькулятор, находящийся в свободном доступе, с интуитивно понятным интерфейсом и широким списком функций, в том числе:

  • 58

  • fxSolver

    Программа для решения математических задач онлайн, уравнений и построения графиков.

    • Бесплатная
    • Онлайн сервис

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

  • 37

  • Calculator

    Калькулятор предоставляет простые и сложные математические функции в красиво оформленном приложении.

    • Бесплатная
    • Android
    • Онлайн сервис

    Калькулятор предоставляет простые и сложные математические функции в красиво оформленном приложении.

  • 19

  • Soulver

    Умный блокнот со встроенным калькулятором.

    • Платная
    • iPhone
    • Mac OS

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

  • 9

  • Grapher

    С Grapher вы можете составить график уравнений и наборов данных и визуализировать результаты на вашем Mac в реальном времени.

    • Бесплатная
    • Mac OS

    С Grapher вы можете составлять графики уравнений и наборов данных и визуализировать результаты на своем Mac в режиме реального времени. Grapher отображает алгебраические отношения, как явные, так и неявные, в 2D и 3D. Вы можете использовать различные системы координат и выбирать из широкого спектра математических функций, включая дифференциальные уравнения, параметрические кривые и многое другое. Когда вы закончите, вы можете экспортировать свою графику в виде анимации, которую можно воспроизвести в QuickTime Player.

Математика: Mathematica и Wolfram|Alpha Pro | Математика

  • Доступ для преподавателей и сотрудников
  • Доступ для студентов
  • Учебники
  • Обучение с помощью Mathematica
  • Исследования с Mathematica

Получите доступ к Mathematica Desktop, Mathematica Online и Wolfram|Alpha Pro.

Mathematica в настоящее время установлена ​​в следующих местах:

  • Компьютерные классы
    Все общие или общедоступные лаборатории. Во многих ведомственных лабораториях также установлена ​​система Mathematica.
  • Компьютерные кластеры
    Лицензия Mathematica Колледжа Олоне может использоваться для распределенных вычислений. Если вы заинтересованы в использовании Mathematica для параллельных вычислений в выделенном кластере или в распределенной сетевой среде, сообщите об этом Полу Фишу из Wolfram Research.

Чтобы запросить Mathematica Desktop, Mathematica Online и Wolfram|Alpha Pro, следуйте приведенным ниже инструкциям.

  • Преподаватели и сотрудники
    1. Создать учетную запись (только для новых пользователей) :
      1. Перейдите на user.wolfram.com и нажмите «Создать учетную запись»
      2. Заполните форму, используя адрес электронной почты @ohlone. edu , и нажмите «Создать Wolfram ID»
      3. Проверьте свою электронную почту и нажмите на ссылку, чтобы подтвердить свой идентификатор Wolfram ID
    2. Запросить доступ к продукту:
      • Mathematica Desktop
        • Для школьных машин:
          1. Заполните эту форму, чтобы запросить ключ активации
          2. Щелкните ссылку «Страница сводки по продукту», чтобы получить доступ к лицензии
          3. Нажмите «Получить загрузки» и выберите «Загрузить» рядом с вашей платформой
          4. Запустите программу установки на своем компьютере и введите ключ активации в ответ на запрос
          5. .
        • Для личной машины:
          1. Заполните эту форму, чтобы запросить у Wolfram лицензию для домашнего использования.
      • Mathematica Online
        1. Заполните эту форму, чтобы запросить доступ
        2. Перейдите в Mathematica Online и войдите в систему, чтобы получить доступ к Mathematica Online
      • Вольфрам|Альфа Про
        1. Заполните эту форму, чтобы запросить доступ
        2. Перейдите в Wolfram|Alpha и нажмите «Войти», чтобы получить доступ к Wolfram|Alpha Pro
  • Студенты
    1. Создать учетную запись (только для новых пользователей) :
      1. Перейдите на user. wolfram.com и нажмите «Создать учетную запись»
      2. Заполните форму, указав свой адрес электронной почты, и нажмите «Создать Wolfram ID»
      3. Проверьте свою электронную почту и нажмите на ссылку, чтобы подтвердить свой идентификатор Wolfram ID
    2. Запросить доступ к продукту:
      • Mathematica Desktop
        • Для личной машины:
          1. Заполните эту форму, чтобы запросить ключ активации
          2. Щелкните ссылку «Страница сводки по продукту», чтобы получить доступ к лицензии
          3. Нажмите «Получить загрузки» и выберите «Загрузить» рядом с вашей платформой
          4. Запустите программу установки на своем компьютере и введите ключ активации в ответ на запрос
          5. .
      • Mathematica Online
        1. Заполните эту форму, чтобы запросить доступ
        2. Перейдите в Mathematica Online и войдите в систему, чтобы получить доступ к Mathematica Online
      • Вольфрам|Альфа Про
        1. Заполните эту форму, чтобы запросить доступ
        2. Перейдите в Wolfram|Alpha и нажмите «Войти», чтобы получить доступ к Wolfram|Alpha Pro 9. 0004

Учебные пособия

Mathematica

Первые три учебных пособия отлично подходят для новых пользователей и могут быть назначены учащимся в качестве домашнего задания для изучения Mathematica во внеурочное время.

  • Практическое знакомство с Mathematica (видео)
    Продолжайте изучать Mathematica, наблюдая за этим состоящим из нескольких частей скринкастом, который научит вас основам: как создать свой первый блокнот, расчеты, визуализации, интерактивные примеры и многое другое. .
  • Практическое руководство по Wolfram Mathematica и программированию на языке Wolfram Language (книга)
    Изучайте Mathematica в удобном для вас темпе от авторов с более чем 50-летним опытом работы с Mathematica — с практическими примерами, упражнениями в конце главы , а также советы авторов, которые знакомят вас с широкими возможностями Mathematica с упором на простоту использования.
  • Краткое введение в Mathematica и язык Wolfram Language для студентов, изучающих математику (онлайн-книга)
    Используйте это учебное пособие, чтобы узнать о решении математических задач в языке Wolfram Language — от основ арифметики до интегрального исчисления и не только.
  • Что нового в Mathematica 11
    Содержит список новых функций в Mathematica 11, а также ссылки на документацию и примеры этих новых функций, включая 3D-печать, обработку звука, машинное обучение и нейронные сети, а также обработку текста и языка.
  • How To Topics
    Доступ к пошаговым инструкциям, начиная от создания анимации и заканчивая базовой информацией о синтаксисе.
  • Ресурсы Mathematica
    Просмотрите большую коллекцию учебных материалов и вспомогательных ресурсов Wolfram.

Mathematica Online

  • Практическое руководство по началу работы с Mathematica Online (видео)
    В этой серии видеороликов представлены пошаговые инструкции по началу работы с Mathematica Online — от создания первой записной книжки с текстом и расчетами. , визуализации и интерактивные примеры, чтобы поделиться своей записной книжкой с другими для совместной работы и просмотра через Wolfram Cloud.

Wolfram|Alpha Pro

  • Знакомство с Wolfram|Alpha
    Впервые в Wolfram|Alpha? Совершите экскурсию, чтобы узнать, что вы можете делать с Wolfram|Alpha, и изучить дополнительные функции, которые вы получаете с Wolfram|Alpha Pro.

Преподавание с помощью Mathematica

Mathematica предлагает интерактивный учебный процесс, который помогает учащимся изучать и понимать концепции, а также предоставляет преподавателям инструменты, необходимые для простого создания вспомогательных учебных материалов, заданий и презентаций.

Ресурсы для преподавателей

  • Бесплатный видеокурс по системе Mathematica для преподавания и образования
    Узнайте, как сделать свой класс динамичным с помощью интерактивных моделей, изучите возможности вычислений и визуализации в системе Mathematica, которые делают ее полезной для преподавания практически любого предмета в любое время уровень и получить рекомендации по интеграции курса.
  • Как создать лекционный слайд-шоу-видеоруководство
    Узнайте, как создать слайд-шоу для класса, которое показывает смесь графики, вычислений и красиво отформатированного текста с живыми вычислениями или анимацией.
  • Демонстрационный проект Wolfram
    Загрузите готовые примеры с открытым кодом из ежедневно растущей коллекции интерактивных визуализаций, охватывающих широкий спектр тем.
  • Образовательные курсы Wolfram Training
    Доступ к онлайн-курсам и онлайн-курсам по Mathematica, SystemModeler и другим технологиям Wolfram.

Исследование с помощью Mathematica

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

Ресурсы для исследователей

  • Mathematica для университетов Бесплатный видеокурс
    Изучите высокоуровневый и мультипарадигменный язык программирования Mathematica, поддержку параллельных вычислений и архитектур графических процессоров, встроенные функции для специализированных областей применения и несколько вариантов публикации и развертывания для совместного использования вашей работы.
  • Курсы обучения языку Wolfram — бесплатные видеокурсы
    Узнайте о возможностях языка Wolfram Language, включая основы и концепции программирования, встроенные функции, символьные выражения и советы по улучшению и ускорению кодирования.
  • Utilizing HPC and Grid Computing Бесплатный видеокурс
    Узнайте, как создавать программы, использующие преимущества многоядерных компьютеров или доступных кластеров.
  • Приложения для конкретных областей
    Узнайте, какие области Mathematica полезны для конкретных областей.

Получите ответы на свои вопросы за считанные минуты с помощью R и Wolfram Alpha | Илья Эйдлин

Логотип Tidyverse с сайта www.tidyverse.org, логотип Wolfram с сайта https://www.wolfram.com/

1. «Быстрые» задачи

Недавно в одной из социальных сетей у меня были дебаты о самом плодовитом возрасте для автора. Здесь, в России, у нас есть два наших самых обожаемых поэта, Александр Пушкин и Михаил Лермонтов, убитые на дуэли в возрасте 30 и 20 лет соответственно. С другой стороны, известный русский писатель Лев Толстой закончил «Воскресение» в свои 70 лет.

Этот вид спора, бессмысленный, но приятный, имеет три основных
особенности:

  1. В Интернете имеется лишь ограниченная информация по проблеме
  2. Вам нужен хотя бы приблизительный ответ быстро, чтобы выиграть интернет-войну
  3. Вопрос хотя бы частично статистический, что означает, что вам нужно получить некоторые данные, чтобы ответить
Типичный ответ квора с ограниченными доказательствами. Скриншот с https://www.quora.com/

Оказалось, что примерный ответ можно найти сразу, воспользовавшись славной Wolfram Alpha.

2. Получение данных

Для начала анализа нам необходимо иметь произвольный список книг. Google порекомендовал мне «100 книг века по версии Le Monde»

100 книг века по версии Le Monde — Википедия

100 книг века (французский: Lescent livres du siècle) — это список ста самых запоминающихся книг…

en.wikipedia.org

Я собираюсь очистить список с помощью R, но, конечно, могу использовать язык по вашему выбору. Если вы используете R и по какой-то причине у вас нет tidyverse, установите его, используя приведенный ниже код. Кроме того, вы можете использовать RColorBrewer. Это упрощает выбор цветов для ваших диаграмм.

 insatll.packages("tidyverse") 
# RColorBrewer не является обязательным. Это просто помогает выбрать цвета для
# ваших диаграмм
insatll.packages("RColorBrewer")

Вы можете загрузить tidyverse в свою среду с помощью библиотеки (tydiverse), но я представлю ее части, которые мы на самом деле собираемся использовать:

 # для очистки веб-страниц и работы с xml 
библиотека (rvest)
# для аккуратной магии
библиотека (dplyr)
библиотека (tyr)
# аккуратная магия для строк и множителей
library(stringr)
library(forcats)
# результаты построения графика
library(ggplot2)
library(RColorBrewer)

Чтобы получить вики-таблицу, мы можем сделать следующее:

 url <- 'https://en. wikipedia .org/wiki/Le_Monde%27s_100_Books_of_the_Century' 
# список книг - это первая таблица, которая появляется на странице
table_number <- 1wiki_df <- read_html(url) %>%
# выбирать только таблицы
html_nodes(css = "table ") %>%
# оставить только первую таблицу со страницы
.[[table_number]] %>%
# преобразование в data.frame
html_table()head(wiki_df)

Хорошо, dataframe содержит всего четыре строки кода. Есть только небольшая проблема со столбцом «Год». Приведем все годы к последнему году публикации:

 wiki_df <- wiki_df %>% 
mutate(YearFinal = as.integer(case_when(
nchar(Year) > 7 ~ str_sub(Year, -4, -1), # 1899-1901 => 1901
nchar(Год) > 4 ~ paste0(str_sub(Год, 1, 2), # 1901-03 => 1903
str_sub(Год, -2, -1)),
ИСТИНА ~ Год)) # 1901 => 1901

Вот и все. Наши данные готовы, и мы собираемся поиграть с Wolfram Alpha.

3. Почему Wolfram Alpha?

С помощью Wolfram Alpha можно задавать вопросы на естественном языке и получать ответы в определенном структурном формате. Давайте сначала рассмотрим это через пользовательский интерфейс:

Wolfram|Alpha: Делаем мировые знания вычислимыми

Ого! Wolfram|Alpha не работает без JavaScript. Пожалуйста, включите JavaScript. Если не знаешь как, то можно найти…

www.wolframalpha.com

Немного информации о Льве Толстом. Скриншот с https://www.wolframalpha.com/

Ответом является таблица во втором разделе (ниже «Интерпретация ввода»).

Мы можем попробовать что-то другое:

Скриншот с https://www.wolframalpha.com/Скриншот с https://www.wolframalpha.com/

Единообразие ответов по формату дает нам возможность писать повторно используемый код. Также можно использовать Wolfram API. Аккаунт бесплатного уровня позволяет отправлять до 2000 запросов в месяц. Чтобы получить Wolfram ID, следуйте инструкциям на сайте Wolfram.

Wolfram ID — учетная запись Wolfram

Управляйте и обновляйте свои данные и настройки Wolfram ID.

account.wolfram. com

Давайте попробуем. Я попрошу информацию о Толстом через API:

 # Просто пример. Не иметь учетных данных в коде в виде текста 
app_id <- "your_wolfram_id"
# Изменяющиеся и сохраняемые части вопроса
изменяющиеся <- "Лев Толстой"
сохраняемые <- "год рождения и пол"
# Получение результатов раздел часть
# создать ссылку
wa_url <- paste0("http://api.wolframalpha.com/v2/query?input=",
URLencode(paste(variable, conserved)),
"&appid=", app_id)
# прочитать ответ в формате xml
wa_cont <- xml2::read_xml(wa_url)
# найти узлы открытого текста,
# оставить только вторые разделы (где хранятся результаты)
wa_data <- xml2::xml_find_all(wa_cont, xpath = './ /plaintext')[[2]] %>%
# извлечь текст
xml2::xml_text() %>%
# Начало части Data Wranglin
# разделить по строке
str_split(pattern = "\n", упростить = TRUE) %>%
# транспонировать вектор в истинный
t() %>%
# сформировать табличку
as_tibble() %>%
# вызов единственный столбец 'результат'
setNames("результат") %>%
# разделяется символом ' | ' (по столбцам) с использованием регулярного выражения
, отдельный(результат,
c("переменная", "значение"),
"\\s\\|\\s\\b") %>%
pivot_wider(names_from = variable)

Распечатать результаты:

 print(wa_data)# Таблица: 1 × 2 
пол `год рождения`

1 мужской 1828

Спорная часть может немного сбивать с толку. Для тех, кто хочет разбить его построчно, есть хороший инструмент https://tidydatatutor.com/vis.html

. Он поможет вам визуализировать, что аккуратные глаголы на самом деле делают с данными.

Тем не менее, нам удалось получить структурированную информацию, задав произвольный вопрос на естественном языке.

4. Собираемся вместе

На данный момент у нас есть список книг и код, который дает ответы на вопросы. Давайте немного улучшим наш код, связанный с wolfram, завернув его в tryCatch, чтобы возвращать NA, если что-то пошло не так, и преобразуем его в векторизованную функцию.

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

 WolframSearch <- function(variing, conserved, app_id) { 
# в случае ошибки или предупреждения вернуть нет данных
tryCatch( {
wa_url <- paste0("http://api.wolframalpha.com/v2/query?input=",
URLencode(paste(variable, conserved)),
"&appid=", app_id)
wa_cont <- xml2::read_xml(wa_url)
wa_data <- xml2::xml_find_all(wa_cont, xpath = '. //plaintext')[[2]] %>%
xml2::xml_text() %>%
str_split( шаблон = "\n", упростить = ИСТИНА) %>%
t() %>%
as_tibble() %>%
setNames("результат") %>%
отдельный(результат,
c("переменная", "значение"),
"\\s\\|\\s\\b") %>%
pivot_wider(names_from = variable) },

# вернуть NA в случае ошибки или предупреждения
warning = function(w) {return(NA) },
error = function(e) {return(NA)})
}#Векторизовать функцию WolframSearch, чтобы использовать ее в каналах.
WolframSearch_v <- Vectorize(WolframSearch)

И теперь мы можем запросить информацию о каждом авторе из вики-списка

 Combined_df <- wiki_df %>% 
# Создать столбец 'data' с результатами из Wolfram
mutate(data = WolframSearch_v(Author, conserved, app_id)) %>%
# удалить столбец данных
unnest(data) %>%
# удалить нет, если существует
filter(!is.na(`год рождения`) ) %>%
# рассчитать возраст писателя в год публикации "вычесть 0,5, чтобы скорректировать среднее значение для случая, когда, например, у
авторов день рождения приходится на январь, а книга вышла в мае. " mutate(Age = YearFinal - as.integer(`год рождения`) - 0.5) %>%
select("Название", "Автор", "Язык", "Пол"="пол", "Возраст")

Сводка:

 > сводка(combined_df$Age) 
Мин. 1 кв. Медиана Среднее 3-е кв. Макс.
17.50 32.50 40.50 41.62 47.50 75.50

Получается, что известные книги обычно пишутся в конце 30-х — начале 40-х годов. Забавный факт, что он довольно хорошо согласуется с ответом кворы выше, где средний возраст составил 36,2 только из пяти случайно выбранных книг.

5. Построение графиков

Диаграммы — лучший способ сообщить о результатах. Поскольку мы хотим сообщить их за считанные минуты, как сказано в заголовке, давайте, следуя правилу 80/20, создадим относительно простую, но красивую гистограмму ggplot2 9.0015

 ggplot(combined_df, aes(x = Age)) + 
geom_histogram(aes(y = ..count..), color="darkblue", fill="lightblue", binwidth = 5) +
geom_density(aes( y= ..density.. * nrow(result) * 5), alpha = 0.1, color="darkblue", fill="lightblue") +
theme_classic() +
labs(x = "Возраст", y = " Количество книг",
fill = NULL)

В качестве бонуса давайте рассмотрим, как выборы Le Mondo распределяются по полу и языку автора.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *