Entité prédéfinie datetimeV2 pour une application LUIS

Important

LUIS sera mis hors service le 1er octobre 2025 et à partir du 1er avril 2023, vous ne pourrez plus créer de nouvelles ressources LUIS. Nous vous recommandons de migrer vos applications LUIS vers la compréhension du langage courant pour tirer parti de la prise en charge continue des produits et des fonctionnalités multilingues.

L’entité prédéfinie datetimeV2 extrait des valeurs de date et d’heure. Ces valeurs se résolvent dans un format standardisé que les programmes clients peuvent exploiter. Quand un énoncé a une date ou une heure incomplètes, LUIS inclut les valeurs passées et futures dans la réponse du point de terminaison. Étant donné que cette entité est déjà formée, vous n’avez pas besoin d’ajouter d’exemples d’énoncés contenant datetimev2 aux intentions de l’application.

Types de datetimev2

DatetimeV2 est géré à partir du référentiel GitHub Recognizers-text.

Exemple JSON

L’énoncé suivant et sa réponse JSON partielle sont illustrés ci-dessous.

8am on may 2nd 2019

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

Sous-types de datetimev2

L’entité prédéfinie datetimev2 a les sous-types ci-dessous, pour lesquels le tableau suivant fournit des exemples :

  • date
  • time
  • daterange
  • timerange
  • datetimerange

Valeurs de résolution

  • Le tableau contient un seul élément si la date ou l’heure dans l’énoncé sont complètement spécifiées et non équivoques.
  • Le tableau contient deux éléments si la valeur datetimev2 est ambiguë. L’ambiguïté résulte de l’absence d’année, d’heure ou d’intervalle de temps spécifiques. Pour obtenir des exemples, voir Dates ambiguës. Quand l’heure est ambiguë au sens où elle ne permet pas de déterminer s’il s’agit de l’avant-midi (AM) ou de l’après-midi (PM), les deux valeurs sont incluses.
  • Le tableau contient quatre éléments si l’énoncé comporte deux éléments ambigus. Cette ambiguïté inclut les éléments qui ont :
    • Une date ou une plage de dates ambiguës pour l’année
    • Une heure ou une plage d’heures ambiguës parce qu’elles ne permettent pas de déterminer s’il s’agit de l’avant-midi (AM) ou de l’après-midi (PM), par exemple, le 3 avril à 3 heures.

Chaque élément du tableau values peut comprendre les champs suivants :

Nom de la propriété Description de la propriété
timex Heure, date ou plage de dates exprimées au format TIMEX qui suit la norme ISO 8601 et les attributs TIMEX3 pour l’annotation à l’aide du langage TimeML.
mod terme utilisé pour décrire comment utiliser la valeur, par exemple before, after.
type Sous-type, à savoir l’un des éléments suivants : datetime, date, time, daterange, timerange, datetimerange, duration ou set.
value Facultatif. Objet datetime au format aaaa-MM-jj (date), HH:mm:ss (heure), aaaa-MM-jj HH:mm:ss (datetime). Si type c’est durationle cas, la valeur est le nombre de secondes (durée)
Utilisé uniquement si type est datetime, date, time ou une durée.

Valeurs de date valides

L’entité datetimev2 prend en charge les dates comprises dans les plages suivantes :

Min Max
1er janvier 1900 31 décembre 2099

Dates ambiguës

Si la date peut être dans le passé ou dans le futur, LUIS fournit les deux valeurs. Il s’agit, par exemple, d’un énoncé incluant le mois et la date sans spécifier l’année.

Par exemple, pour le texte délimité suivant :

May 2nd

  • Si la date du jour est le 3 mai 2017, LUIS fournit les valeurs "2017-05-02" (02-05-2017) et "2018-05-02" (02-05-2018).
  • Quand la date du jour est le 1er mai 2017, LUIS fournit les valeurs "2016-05-02" (02-05-2016) et "201è-05-02" (02-05-2017).

L’exemple suivant montre la résolution de l’entité "may 2nd" (2 mai). Cette solution suppose que la date du jour est comprise entre le 2 mai 2017 et le 1er mai 2018. Les X dans le champ timex correspondent à des parties de la date qui ne sont pas explicitement spécifiées dans l’énoncé.

Exemple de résolution de date

L’énoncé suivant et sa réponse JSON partielle sont illustrés ci-dessous.

May 2nd

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

Exemples de résolution de plage de dates pour la date numérique

L’entité datetimeV2 extrait les plages de dates et d’heures. Les champs start et end indiquent respectivement le début et la fin de la plage. Pour l’énoncé May 2nd to May 5th, LUIS fournit les valeurs daterange pour l’année en cours et l’année suivante. Dans le champ timex, les valeurs XXXX indiquent l’ambiguïté de l’année. P3D indique que la période est de trois jours.

L’énoncé suivant et sa réponse JSON partielle sont illustrés ci-dessous.

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

Exemples de résolution de plage de dates pour le jour de la semaine

L’exemple suivant montre comment LUIS utilise datetimeV2 pour résoudre l’énoncé Tuesday to Thursday. Dans cet exemple, la date du jour est le 19 juin. LUIS inclut les valeurs daterange (plage de dates) pour les plages de dates qui précèdent et qui suivent la date du jour.

L’énoncé suivant et sa réponse JSON partielle sont illustrés ci-dessous.

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

Heure ambiguë

Le tableau des valeurs contient deux éléments si l’heure ou la plage d’heures sont ambiguës. Quand une heure est ambiguë, les valeurs comprennent les deux possibilités (AM) et (PM).

Exemple de résolution de plage d’heures

La réponse JSON DatetimeV2 a changé dans l’API v3. L’exemple suivant montre comment LUIS utilise datetimev2 pour résoudre l’énoncé contenant une plage d’heures.

Changements par rapport à l’API V2 :

  • La propriété datetimeV2.timex.type n’est plus renvoyée, car elle est retournée au niveau du parent, datetimev2.type.
  • La propriété datetimeV2.value a été renommée en datetimeV2.timex.

L’énoncé suivant et sa réponse JSON partielle sont illustrés ci-dessous.

from 6pm to 7pm

Le code JSON suivant a le paramètre verbose défini sur false :


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

Exemple de résolution d’heure

L’énoncé suivant et sa réponse JSON partielle sont illustrés ci-dessous.

8am

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

Désapprobation de l’entité prédéfinie datetime

L’entité prédéfinie datetime est désapprouvée et remplacée par datetimeV2.

Pour remplacer datetime par datetimeV2 dans votre application LUIS, procédez comme suit :

  1. Ouvrez le volet Entities (Entités) l’interface web de LUIS.
  2. Supprimez l’entité prédéfinie datetime.
  3. Sélectionnez Ajouter une entité prédéfinie
  4. Sélectionnez datetimev2, puis cliquez sur Save (Enregistrer).

Étapes suivantes

En savoir plus sur les entités dimension, email et number.