Özel adlandırılmış varlık tanımayı anlama

Tamamlandı

Özel NER, belgelere bakan, kullanıcı tanımlı varlıkları tanımlayan ve ayıklayan bir Azure API hizmetidir. Bu varlıklar, arama sonuçlarını geliştirmek için adlardan ve adreslerden banka hesap özetlerinden bilgi madenciliğine kadar her şey olabilir.

Özel NER, Azure yapay zeka hizmetlerinde Azure Yapay Zeka Dili'nin bir parçasıdır.

Özel ve yerleşik NER karşılaştırması

Azure AI Dili, kişi, konum, kuruluş veya URL gibi öğeleri tanımak için belirli yerleşik varlık tanıma sağlar. Yerleşik NER, hizmeti en az yapılandırmayla ayarlamanıza ve varlıkları ayıklamanıza olanak tanır. Yerleşik bir NER'yi çağırmak için hizmetinizi oluşturun ve bu NER hizmetinin uç noktasını şu şekilde çağırın:

<YOUR-ENDPOINT>/language/analyze-text/jobs?api-version=<API-VERSION>
Yer tutucu Değer Örnek
<YOUR-ENDPOINT> API isteğinizin uç noktası https://<your-resource>.cognitiveservices.azure.com
<AIP-VERSION> Çağırdığınız API'nin sürümü 2023-05-01

Bu çağrının gövdesinde varlıkların ayıklandığı belgeler ve üst bilgiler hizmet anahtarınızı içerir.

Yukarıdaki çağrıdan gelen yanıt, aşağıdakiler gibi tanınan bir varlık dizisi içerir:

<...>
"entities":[
    {
        "text":"Seattle",
        "category":"Location",
        "subcategory":"GPE",
        "offset":45,
        "length":7,
        "confidenceScore":0.99
    },
    {
        "text":"next week",
        "category":"DateTime",
        "subcategory":"DateRange",
        "offset":104,
        "length":9,
        "confidenceScore":0.8
    }
]
<...>

Yerleşik NER'nin ne zaman kullanılacağına örnek olarak uzun metin belgelerinde konumları, adları veya URL'leri bulma verilebilir.

İpucu

Tanınan varlık kategorilerinin tam listesi NER belgelerinde bulunur.

Bu modülün geri kalanının odağı olan özel NER, ayıklamak istediğiniz varlıklar yerleşik hizmetin parçası olmadığında veya yalnızca belirli varlıkları ayıklamak istediğinizde kullanılabilir. Özel NER modelinizi, uygulamanız için gerekli olduğu kadar basit veya karmaşık hale getirebilirsiniz.

Özel NER'yi ne zaman istediğinizi gösteren örnekler arasında belirli yasal veriler veya banka verileri, katalog aramasını geliştirmek için bilgi madenciliği veya denetim ilkeleri için belirli bir metin arama sayılabilir. Bu projelerin her biri, ayıklaması gereken belirli bir varlık ve veri kümesi gerektirir.

Azure AI Dil projesi yaşam döngüsü

Conceptual diagram showing a project steps to define entities, tag data, train model, view model, improve model, deploy model, and extract entities.

Varlık ayıklama modeli oluşturmak genellikle çoğu Azure AI Dil hizmeti özelliğine benzer bir yol izler:

  1. Varlıkları tanımlama: Tanımlamak istediğiniz verileri ve varlıkları anlama ve mümkün olduğunca açık hale getirmeye çalışma. Örneğin, bir banka ekstresinin tam olarak hangi bölümlerini ayıklamak istediğinizi tanımlama.
  2. Verileri etiketleme: Veri kümenizdeki hangi metnin hangi varlığa karşılık olduğunu belirterek mevcut verilerinizi etiketleyin veya etiketleyin. Yanlış veya cevapsız etiketler eğitilen modelin verimliliğini azaltacağı için bu adımın doğru ve tamamen yapılması önemlidir. Olası giriş belgelerinin iyi bir varyasyonu yararlıdır. Örneğin, etiket banka adı, müşteri adı, müşteri adresi, belirli kredi veya hesap koşulları, kredi veya hesap tutarı ve hesap numarası.
  3. Modeli eğitme: Varlıklarınız etiketlendikten sonra modelinizi eğitin. Eğitim, modelinize etiketlediğiniz varlıkları nasıl tanıyabileceğinizi öğretir.
  4. Modeli görüntüleme: Modeliniz eğitildikten sonra modelin sonuçlarını görüntüleyin. Bu sayfa, test edilen verilerin duyarlığı ve geri çağrımını temel alan 0 ile 1 arasında bir puan içerir. Hangi varlıkların iyi çalıştığını (müşteri adı gibi) ve hangi varlıkların geliştirilmesi gerektiğini (hesap numarası gibi) görebilirsiniz.
  5. Modeli geliştirme: Hangi varlıkların tanımlanamadığına ve hangi varlıkların yanlış ayıklandığını görerek modelinizi geliştirin. Performansı geliştirmek için modelinizin eğitimine hangi verilerin eklenmesi gerektiğini öğrenin. Bu sayfada varlıkların nasıl başarısız olduğu ve hangi varlıkların (hesap numarası gibi) diğer benzer varlıklardan (örneğin, kredi tutarı) ayırt edilmesi gerektiği gösterilir.
  6. Modeli dağıtma: Modeliniz istediğiniz gibi bir performans sergiledikten sonra, modelinizi API aracılığıyla kullanılabilir hale getirmek için dağıtın. Örneğimizde, banka ekstresi varlıklarını ayıklamak için dağıtıldığında modele istek gönderebilirsiniz.
  7. Varlıkları ayıklama: Varlıkları ayıklamak için modelinizi kullanın. Laboratuvar, API'nin nasıl kullanılacağını kapsar ve daha fazla ayrıntı için API başvurusunu görüntüleyebilirsiniz.

