Поделиться через


Предварительно созданная сущность datetimeV2 для приложения LUIS

Внимание

LUIS будет прекращена 1 октября 2025 г. и с 1 апреля 2023 г. вы не сможете создать новые ресурсы LUIS. Мы рекомендуем перенести приложения LUIS в понимание общения, чтобы воспользоваться продолжением поддержки продуктов и многоязычными возможностями.

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

Типы сущностей datetimeV2

Управление сущностью datetimeV2 выполняется из репозитория GitHub Recognizers-text.

Пример JSON

Ниже показан речевой фрагмент и его частичный ответ в формате JSON.

8am on may 2nd 2019

"entities": {
    "datetimeV2": [
        {
            "type": "datetime",
            "values": [
                {
                    "timex": "2019-05-02T08",
                    "resolution": [
                        {
                            "value": "2019-05-02 08:00:00"
                        }
                    ]
                }
            ]
        }
    ]
}

Подтипы сущности datetimeV2

Предварительно созданная сущность datetimeV2 имеет следующие подтипы (примеры каждого из них приведены в таблице ниже):

  • date
  • time
  • daterange
  • timerange
  • datetimerange

Значения разрешения

  • Массив содержит один элемент, если дата или время во фразе полностью указаны и однозначны.
  • Массив содержит два элемента, если значение datetimeV2 неоднозначное. Неоднозначность означает отсутствие года, времени и диапазона времени. Примеры см. в разделе Неоднозначные даты. Если время указано неоднозначно (не понятно, до или после полудня), включаются оба значения.
  • Массив содержит четыре элемента, если фраза содержит два неоднозначных элемента. Эта неоднозначность включает элементы, имеющие следующие элементы:
    • в дате или диапазоне дат указан неоднозначно год;
    • неоднозначно указано время или диапазон времени (не понятно, до или после полудня). Например 3 апреля 3:00.

Ниже приведены поля, которые может иметь каждый элемент массива values.

Имя свойства Описание свойства
timex Время, дата или диапазон дат, выраженные в формате TIMEX, который соответствует стандарту ISO 8601, и в атрибутах TIMEX3 заметки с помощью языка TimeML.
mod термин, описывающий использование значения, например, before, after.
type Подтипом может быть один из следующих элементов: datetime, date, time, daterange, timerange, datetimerange, duration, set.
значение Необязательно. Объект datetime в формате гггг-мм-дд (дата), чч:мм:сс (время), гггг-мм-дд чч:мм:сс (дата и время). В противном type durationслучае значение — это количество секунд (длительность)
Используется, только если свойство type имеет значение datetime или date, time или `duration.

Допустимые значения даты

Сущность datetimeV2 поддерживает даты в следующих диапазонах:

Min Max
1 января 1900 г. 31 декабря 2099 г.

Неоднозначные даты

Если дата может быть в прошлом или будущем, LUIS предоставляет оба значения. В качестве примера можно привести фразу с датой и месяцем без года.

Например, для следующего речевого фрагмента:

May 2nd

  • Если сегодня 3 мая 2017 года, LUIS возвращает два значения: 2017-05-02 и 2018-05-02.
  • Если сегодня 1 мая 2017 года, LUIS возвращает два значения: 2016-05-02 и 2017-05-02.

В следующем примере показано разрешение сущности "may 2nd". Это разрешение предполагает, что сегодняшняя дата — это дата между 2 мая 2017 г. и 1 мая 2018 г. Поля с X в поле timex — это части даты, которые явно не указаны во фразе.

Пример разрешения даты

Ниже показан речевой фрагмент и его частичный ответ в формате JSON.

May 2nd

"entities": {
    "datetimeV2": [
        {
            "type": "date",
            "values": [
                {
                    "timex": "XXXX-05-02",
                    "resolution": [
                        {
                            "value": "2019-05-02"
                        },
                        {
                            "value": "2020-05-02"
                        }
                    ]
                }
            ]
        }
    ]
}

Примеры разрешения диапазона числовых дат

Сущность datetimeV2 извлекает диапазоны дат и времени. Поля start и end определяют начало и конец диапазона. Если имеется фраза May 2nd to May 5th, LUIS выводит значения daterange за текущий и будущий год. В поле timex значения XXXX указывают неоднозначность года. Значение P3D указывает на трехдневный период времени.

Ниже показан речевой фрагмент и его частичный ответ в формате JSON.

May 2nd to May 5th


"entities": {
    "datetimeV2": [
        {
            "type": "daterange",
            "values": [
                {
                    "timex": "(XXXX-05-02,XXXX-05-05,P3D)",
                    "resolution": [
                        {
                            "start": "2019-05-02",
                            "end": "2019-05-05"
                        },
                        {
                            "start": "2020-05-02",
                            "end": "2020-05-05"
                        }
                    ]
                }
            ]
        }
    ]
}

Примеры разрешения диапазона дат для дня недели

В следующем примере показано, как с помощью сущности datetimeV2 LUIS обрабатывает фразу Tuesday to Thursday. В этом примере ниже текущей датой является 19 июня. LUIS включает значения daterange обоих диапазонов дат перед и после текущей даты.

Ниже показан речевой фрагмент и его частичный ответ в формате JSON.

Tuesday to Thursday

"entities": {
    "datetimeV2": [
        {
            "type": "daterange",
            "values": [
                {
                    "timex": "(XXXX-WXX-2,XXXX-WXX-4,P2D)",
                    "resolution": [
                        {
                            "start": "2019-10-08",
                            "end": "2019-10-10"
                        },
                        {
                            "start": "2019-10-15",
                            "end": "2019-10-17"
                        }
                    ]
                }
            ]
        }
    ]
}

Неоднозначное время

Массив значений имеет два элемента времени, если время или диапазон времени неоднозначны. Если время указано неоднозначно, возвращаются оба значения: до и после полудня.

Пример разрешения диапазона времени

В API версии 3 изменен ответ DatetimeV2 JSON. В следующем примере показано, как с помощью сущности datetimeV2 LUIS обрабатывает фразу с диапазон времени.

Изменения в API версии 2:

  • свойство datetimeV2.timex.type больше не возвращается, так как оно возвращается на родительском уровне datetimev2.type.
  • Свойство datetimeV2.value было переименовано на datetimeV2.timex.

Ниже показан речевой фрагмент и его частичный ответ в формате JSON.

from 6pm to 7pm

Следующий JSON имеет параметр verbose, установленный на false:


"entities": {
    "datetimeV2": [
        {
            "type": "timerange",
            "values": [
                {
                    "timex": "(T18,T19,PT1H)",
                    "resolution": [
                        {
                            "start": "18:00:00",
                            "end": "19:00:00"
                        }
                    ]
                }
            ]
        }
    ]
}

Пример разрешения времени

Ниже показан речевой фрагмент и его частичный ответ в формате JSON.

8am

"entities": {
    "datetimeV2": [
        {
            "type": "time",
            "values": [
                {
                    "timex": "T08",
                    "resolution": [
                        {
                            "value": "08:00:00"
                        }
                    ]
                }
            ]
        }
    ]
}

Устаревшая предварительно созданная сущность datetime

Устаревшая предварительно созданная сущность datetime заменяется сущностью datetimeV2.

Чтобы заменить сущность datetime на datetimeV2 в приложении LUIS, сделайте следующее:

  1. Откройте область Сущности веб-интерфейса LUIS.
  2. Удалите предварительно созданную сущность datetime.
  3. Выбор предварительно созданной сущности
  4. Выберите datetimeV2 и нажмите кнопку Сохранить.

Следующие шаги

Узнайте больше о сущностях dimension, email и number.