分享方式:


LUIS 應用程式的 DatetimeV2 預先建置實體

重要

LUIS 將於 2025 年 10 月 1 日淘汰,而自 2023 年 4 月 1 日開始,您將無法建立新的 LUIS 資源。 建議移轉 LUIS 應用程式交談語言理解,以享有產品持續支援和多語言功能的優點。

datetimeV2 預先建置的實體會擷取日期和時間值。 這些值會以標準化格式解析,以供用戶端程序取用。 當語句有未完成的日期或時間時,LUIS 會在端點回應中包含過去和未來的值 。 由於此實體已定型,因此您不需要將包含 datetimeV2 的範例語句新增至應用程式意圖。

datetimeV2 的類型

DatetimeV2 是從 Recognizers-text GitHub 存放庫管理。

範例 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 值模棱兩可,則陣列有兩個專案。 模棱兩可包括缺少特定年份、時間或時間範圍。 如需範例,請參閱 模棱兩可的日期 。 當 A.M. 或 P.M.的時間模棱兩可時,會包含這兩個值。
  • 如果語句有兩個含模棱兩個元素,則陣列有四個元素。 此模棱兩可包含下列專案:
    • 與年份模棱兩可的日期或日期範圍
    • 與 A.M. 或 P.M. 模棱兩可的時間或時間範圍。例如,4 月 3 日 3:00。

陣列的每個 values 元素可能都有下列欄位:

屬性名稱 屬性描述
timex TIMEX 格式所表示的時間、日期或日期範圍,其遵循 ISO 8601 標準 ,以及使用 TimeML 語言註釋的 TIMEX3 屬性。
mod 用來描述如何使用 的值,例如 beforeafter
type 子類型,可以是下列其中一個專案:datetime、、、timedatedaterange、、timerangedatetimerangedurationset
value 選擇性。 格式 yyyy-MM-dd (date), HH:mm:ss (time) yyyy-MM-dd HH:mm:ss 中的 datetime 物件。 如果 typeduration,則值為秒數(持續時間)
只有在 是 datetimedatetime或 'duration 時才會使用type

有效的日期值

datetimeV2 支援下列範圍之間的日期:

Min Max
1900 年 1 月 1 日 2099 年 12 月 31 日

模棱兩可的日期

如果日期可以是過去或未來,LUIS 會提供這兩個值。 例如,語句包含沒有年份的月份和日期。

例如,假設有下列語句:

May 2nd

  • 如果今天的日期是 2017 年 5 月 3 日,LUIS 會同時提供 “2017-05-02” 和 “2018-05-02” 作為值。
  • 當今天的日期是 2017 年 5 月 1 日時,LUIS 會提供 “2016-05-02” 和 “2017-05-02” 作為值。

下列範例顯示實體 「may 2nd」 的解析。 此決議假設今天的日期是 2017 年 5 月 2 日至 2018 年 5 月 1 日的日期。 欄位中具有的Xtimex欄位是語句中未明確指定之日期的一部分。

日期解析範例

下列語句及其部分 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"
                        }
                    ]
                }
            ]
        }
    ]
}

星期幾的日期範圍解析範例

下列範例示範 LUIS 如何使用 datetimeV2 解析語句 Tuesday to Thursday。 在此範例中,目前的日期為 6 月 19 日。 LUIS 包含兩個在目前日期之前和之後的日期範圍日期範圍值。

下列語句及其部分 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"
                        }
                    ]
                }
            ]
        }
    ]
}

不明確的時間

如果時間或時間範圍模棱兩可,則值陣列有兩個時間元素。 當有模棱兩可的時間時,值同時具有 A.M. 和 P.M. 時間。

時間範圍解析範例

API V3 中的 DatetimeV2 JSON 回應已變更。 下列範例示範 LUIS 如何使用 datetimeV2 解析具有時間範圍的語句。

API V2 的變更:

  • 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預先建置的實體已被取代,並取代為 datetimeV2

若要在 LUIS 應用程式中以 取代 datetime datetimeV2 ,請完成下列步驟:

  1. 開啟 LUIS Web 介面的 [ 實體 ] 窗格。
  2. 刪除日期時間預先建置的實體。
  3. 選取 [新增預建的實體]
  4. 選取 datetimeV2 ,然後按兩下 [ 儲存]。

下一步

了解 維度電子郵件 實體和 數位