-
Notifications
You must be signed in to change notification settings - Fork 4
Сущности
Сущностями называются данные определенного типа, которые можно выделить в текстовом запросе.
Каждая сущность - это JSON объект со следующими полями:
- type - тип сущности (например, Number, Date, Time, City или Text)
- substring - подстрока в исходной строке, соответствующая сущности
- value - данные, выделенные из сущности (формат специфичен для каждого конкретного типа)
- formatted - опционально - форматированное представление данных (например, "01.10.2014" для даты)
На данный момент Speech Markup поддерживает несколько типов сущностей, но этот список будет постоянно пополняться. Также вскоре будет предоставлена возможность создавать свои собственные типы и логику их преобразования в данные.
Самый простой тип - обычная строка. Если система не обнаруживает никакого другого типа, то подстрока помечается как тип Text. Значение поля value в этом случае совпадает с самой подстрокой.
Дата (абсолютная или относительная, дни недели). Поле formatted будет содержать дату, сформатированную по шаблону "dd.MM.yyyy". Поле value - это объект со следующими полями:
- day - день (1-31)
- month - месяц (0-11)
- year - год
Для корректного преобразования дат необходимо наличие параметров timestamp и offset в REST запросе.
Время (абсолютное и относительное). Поле formatted будет содержать время, сформатированное по шаблону "HH:mm:ss". Поле value - это объект со следующими полями:
- hour - часы (0-23)
- minute - минуты (0-59)
- second - секунды (0-59)
- part - опционально - AM или PM, если задано явно в тексте или можно вычислить (например, если текст "в 5 часов", то поле не будет присутствовать, т.к. невозможно однозначно определить, в 5 утра или в 5 вечера)
Для корректного преобразования времени необходимо наличие параметров timestamp и offset в REST запросе.
Числа (могут быть указаны и в виде цифр, и словами). В поле value будет цифровое представление.
Название города (используется база Geonames). Т.к. названия городов не уникальны, то поле value содержит массив объектов, в каждом из которых следующие поля:
- name - стандартное название города (город "Питер" будет преобразован в "Санкт-Петербург")
- lat - широта
- lon - долгота
- population - численность населения
- countryCode - код страны (например, "RU")
- timezone - часовой пояс (например, "Asia/Novosibirsk")
- id - уникальный идентификатор города в базе Geonames
ФИО человека. Будет приведено к стандартному виду в поле formatted. В запросе может присутствовать либо полное имя, либо только имя с фамилией, либо только имя, или фамилия, или отчество. В поле value будет объект со следующими полями:
- firstName - имя
- surName - фамилия
- patrName - отчество