Entidade DatetimeV2 predefinida para um aplicativo LUIS

Importante

O LUIS será desativado em 1º de outubro de 2025 e, a partir de 1º de abril de 2023, você não poderá criar novos recursos do LUIS. É recomendável migrar seus aplicativos LUIS para a compreensão da linguagem coloquial a fim de usufruir do suporte contínuo ao produto e dos recursos multilíngues.

A entidade predefinida datetimeV2 extrai os valores de data e hora. Esses valores são resolvidos em um formato padronizado para programas do cliente consumirem. Quando um enunciado tem uma data ou hora que não está concluído, o LUIS inclui valores passados e futuros na resposta do ponto de extremidade. Como essa entidade já está treinada, não é necessário adicionar enunciados contendo datetimeV2 às intenções do aplicativo.

Tipos de datetimeV2

DatetimeV2 é gerenciado por meio do repositório do GitHub Recognizers-text.

JSON de exemplo

O enunciado a seguir e a resposta JSON parcial dele são mostrados abaixo.

8am on may 2nd 2019

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

Subtipos de datetimeV2

A entidade predefinida datetimeV2 tem os seguintes subtipos, e exemplos de cada um são fornecidos na tabela a seguir:

  • date
  • time
  • daterange
  • timerange
  • datetimerange

Valores de resolução

  • A matriz terá um elemento se a data ou hora no enunciado for totalmente especificado e não ambígua.
  • A matriz terá dois elementos se o valor de datetimeV2 for ambíguo. Ambiguidade inclui falta de um ano, hora ou intervalo de tempo específico. Veja datas ambíguas para obter exemplos. Quando a hora é ambígua para A.M. ou P.M., ambos os valores são incluídos.
  • A matriz terá quatro elementos se o enunciado tiver dois elementos com ambiguidade. Essa ambiguidade inclui elementos que têm:
    • Uma data ou um intervalo de datas ambíguo quanto ao ano
    • Um intervalo de tempo ou hora ambígua como às A.M. ou P.M. Por exemplo, 3:00 a 3 de abril.

Cada elemento da matriz values pode ter os seguintes campos:

Nome da propriedade Descrição da propriedade
timex hora, data ou intervalo de datas expressado no formato TIMEX que segue o padrão ISO 8601 e os atributos TIMEX3 para anotação usando a linguagem TimeML.
mod termo usado para descrever como usar o valor, como before, after.
type O subtipo, que pode ser um destes itens: datetime, date, time, daterange, timerange, datetimerange, duration, set.
value Opcional. Um objeto datetime no formato yyyy-MM-dd (date), HH:mm:ss (time) yyyy-MM-dd-HH:mm:ss (datetime). Se type for duration, o valor é o número de segundos (duração)
Usado somente se type for datetime ou date, time ou `duration.

Valores de data válidos

O datetimeV2 é compatível com datas entre os seguintes intervalos:

Mín Max
1º de janeiro de 1900 31 de dezembro de 2099

Datas ambíguas

Se a data puder estar no passado ou no futuro, o LUIS fornecerá ambos os valores. Um exemplo é um enunciado que inclui o mês e o dia sem o ano.

Por exemplo, considerando o seguinte enunciado:

May 2nd

  • Se a data de hoje for 3 de maio de 2017, o LUIS fornecerá tanto "2017-05-02" quanto "2018-05-02" como valores.
  • Quando a data de hoje for 1º de maio de 2017, o LUIS fornecerá tanto "2016-05-02" quanto "2017-05-02" como valores.

O exemplo a seguir mostra a resolução da entidade "may 2nd". Essa resolução pressupõe que a data de hoje é uma data entre 2 de maio de 2017 e 1º de maio de 2018. Campos com X no campo timex fazem parte da data que não está explicitamente especificada no enunciado.

Exemplo de resolução de data

O enunciado a seguir e a resposta JSON parcial dele são mostrados abaixo.

May 2nd

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

Exemplos de resolução de intervalo de datas para data numérica

A entidade datetimeV2 extrai os intervalos de data e hora. Os campos start e end especificam o início e o fim do intervalo. Para o enunciado May 2nd to May 5th, o LUIS retorna valores de daterange do ano corrente e do ano seguinte. No campo timex, os valores XXXX indicam a ambiguidade do ano. P3D indica que o período é de três dias.

O enunciado a seguir e a resposta JSON parcial dele são mostrados abaixo.

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"
                        }
                    ]
                }
            ]
        }
    ]
}

Exemplos de resolução de intervalo de data para o dia da semana

O exemplo a seguir mostra como o LUIS usa datetimeV2 para resolver o enunciado Tuesday to Thursday. Neste exemplo, a data atual é 19 de junho. O LUIS inclui valores de daterange para ambos os intervalos de datas que precedem e seguem a data atual.

O enunciado a seguir e a resposta JSON parcial dele são mostrados abaixo.

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"
                        }
                    ]
                }
            ]
        }
    ]
}

Horário ambíguo

A matriz de valores terá dois elementos de tempo se o tempo ou o intervalo de tempo for ambíguo. Quando há uma hora ambígua, os valores têm horas tanto A.M. quanto P.M.

Exemplo de resolução de intervalo de tempo

A resposta JSON DatetimeV2 foi alterada na API V3. O exemplo a seguir mostra como o LUIS usa datetimeV2 para resolver o enunciado que tem um intervalo de tempo.

Alterações da API V2:

  • A propriedade datetimeV2.timex.type não é mais retornada porque é retornada no nível pai, datetimev2.type.
  • Além disso, a propriedade datetimeV2.value foi renomeada para datetimeV2.timex.

O enunciado a seguir e a resposta JSON parcial dele são mostrados abaixo.

from 6pm to 7pm

O JSON a seguir está com o parâmetro verbose definido como false:


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

Exemplo de resolução de hora

O enunciado a seguir e a resposta JSON parcial dele são mostrados abaixo.

8am

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

Datetime predefinido preterido

A entidade pré-compilada datetime é reprovada e substituída por datetimeV2.

Para substituir datetime por datetimeV2 em seu aplicativo LUIS, conclua as seguintes etapas:

  1. Abra o painel Entidades da interface Web do LUIS.
  2. Exclua a entidade predefinida datetime.
  3. Selecione Adicionar entidade predefinida
  4. Selecione datetimeV2 e clique em Salvar.

Próximas etapas

Saiba mais sobre as entidades dimensão, email e número.