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 | 用來描述如何使用 的值,例如 before 、 after 。 |
type | 子類型,可以是下列其中一個專案:datetime 、、、time date daterange 、、timerange 、datetimerange 、 duration set 。 |
value | 選擇性。 格式 yyyy-MM-dd (date), HH:mm:ss (time) yyyy-MM-dd HH:mm:ss 中的 datetime 物件。 如果 type 為 duration ,則值為秒數(持續時間) 只有在 是 datetime 或 date 、time 或 '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 日的日期。
欄位中具有的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"
}
]
}
]
}
]
}
星期幾的日期範圍解析範例
下列範例示範 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
,請完成下列步驟:
- 開啟 LUIS Web 介面的 [ 實體 ] 窗格。
- 刪除日期時間預先建置的實體。
- 選取 [新增預建的實體]
- 選取 datetimeV2 ,然後按兩下 [ 儲存]。