Рубрики
Без рубрики

Машинное обучение для мобильных поэтов – познакомьтесь с приложением Emily

Узнайте, как создать мобильное приложение, которое может улучшить вашу оценку старой литературы, используя современные текстовые и когнитивные услуги. Tagged с JavaScript, Vue, Mobile, MachineLearning.

Помните еще раз в старшей школе, когда ваш учитель английского попытался грабить вашу память о важности оценки поэзии 19-го века? Или Как насчет колледжа, когда вам было рекомендовано запомнить пролог сказки Кентербери, чтобы вы могли оживить коктейльную вечеринку?

Это на самом деле произошло для меня, и это никогда не перестает развлекать – спасибо, профессор Линч!

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

Почему мобильное приложение? Поэзия – отличная среда для потребления на мобильном устройстве. Часто компактные, эти литературные драгоценные камни могут поместиться на небольшом экране. Вы также можете использовать возможности аппаратного обеспечения мобильного устройства, чтобы улучшить свой опыт, например, снять селфи или использование акселерометра. Также мне нравится создавать мобильные приложения.

Эмили Дикинсон была поэтом, активным в середине 19 -го века в Амхерсте, Западный Массачусетс, на восточном побережье США. Она была хорошо известна даже в своей жизни как эксцентричный отшельник, иногда разговаривая только с посетителями через закрытые двери. Она была известна не столько своей поэзией в течение своей жизни (многое было опубликовано посмертно), а скорее за ее садоводство.

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

  • Из простого случайного запроса откройте для себя стихотворение дня из неясной коллекции.
  • Используйте слайдер, чтобы отразить настроение пользователя, отображает стихотворение, эмоции которого коррелирует с настроением
  • Сделайте селфи и покажите корреляцию счастливого, грустного, нейтрального или тревожного стихотворения
  • И, наконец, показ поэзии, созданная повторяющейся нейронной сетью, основанной на литературной работе Дикинсона, чтобы увидеть, можно ли подражать ее счетчику и стиль. Следите за обновлениями, чтобы объяснить это в отдельной статье.

Создание приложения Эмили позволило мне исследовать и разобрать предвзятые представления о поэзии Дикинсона, которые остались в школе, Идеи исправит ее рифму, счетчик, настроение и темы, которые она коснулась в своей поэзии.

Сборка мобильного приложения

Моим вариантом выбора JavaScript является Vue.js, и отличный способ создать собственное мобильное приложение с помощью Vue – Nativescript-Vue Анкет Сообщество (спасибо, Игорь!) Это поддерживается Прогресс S Open Source Project, NativeScript Анкет Установите NativeScript на локальную машину, следуя этим инструкции и используйте его из командной строки:

tns create my-new-app

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

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

//components/Home.vue





Home.vue Однопрочный компонент является сердцем этого приложения; Каждая страница загружается в этот изготовленный макет вкладки для отображения. Предполагая, что Xcode и/или Android Studio установлены на вашей локальной машине, вы также можете эмулировать приложение по мере его создания; Замена горячего модуля доступна для вас и ускоряет процесс:

tns run ios/android

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

Данные Дикинсона

Первый вопрос столкнулся при создании приложения, основанного на литературе или искусстве, всегда – это то, где можно найти данные. К счастью, база данных стихов существует с более чем 300 стихами Эмили Дикинсон (из 1800 года; она была плодовитым писателем). Экспортируя их в формате JSON, вы можете построить стихотворение экрана для своего мобильного приложения. На первом экране я отображаю случайно выбранную стихотворение из набора данных, который я экспортировал из Poethrydb.org Анкет

//components/DailyPoem.vue


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

//store/index.js - this is my Vuex store

getPoem({ commit }) {
   let randomPoem = Math.floor(Math.random() * 300);
   let poemObject = poetry[randomPoem];
   let parsedPoem = JSON.stringify(poemObject.text);
   let selectedPoem = parsedPoem.split(',').join('\n');
        commit('displayPoem', selectedPoem);
}

В блоке шаблонов Dailypoem.vue я использую наценку в стиле XML Natainscript, чтобы показать стихотворение:


Это самый простой вариант использования для демонстрации случайного стихотворения на экране. Результат выглядит так:

Мера настроения

Поэзия Эмили Дикинсон, кажется, наиболее известна тем, что грустная; Если вы спросите студента о словах, которые вызывают ее стихи, вы можете услышать «темный» или «мрачный». Но была ли работа Эмили повсеместно грустной? Рискованно пытаться оценить психическое здоровье людей, давно прошедших свою жизнь исключительно через их литературное производство, но было предположительно, что Эмили могла страдать от Сезонное аффективное расстройство , учитывая широкий размер настроения, который вызывает ее поэзия в зависимости от того, была ли она написана зимой или летом.

