PHP: автоматическая обработка и маркировка текста

Маленький кусочек кода на PHP по использованию сервиса dusi. mobi. Сервис Speach MakeUp позволяет находить главную мысль тексте, он выделяет из текста следующие сущности:

  • дата (сегодня, завтра, через неделю…)
  • время (12 часов, через тридцать минут…)
  • место (город)
  • текст (все что не удалось распознать как сущности)

Пример: Вы пишите в строке «Завтра встреча в Москве в 12 часов на Красной площади», в результате получаете ответ в формате JSON в котором будут выделены:

  • слово Завтра (дата — к сегодняшней дате +1 в формате день-месяц-год)
  • встреча в (текст)
  • слово Москва (город с указанием широты и долготы )
  • в (текст)
  • 12 часов (время — 12:00)
  • на Красной площади (текст)

Собственно код:

<?php
// подключаю свою библиотеку
include __DIR__ . '/config/function.php';

itemDusi('через неделю питер  через 30 минут');

function itemDusi($text)
{
  $text = urlencode ($text); // https://php.net/manual/ru/function.urlencode.php
  $url = 'https://markup.dusi.mobi/api/text?lang=ru&text=' . $text;
  p(file_get_contents($url));
}

В 9 строке использую стандартную функцию urlencode преобразующую киррилицу с пробелами в нормальный вид для запроса

Какой получаю ответ:

{
  "string": "через неделю питер через 30 минут",
  "tokens": [
    {
      "type": "Date",
      "substring": "через неделю",
      "formatted": "18.09.2016",
      "value": {
        "day": 18,
        "month": 8,
        "year": 2016
      }
    },
    {
      "type": "City",
      "substring": "питер",
      "value": [
        {
          "lat": 59.93863,
          "lon": 30.31413,
          "population": 5028000,
          "countryCode": "RU",
          "timezone": "Europe/Moscow",
          "id": "498817",
          "name": "Санкт-Петербург"
        }
      ]
    },
    {
      "type": "Time",
      "substring": "через 30 минут",
      "formatted": "09:27:57",
      "value": {
        "hour": 9,
        "minute": 27,
        "second": 57,
        "part": "AM"
      }
    }
  ]
}

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

Сделал для себя маленькую функцию положил в копилку.

Рейтинг
( Пока оценок нет )
Загрузка ...