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
解決の値
- 発話内の日付または時刻が完全に指定され、あいまいではない場合、配列の要素は 1 つです。
- datetimeV2 の値があいまいな場合、配列の要素は 2 つです。 あいまいさとしては、特定の年、時、または時刻範囲の欠落などがあります。 例については、「あいまいな日付」をご覧ください。 時刻の A.M. や P.M. があいまいなときは、両方の値が含まれます。
- 発話に曖昧な要素が 2 つある場合、配列の要素は 4 つです。 このあいまいさには、次の要素が含まれます。
- 年に関してあいまいな日付または日付範囲
- A.M. または P.M. に関してあいまいな時間または時間の範囲。たとえば、4 月 3 日 3:00 などです。
values
配列の各要素には、次のフィールドが含まれることがあります。
プロパティ名 | プロパティの説明 |
---|---|
timex | ISO 8601 標準に従う TIMEX 形式および TimeML 言語を使用した注釈のための TIMEX3 属性で表された時刻、日付、日付範囲。 |
mod | 値の使用方法を説明する際に使用される用語 (例: before 、after )。 |
type | サブタイプ。datetime 、date 、time 、daterange 、timerange 、datetimerange 、duration 、set のいずれかの項目を指定できます。 |
value | 省略可能。 yyyy-MM-dd (date)、HH:mm:ss (time)、yyyy-MM-dd HH:mm:ss (datetime) 形式の datetime オブジェクト。 type がduration の場合、値は秒数 (期間) です。type が datetime 、date 、time 、または duration の場合にのみ使用されます。 |
有効な日付の値
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" の両方を提供します。
次の例では、エンティティ "5 月 2 日" の解決を示します。 この解決では、今日の日付が 2017 年 5 月 2 日から 2018 年 5 月 1 日の間の日付であるものと仮定します。
timex
フィールド内の X
が付いたフィールドは、発話で明示的に指定されていない日付の部分です。
日付の解決の例
次に示す発話とその部分的な 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
は、時刻の期間が 3 日の長さであることを示します。
次に示す発話とその部分的な 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 は、現在の日付より前と後の両方の日付範囲に対する daterange 値を含めます。
次に示す発話とその部分的な 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"
}
]
}
]
}
]
}
あいまいな時刻
時刻または時刻範囲があいまいな場合、値の配列には 2 つの時刻要素が含まれます。 あいまいな時刻があるとき、値は午前の時刻と午後の時刻があります。
時刻範囲の解決の例
DatetimeV2 JSON 応答は API V3 で変更されました。 次の例では、時刻の範囲を含む発話の解決に 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
datetime
事前構築済みエンティティは非推奨であり、datetimeV2 に置き換えられています。
LUIS アプリで datetime
を datetimeV2
に置き換えるには、次の手順のようにします。
- LUIS Web インターフェイスの [Entities](エンティティ) ウィンドウを開きます。
- datetime 作成済みエンティティを削除します。
- [Add prebuilt entity](作成済みエンティティの追加) を選択します
- datetimeV2 を選択し、 [保存] をクリックします。