의도, 발화 및 엔터티 정의

완료됨

발화는 언어 모델을 사용하는 애플리케이션과 상호 작용할 때 사용자가 입력할 수 있는 어구입니다. 의도는 사용자가 수행하려는 태스크나 작업 또는 발화의 의미 이상을 나타냅니다. 의도를 정의하고 하나 이상의 발화에 연결하여 모델을 만듭니다.

예를 들어, 다음과 같은 의도 및 관련 발화 목록을 살펴보세요.

  • GetTime:
    • "What time is it?"
    • "What is the time?"
    • "Tell me the time"
  • GetWeather:
    • "What is the weather forecast?"
    • "Do I need an umbrella?"
    • "Will it snow?"
  • TurnOnDevice
    • "Turn the light on."
    • "Switch on the light."
    • "Turn on the fan"
  • 없음:
    • "Hello"
    • "Goodbye"

모델이 이해하게 하려는 의도를 모델에서 정의해야 합니다. 따라서 모델이 지원해야 하는 영역과 사용자가 요청할 수 있는 작업 또는 정보의 종류를 충분히 고려해야 합니다. 정의한 의도 외에도, 모든 모델은 필요한 구체적인 작업(예: “hello”와 같은 인사말)이 없거나 이 모델의 영역 범위를 벗어나는 경우를 제외하고 사용자가 제출할 수 있는 발화를 명시적으로 식별하는 데 사용해야 하는 없음 의도를 포함해야 합니다.

모델이 지원해야 하는 의도를 확인한 후에는 각 의도에 대해 다양한 예제 발화를 캡처하는 것이 중요합니다. 동일한 것을 의미하지만 다른 방식으로 구성되는 발화를 비롯하여 사용자가 입력할 것으로 생각하는 발화를 수집합니다. 다음 지침에 유의하세요.

  • 여러 다양한 예제 또는 동일한 작업을 말하는 다양한 방법을 캡처합니다.
  • 발화의 길이를 짧은 것부터 중간, 긴 것까지 다양하게 합니다.
  • 발화에서 명사 또는 주어의 위치를 다양하게 합니다. 명사나 주어를 시작, 끝 또는 문장 중간에 배치합니다.
  • 서로 다른 발화에서 올바른 문법과 잘못된 문법을 사용하여 올바른 학습 데이터 예제를 제공합니다.
  • 레이블이 지정된 데이터의 정밀도, 일관성 및 완전성은 모델 성능을 결정하는 주요 요소입니다.
    • 정확한 레이블 지정: 각 엔터티를 항상 올바른 형식으로 레이블을 지정합니다. 추출하려는 항목만 포함하고 레이블에 불필요한 데이터를 포함하지 마세요.
    • 일관된 레이블 지정: 동일한 항목은 모든 발화에서 동일한 레이블을 가져야 합니다.
    • 전체 레이블: 모든 발화에서 항목의 모든 인스턴스에 레이블을 지정합니다.

엔터티는 의도에 특정 컨텍스트를 추가하는 데 사용됩니다. 예를 들어, 여러 디바이스에 적용할 수 있는 TurnOnDevice 의도를 정의하고 엔터티를 사용하여 다른 디바이스를 정의할 수 있습니다.

다음 발화, 의도 및 엔터티를 고려합니다.

발화 Intent 엔터티
What is the time? GetTime
What time is it in London? GetTime Location(London)
What's the weather forecast for Paris? GetWeather Location(Paris)
Will I need an umbrella tonight? GetWeather Time(tonight)
What's the forecast for Seattle tomorrow? GetWeather Location(Seattle), Time(tomorrow)
Turn the light on. TurnOnDevice Device(light)
Switch on the fan. TurnOnDevice Device(fan)

엔터티를 다음과 같은 몇 가지 구성 요소 유형으로 분할할 수 있습니다.

  • 학습된 엔터티는 가장 유연한 종류의 엔터티로, 대부분의 경우에 사용해야 합니다. 학습된 구성 요소를 적절한 이름으로 정의한 다음, 학습 발화에서 단어 또는 구를 해당 엔터티와 연결합니다. 모델을 학습시킬 때 발화의 적절한 요소를 엔터티와 일치하도록 합니다.
  • List 엔터티는 가능한 값의 특정 세트(예: 요일)를 포함하는 엔터티가 필요한 경우에 유용합니다. List 엔터티 정의에 동의어를 포함할 수 있으므로 각각 "Sun", "Mon", "Tue" 등과 같은 동의어가 있는 "Sunday", "Monday", "Tuesday" 등의 값을 포함하는 DayOfWeek 엔터티를 정의할 수 있습니다.
  • 미리 빌드된 엔터티는 숫자, 날짜/시간 및 이름과 같은 일반적인 형식에 유용합니다. 예를 들어 미리 빌드된 구성 요소가 추가되면 “6”과 같은 값 또는 “Microsoft”와 같은 조직을 자동으로 검색합니다. 이 문서에서는 지원되는 미리 빌드된 엔터티 목록을 볼 수 있습니다.