Маленький кусочек кода на 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"
}
}
]
} Для этого нужно просто послать подготовленный запрос. Сервис бесплатен. Что делать с полученными данными решать вам, возможно пригодится при обработка, маркировке и разборе текста.
Сделал для себя маленькую функцию положил в копилку.

