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:
- 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 paradatetimeV2.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:
- Abra o painel Entidades da interface Web do LUIS.
- Exclua a entidade predefinida datetime.
- Selecione Adicionar entidade predefinida
- Selecione datetimeV2 e clique em Salvar.