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 値の使用方法を説明する際に使用される用語 (例: beforeafter)。
type サブタイプ。datetimedatetimedaterangetimerangedatetimerangedurationset のいずれかの項目を指定できます。
value 省略可能。 yyyy-MM-dd (date)、HH:mm:ss (time)、yyyy-MM-dd HH:mm:ss (datetime) 形式の datetime オブジェクト。 typedurationの場合、値は秒数 (期間) です。
typedatetimedatetime、または 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 アプリで datetimedatetimeV2 に置き換えるには、次の手順のようにします。

  1. LUIS Web インターフェイスの [Entities](エンティティ) ウィンドウを開きます。
  2. datetime 作成済みエンティティを削除します。
  3. [Add prebuilt entity](作成済みエンティティの追加) を選択します
  4. datetimeV2 を選択し、 [保存] をクリックします。

次のステップ

dimensionemailnumber について学習します。