Чтобы помочь ответить на вопрос о том, является ли работа Эмили преимущественно грустной или счастливой, я использовал быстрый проект по производству текста, который я создал в ноутбуках Azure. Вы можете расколоть этот проект и добывать свои собственные тексты для наиболее часто используемых слов; Если я запускаю его в одной из свободных колабов Azure, я обнаружил, что наиболее распространенным словом является:

(Вы можете это догадаться?)

НРАВИТСЯ

Я считаю, что это потому, что Эмили такого часто использует сравнение; Душа похожа на цветок, сердце похоже на солнце …

Дальнейший анализ показывает, что она использует слово «жизнь» чаще, чем «смерть», и «день» чаще, чем «ночь». Она сильно опирается на природные образы: «Лето», «День», «Солнце», «Природа», «Время», «Море», «Цветок», «Роза». Небольшой машинный текстовый привязый помогает разорвать предпосылки о намерении поэта и общем настроении.

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

Для этого я построил слайдер – скользит прямо для счастливых стихов, скользите налево для грустных стихов. Но как можно сказать, какие из стихов Эмили счастливы, а какие грустны?

Microsoft Cognitive Services Анализ текстовых настроений на помощь!

Текст может многое рассказать о настроении пользователя. Предназначенный для таких вещей, как анализ отзывов пользователей и обзоров ресторанов, также можно использовать услугу – как я обнаружил – чтобы получить меру настроения данного стихотворения. Используя поэзию, которую я экспортировал с PoetryDB.com, я пропустил несколько стихов через сервис и сохранил оценку настроения в объекте JSON, где я хранил выбор стихов, используемых в приложении.

Затем я создал слайдер для пользователя, чтобы манипулировать:

//components/MoodSlider.vue


По мере движения ползунка, значение, с которым он связан, также меняется, как и цвет окружающей карты:

//components/MoodSlider.vue

onValueChanged(e) {
      this.showCard = true;
      this.clearMoodPoem();
      this.value = e.toFixed(2);
      if (this.value < 0.5) {
        this.moodClass = "inner-card blue";
      } else {
        this.moodClass = "inner-card rose";
      }
    },

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

Загадочное лицо

Для дальнейшей персонализации проекта, что, если кто -то сможет сделать селфи, проанализировать настроение лица и получить стихотворение с вашим настроением, как изображено выражением лица? Еще раз, обращаясь к Microsoft Cognitive Services, у нас есть хорошее решение. Вместо того, чтобы полагаться на предварительно обработанные данные, на этот раз мы отправим вызов API в Azure и вернем информацию о настроении лица. Чтобы попробовать этот API, загрузите фото Здесь Анкет

Чтобы получить эту работу, вам нужна настройка когнитивной службы и ключ для доступа к предоставленной конечной точке.

Пользователь сделает селфи:

//components/MyMood.vue

async runFaceDetect() {
      this.clearSelfiePoem();
      this.complete = false;
      const imageAsset = await takePicture({
        width: 300,
        height: 500,
        keepAspectRatio: true,
        saveToGallery: false,
        cameraFacing: "front"
      });
      //process the asset
      const filePath = await this.getFilePath(imageAsset);
      const imageFile = File.fromPath(filePath);
      this.selfie = imageAsset;
      //send it to Azure
      this.result = await this.sendRequest(imageFile);
    },

и тогда файл изображения будет отправлен в когнитивные службы, где API Face API запрашивается для эмоция Атрибут лица:

//components/MyMood.vue

sendRequest(file) {
      return new Promise((resolve, reject) => {
        const ses = session("image-upload");

        const request = {
          url:
            "https://emilyemotions.cognitiveservices.azure.com/face/v1.0/detect?returnFaceLandmarks=false&returnFaceAttributes=emotion",
          method: "POST",
          headers: {
            "Content-Type": "application/octet-stream",
            "Ocp-Apim-Subscription-Key": "provided-key"
          },
          description: "Uploading " + file.name
        };

        ...
      });
    }

API Face возвращает множество настроений, и вы можете сопоставить высшее возвращаемое значение с чувствами, уже сохраненными в наборе данных .JSON Prore. Узнайте больше об использовании API лица Здесь Анкет

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

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

Узнайте больше о: 🤳 Лицо APIТекстовая аналитика 👩🏻 Эмили Дикинсон

Оригинал: “https://dev.to/azure/machine-learning-for-mobile-poets-meet-the-emily-app-2jje”