Veri seçimi ve iyileştirme varlıklarıyla ilgili dikkat edilmesi gerekenler

En iyi performans için modeli eğitmek için hem yüksek kaliteli verileri hem de açıkça tanımlanmış varlık türlerini kullanmanız gerekir.

Yüksek kaliteli veriler, daha az zaman harcamanızı ve modelinizden daha iyi sonuçlar elde etmenizi sağlayacaktır.

  • Çeşitlilik : Gerçek verilerde beklenen gerçek yaşam dağılımını kaybetmeden mümkün olduğunca çeşitli veri kümesi kullanın. Her biri kendi biçimlerine ve varlık sayısına sahip olan mümkün olduğunca çok kaynaktan örnek verileri kullanmak isteyeceksiniz. Veri kümenizin mümkün olduğunca çok farklı kaynağı temsil etmelerini sağlamak en iyisidir.
  • Dağıtım - Belge türlerinin uygun dağıtımını kullanın. Modelinizi eğitmek için daha çeşitli bir veri kümesi, modelinizin verilerdeki yanlış ilişkileri öğrenmesini önlemeye yardımcı olur.
  • Doğruluk : Gerçek dünyaya mümkün olduğunca yakın verileri kullanın. Sahte veriler eğitim sürecini başlatmak için çalışır, ancak büyük olasılıkla modelinizin doğru ayıklanmamasına neden olabilecek yollarla gerçek verilerden farklı olacaktır.

Varlıkların da dikkatli bir şekilde dikkate alınması ve mümkün olduğunca ayrı olarak tanımlanması gerekir. Modeli ayırt etmek için zorlanacağından, belirsiz varlıklardan (örneğin, bir banka ekstresinde yan yana iki ad) kaçının. Bazı belirsiz varlıklara sahip olmak gerekiyorsa, modelinizin farkı anlayabilmesi için öğrenmesi gereken daha fazla örnek olduğundan emin olun.

Varlıklarınızı farklı tutmak, modelinizin performansına yardımcı olmak için de uzun bir yol kat edecektir. Örneğin, telefon numarası, sosyal medya tanıtıcısı veya e-posta adresi olabilecek "Kişi bilgileri" gibi bir şeyi ayıklamaya çalışmak, modelinizi doğru şekilde öğretmek için birkaç örnek gerektirir. Bunun yerine, bunları "Telefon", "E-posta" ve "Sosyal medya" gibi daha belirli varlıklara ayırmayı deneyin ve modelin bulduğu kişi bilgisi türünü etiketlemesine izin verin.

Varlıkları ayıklama

Ayıklama görevi göndermek için API, JSON gövdesinin yürütülecek görevi belirtmesini gerektirir. Özel NER için JSON yükünün görevi şeklindedir CustomEntityRecognition.

Yükünüz aşağıdaki JSON'a benzer olacaktır:

{
    "displayName": "string",
    "analysisInput": {
        "documents": [
            {
                "id": "doc1", 
                "text": "string"
            },
            {
                "id": "doc2",
                "text": "string"
            }
        ]
    },
    "tasks": [
        {
            "kind": "CustomEntityRecognition",
            "taskName": "MyRecognitionTaskName",
            "parameters": {
            "projectName": "MyProject",
            "deploymentName": "MyDeployment"
            }
        }
    ]
}

Proje sınırları

Azure AI Dil hizmeti aşağıdaki kısıtlamaları uygular:

  • Eğitim - en az 10 dosya ve 100.000'den fazla değil
  • Dağıtımlar - Proje başına 10 dağıtım adı
  • API'ler
    • Yazma : Bu API bir proje oluşturur, modelinizi eğitip dağıtır. Dakikada 10 POST ve 100 GET ile sınırlıdır
    • Çözümle - bu API varlıkları gerçekten ayıklama işini yapar; bir görev talep eder ve sonuçları alır. 20 GET veya POST ile sınırlıdır
  • Projeler - Proje başına yalnızca 1 depolama hesabı, kaynak başına 500 proje ve proje başına 50 eğitilmiş model
  • Varlıklar - her varlık en fazla 500 karakter olabilir. En fazla 200 varlık türüne sahip olabilirsiniz.

Ayrıntılı bilgi için Azure AI Dili hizmet sınırları sayfasına bakın.