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