Konuşma dili anlama modeli oluşturmaya yönelik kaynakları anlama

Tamamlandı

Language Understanding hizmetini kullanarak bir NLP çözümü geliştirmek için Azure'da bir Dil kaynağı oluşturmanız gerekir. Bu kaynak hem modelinizi yazmak hem de istemci uygulamalarından gelen tahmin isteklerini işlemek için kullanılır.

Bahşiş

Bu modülün laboratuvarı, konuşma dilini anlamak için bir model oluşturmayı kapsar. Özel metin sınıflandırmasına ve özel adlandırılmış varlık tanımaya odaklanmış modüller için, Doğal dil çözümleri geliştirme öğrenme yolundaki özel çözüm modüllerine bakın.

Modelinizi oluşturma

Tahmin için model gerektiren özellikler için, tahminde bulunmak üzere kullanmadan önce modeli oluşturmanız, eğitip dağıtmanız gerekir. Bu derleme ve eğitim, Azure AI Dil hizmetine nelerin aranacağını öğretecektir.

İlk olarak Azure portalında Azure AI Dil kaynağınızı oluşturmanız gerekir. Ardından:

  1. Azure AI hizmetlerini arayın.
  2. Dil Hizmeti'yi bulun ve seçin.
  3. Dil Hizmeti'nin altında Oluştur'u seçin.
  4. Gerekli ayrıntıları doldurun, coğrafi olarak size en yakın bölgeyi seçin (en iyi performans için) ve benzersiz bir ad verin.

Bu kaynak oluşturulduktan sonra bir anahtara ve uç noktaya ihtiyacınız olacaktır. Bunu sol tarafta , kaynağa genel bakış sayfasının Anahtarlar ve Uç Nokta altında bulabilirsiniz.

Language Studio'yu kullanma

Modelinizi oluşturmak, eğitmek ve dağıtmak için daha görsel bir yöntem için Language Studio'yu kullanarak bu adımların her birini gerçekleştirebilirsiniz. Ana sayfada Konuşma dili anlama projesi oluşturmayı seçebilirsiniz. Proje oluşturulduktan sonra modelinizi derlemek, eğitmek ve dağıtmak için yukarıdaki işlemle aynı işlemi uygulayın.

Screenshot of the Language Studio home page.

Bu modüldeki laboratuvarda, modelinizi oluşturmak için Language Studio'yu kullanma adımları gösterilir. Daha fazla bilgi edinmek isterseniz Bkz . Language Studio hızlı başlangıcı

REST API’sini kullanma

Modelinizi oluşturmanın bir yolu REST API'sini kullanmaktır. Desen, projenizi oluşturmak, verileri içeri aktarmak, eğitmek, dağıtmak ve ardından modelinizi kullanmaktır.

Bu görevler zaman uyumsuz olarak yapılır; Her adım için uygun URI'ye bir istek göndermeniz ve ardından bu işin durumunu almak için başka bir istek göndermeniz gerekir.

Örneğin, konuşma dili anlama projesi için bir model dağıtmak istiyorsanız, dağıtım işini gönderir ve ardından dağıtım işinin durumunu denetlersiniz.

Kimlik Doğrulaması

Azure AI Dil kaynağınıza yapılan her çağrı için aşağıdaki üst bilgiyi sağlayarak isteğin kimliğini doğrularsınız.

Anahtar Değer
Ocp-Apim-Subscription-Key Kaynağınızın anahtarı

Dağıtım isteme

Aşağıdaki uç noktaya bir POST isteği gönderin.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Yer tutucu Değer Örnek
{ENDPOINT} Azure AI Dil kaynağınızın uç noktası https://<your-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Projenizin adı. Bu değer büyük/küçük harfe duyarlıdır myProject
{DEPLOYMENT-NAME} Dağıtımınızın adı. Bu değer büyük/küçük harfe duyarlıdır staging
{API-VERSION} Çağırdığınız API'nin sürümü 2022-05-01

İsteğinize aşağıdakileri body ekleyin.

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Yer tutucu Değer
{MODEL-NAME} Dağıtımınıza atanacak model adı. Bu değer büyük/küçük harfe duyarlıdır.

İsteğinizi başarıyla gönderdiğinizde yanıt üst bilgisi operation-locationolan bir yanıt alırsınız202. Bu üst bilgi, durumu istemek için şu şekilde biçimlendirilmiş bir URL'ye sahip olur:

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

Dağıtım durumunu alma

Yukarıdaki yanıt üst bilgisinden URL'ye bir GET isteği gönderin. Değerler, ilk dağıtım isteğine göre zaten doldurulur.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Yer tutucu Değer
{ENDPOINT} API isteğinizin kimliğini doğrulamak için uç nokta
{PROJECT-NAME} Projenizin adı (büyük/küçük harfe duyarlı)
{DEPLOYMENT-NAME} Dağıtımınızın adı (büyük/küçük harfe duyarlı)
{JOB-ID} Dağıtım isteğinde yukarıda ayrıntılarıyla belirtilen üst bilgi değerinde bulunan modelinizin eğitim durumunu bulma kimliği
{API-VERSION} Çağırdığınız API'nin sürümü

Yanıt gövdesi dağıtım durumu ayrıntılarını verir. Alanstatus, dağıtım tamamlandığında başarılı değerini alır.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"String",
    "lastUpdatedDateTime":"String",
    "expirationDateTime":"String",
    "status":"running"
}

Örnek istekleri içeren her adımın tam kılavuzu için konuşma anlama hızlı başlangıcına bakın.

Modelinizi sorgulama

Modelinizi tahmin için sorgulamak için C# veya Python'daki SDK'ları veya REST API'sini kullanabilirsiniz.

SDK'ları kullanarak sorgulama

Sdk kullanarak modelinizi sorgulamak için önce istemcinizi oluşturmanız gerekir. İstemcinizi aldıktan sonra uygun uç noktayı çağırmak için bunu kullanırsınız.

var languageClient = new TextAnalyticsClient(endpoint, credentials);
var response = languageClient.ExtractKeyPhrases(document);
language_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=credentials)
response = language_client.extract_key_phrases(documents = documents)[0]

Konuşma dili anlama gibi diğer dil özellikleri, isteğin farklı şekilde derlenmesini ve gönderilmesini gerektirir.

var data = new
{
    analysisInput = new
    {
        conversationItem = new
        {
            text = userText,
            id = "1",
            participantId = "1",
        }
    },
    parameters = new
    {
        projectName,
        deploymentName,
        // Use Utf16CodeUnit for strings in .NET.
        stringIndexType = "Utf16CodeUnit",
    },
    kind = "Conversation",
};
Response response = await client.AnalyzeConversationAsync(RequestContent.Create(data));
result = client.analyze_conversation(
    task={
        "kind": "Conversation",
        "analysisInput": {
            "conversationItem": {
                "participantId": "1",
                "id": "1",
                "modality": "text",
                "language": "en",
                "text": query
            },
            "isLoggingEnabled": False
        },
        "parameters": {
            "projectName": cls_project,
            "deploymentName": deployment_slot,
            "verbose": True
        }
    }
)

REST API kullanarak sorgulama

REST kullanarak modelinizi sorgulamak için, belirtilen uygun gövdeye sahip uygun URL'ye bir POST isteği oluşturun. Dil algılama veya yaklaşım analizi gibi yerleşik özellikler için uç noktayı sorgulayacaksınız analyze-text .

Bahşiş

Üst bilgideki Azure AI Dili kaynak anahtarınızla her isteğin kimliğinin Ocp-Apim-Subscription-Key doğrulanması gerektiğini unutmayın

{ENDPOINT}/language/:analyze-text?api-version={API-VERSION}
Yer tutucu Değer
{ENDPOINT} API isteğinizin kimliğini doğrulamak için uç nokta
{API-VERSION} Çağırdığınız API'nin sürümü

Bu isteğin gövdesinde, hizmete ne tür bir dil anlayışı istediğinizi bildiren parametresini belirtmeniz kind gerekir.

Örneğin dili algılamak istiyorsanız JSON gövdesi aşağıdakine benzer olacaktır.

{
    "kind": "LanguageDetection",
    "parameters": {
        "modelVersion": "latest"
    },
    "analysisInput":{
        "documents":[
            {
                "id":"1",
                "text": "This is a document written in English."
            }
        ]
    }
}

Konuşma dili anlama gibi diğer dil özellikleri, isteğin farklı bir uç noktaya yönlendirilmesi gerekir. Örneğin, konuşma dili anlama isteği aşağıdakilere gönderilir.

{ENDPOINT}/language/:analyze-conversations?api-version={API-VERSION}
Yer tutucu Değer
{ENDPOINT} API isteğinizin kimliğini doğrulamak için uç nokta
{API-VERSION} Çağırdığınız API'nin sürümü

Bu istek aşağıdakine benzer bir JSON gövdesi içerir.

{
  "kind": "Conversation",
  "analysisInput": {
    "conversationItem": {
      "id": "1",
      "participantId": "1",
      "text": "Sample text"
    }
  },
  "parameters": {
    "projectName": "{PROJECT-NAME}",
    "deploymentName": "{DEPLOYMENT-NAME}",
    "stringIndexType": "TextElement_V8"
  }
}
Yer tutucu Değer
{PROJECT-NAME} Modelinizi oluşturduğunuz projenin adı
{DEPLOYMENT-NAME} Dağıtımınızın adı

Örnek yanıt

SDK'dan gelen sorgu yanıtı, özellik (veya response.Valuegibi) bağlı olarak değişen döndürülen nesnede response.key_phrases olur. REST API aşağıdakine benzer bir JSON döndürür.

{
    "kind": "KeyPhraseExtractionResults",
    "results": {
        "documents": [{
            "id": "1",
            "keyPhrases": ["modern medical office", "Dr. Smith", "great staff"],
            "warnings": []
        }],
        "errors": [],
        "modelVersion": "{VERSION}"
    }
}

Konuşma dilini anlama gibi diğer modeller için sorgunuza yönelik örnek bir yanıt aşağıdakine benzer olacaktır.

{
  "kind": "ConversationResult",
  "result": {
    "query": "String",
    "prediction": {
      "topIntent": "intent1",
      "projectKind": "Conversation",
      "intents": [
        {
          "category": "intent1",
          "confidenceScore": 1
        },
        {
          "category": "intent2",
          "confidenceScore": 0
        }
      ],
      "entities": [
        {
          "category": "entity1",
          "text": "text",
          "offset": 7,
          "length": 4,
          "confidenceScore": 1
        }
      ]
    }
  }
}

Hem Python hem de C# için SDK'lar REST yanıtına çok benzeyen JSON döndürür.

Örnekler ve nasıl yapılır kılavuzları da dahil olmak üzere özelliklerle ilgili tam belgeler için Bkz . Azure AI Dili belge belgeleri sayfaları.