Özel Varlık Arama bilişsel becerisi

Özel Varlık Arama becerisi, tanımladığınız varlıkları algılamak veya tanımak için kullanılır. Beceri kümesi yürütme sırasında beceri, özel, kullanıcı tanımlı bir sözcük ve tümcecik listesinden metin arar. Beceri, kaynak belgelerde bulunan eşleşen varlıkları etiketlemek için bu listeyi kullanır. Beceri aynı zamanda benzer ancak tam olmayan eşleşmeleri bulmak için uygulanabilecek bir derece benzer eşleştirmeyi destekler.

Not

Bu beceri bir Azure yapay zeka hizmetleri API'sine bağlı değildir ancak 20'den fazla işleme izin vermek için bir Azure yapay zeka hizmetleri anahtarı gerektirir. Bu beceri Azure AI Search tarafından ölçülür.

@odata.type

Microsoft.Skills.Text.CustomEntityLookupSkill

Veri sınırları

  • Desteklenen giriş kaydı boyutu üst sınırı 256 MB'tır. Verilerinizi özel varlık arama becerisine göndermeden önce bölmeniz gerekiyorsa Metin Bölme becerisini kullanmayı göz önünde bulundurun. Metin bölme becerisi kullanıyorsanız en iyi performans için sayfa uzunluğunu 5000 olarak ayarlayın.
  • "entitiesDefinitionUri" parametresiyle belirtilen bir dış dosya olarak sağlanırsa, özel varlık tanımının en büyük boyutu 10 MB'tır.
  • Varlıklar "inlineEntitiesDefinition" parametresi kullanılarak satır içinde tanımlanırsa, en büyük boyut 10 KB'tır.

Beceri parametreleri

Parametreler büyük/küçük harfe duyarlıdır.

Parametre adı Açıklama
entitiesDefinitionUri Eşleştirilmesi gereken tüm hedef metni içeren bir dış JSON veya CSV dosyasının yolu. Bu varlık tanımı bir dizin oluşturucu çalıştırmasının başında okunur; Bu dosyanın orta çalıştırma güncelleştirmeleri sonraki çalıştırmalara kadar gerçekleştirilmeyecek. Bu dosyaya HTTPS üzerinden erişilebilir olmalıdır. Beklenen CSV veya JSON şeması için aşağıdaki Özel Varlık Tanımı Biçimi'ne bakın.
inlineEntitiesDefinition Satır içi JSON varlık tanımları. Bu parametre varsa entitiesDefinitionUri parametresinin yerini alır. Satır içi 10 KB'tan fazla yapılandırma sağlanamaz. Beklenen JSON şeması için aşağıdaki Özel Varlık Tanımı bölümüne bakın.
defaultLanguageCode (İsteğe bağlı) Giriş metnini belirteç haline getirmek ve ayırmak için kullanılan giriş metninin dil kodu. Aşağıdaki diller desteklenir: da, de, en, es, fi, fr, it, pt. Varsayılan değer İngilizcedir (en). Bir languagecode-countrycode biçim geçirirseniz, biçimin languagecode yalnızca bölümü kullanılır.
globalDefaultCaseSensitive (İsteğe bağlı) Beceri için varsayılan büyük/küçük harfe duyarlı değer. Bir varlığın değeri belirtilmezse defaultCaseSensitive , bu değer söz konusu varlığın defaultCaseSensitive değeri olur.
globalDefaultAccentSensitive (İsteğe bağlı) Beceri için varsayılan vurguya duyarlı değer. Bir varlığın değeri belirtilmezse defaultAccentSensitive , bu değer söz konusu varlığın defaultAccentSensitive değeri olur.
globalDefaultFuzzyEditDistance (İsteğe bağlı) Beceri için varsayılan benzer düzenleme uzaklığı değeri. Bir varlığın değeri belirtilmezse defaultFuzzyEditDistance , bu değer söz konusu varlığın defaultFuzzyEditDistance değeri olur.

Beceri girişleri

Giriş adı Açıklama
text Analiz için metin.
languageCode isteğe bağlı. Varsayılan "en" değeridir.

Beceri çıkışları

Çıkış adı Açıklama
entities Aşağıdaki alanları içeren karmaşık tür dizisi:
  • "name": Üst düzey varlık; "normalleştirilmiş" formu temsil eder.
  • "id": "Özel Varlık Tanımı"nda tanımlanan varlık için benzersiz tanımlayıcı.
  • "description": Kullanıcı tarafından "Özel Varlık Tanımı Biçimi" içinde tanımlanan varlık açıklaması.
  • "type": Kullanıcı tarafından "Özel Varlık Tanımı Biçimi" içinde tanımlanan varlık türü.
  • "subtype": Kullanıcı tarafından "Özel Varlık Tanımı Biçimi" içinde tanımlanan varlık alt türü.
  • "matches": Şu karmaşık türlerden oluşan bir dizi:
    • "text" kaynak belgeden
    • "offset" eşleşmenin bulunduğu konum,
    • "length" karakterle ölçülen metnin
    • "matchDistance" veya eşleşme ile varlığı "name"arasında farklılık gösteren karakter sayısı.

Özel varlık tanımı biçimi

Özel Varlık Arama becerisine özel varlıkların listesini sağlamaya yönelik üç yaklaşım vardır:

  • . CSV dosyası (UTF-8 kodlanmış)
  • . JSON dosyası (UTF-8 kodlanmış)
  • Beceri tanımı içinde satır içi

Tanım dosyası bir içindeyse. CSV veya . JSON dosyası, "entitiesDefinitionUri" parametresinde tam yolu sağlayın. Dosya, her dizin oluşturucu çalıştırmasının başlangıcında indirilir. Dizin oluşturucu durdurulana kadar erişilebilir durumda kalmalıdır.

Satır içi bir tanım kullanıyorsanız, bunu "inlineEntitiesDefinition" beceri parametresi altında belirtin.

Not

Dizin oluşturucular JSON ve CSV dosyaları için özelleştirilmiş ayrıştırma modlarını destekler. Özel varlık arama becerisini kullanırken , "parsingMode" değerini "default" olarak ayarlayın. Beceri JSON ve CSV'yi ayrıştırılmamış durumda bekler.

CSV biçimi

Virgülle Ayrılmış Değer (CSV) dosyasında aranacak özel varlıkların tanımını sağlamak için dosyanın yolunu sağlayabilir ve bunu "entitiesDefinitionUri" beceri parametresinde ayarlayabilirsiniz. Yol bir https konumunda olmalıdır. Tanım dosyasının boyutu 10 MB'a kadar olabilir.

CSV biçimi basittir. Her satır aşağıda gösterildiği gibi benzersiz bir varlığı temsil eder:

Bill Gates, BillG, William H. Gates
Microsoft, MSFT
Satya Nadella 

Bu durumda, döndürülebilecek üç varlık vardır (Bill Gates, Satya Nadella, Microsoft). Diğer adlar ana varlığı takip eder. Diğer addaki eşleşme birincil varlık altında paketlenir. Örneğin, bir belgede "William H. Gates" dizesi bulunursa, "Bill Gates" varlığı için bir eşleşme döndürülür.

JSON biçimi

JSON dosyasında aranacak özel varlıkların tanımını da sağlayabilirsiniz. JSON biçimi, terim başına eşleşen kurallar tanımlamanıza olanak tanıdığından size biraz daha fazla esneklik sağlar. Örneğin, her terim için benzer eşleşme uzaklığı (Damerau-Levenshtein uzaklığı) veya eşleşmenin büyük/küçük harfe duyarlı olup olmaması gerektiğini belirtebilirsiniz.

CSV dosyalarında olduğu gibi JSON dosyasının yolunu sağlamanız ve bunu "entitiesDefinitionUri" beceri parametresinde ayarlamanız gerekir. Yol bir https konumunda olmalıdır. Tanım dosyasının boyutu 10 MB'a kadar olabilir.

En temel JSON özel varlık listesi tanımı, eşleştirilecek varlıkların listesi olabilir:

[ 
    { 
        "name" : "Bill Gates"
    }, 
    { 
        "name" : "Microsoft"
    }, 
    { 
        "name" : "Satya Nadella"
    }
]

Daha karmaşık tanımlar kullanıcı tanımlı kimlik, açıklama, tür, alt tür ve diğer adlar sağlayabilir. Diğer ad terimi eşleşirse varlık da döndürülür:

[ 
    { 
        "name" : "Bill Gates",
        "description" : "Microsoft founder." ,
        "aliases" : [ 
            { "text" : "William H. Gates", "caseSensitive" : false },
            { "text" : "BillG", "caseSensitive" : true }
        ]
    }, 
    { 
        "name" : "Xbox One", 
        "type": "Hardware",
        "subtype" : "Gaming Device",
        "id" : "4e36bf9d-5550-4396-8647-8e43d7564a76",
        "description" : "The Xbox One product"
    }, 
    { 
        "name" : "LinkedIn" , 
        "description" : "The LinkedIn company", 
        "id" : "differentIdentifyingScheme123", 
        "fuzzyEditDistance" : 0 
    }, 
    { 
        "name" : "Microsoft" , 
        "description" : "Microsoft Corporation", 
        "id" : "differentIdentifyingScheme987", 
        "defaultCaseSensitive" : false, 
        "defaultFuzzyEditDistance" : 1, 
        "aliases" : [ 
            { "text" : "MSFT", "caseSensitive" : true }
        ]
    } 
] 

Aşağıdaki tablolarda, özel varlıkları tanımlarken ayarlayabileceğiniz yapılandırma parametreleri açıklanmaktadır:

Alan adı Açıklama
name Üst düzey varlık tanımlayıcısı. Beceri çıkışındaki eşleşmeler bu ada göre gruplandırılır ve bulunan metnin "normalleştirilmiş" biçimini temsil etmelidir.
description (İsteğe bağlı) Bu alan, eşleşen metinler hakkında özel meta veriler için geçiş olarak kullanılabilir. Bu alanın değeri, beceri çıkışındaki varlığının her eşleşmesiyle birlikte görünür.
type (İsteğe bağlı) Bu alan, eşleşen metinler hakkında özel meta veriler için geçiş olarak kullanılabilir. Bu alanın değeri, beceri çıkışındaki varlığının her eşleşmesiyle birlikte görünür.
subtype (İsteğe bağlı) Bu alan, eşleşen metinler hakkında özel meta veriler için geçiş olarak kullanılabilir. Bu alanın değeri, beceri çıkışındaki varlığının her eşleşmesiyle birlikte görünür.
id (İsteğe bağlı) Bu alan, eşleşen metinler hakkında özel meta veriler için geçiş olarak kullanılabilir. Bu alanın değeri, beceri çıkışındaki varlığının her eşleşmesiyle birlikte görünür.
caseSensitive (İsteğe bağlı) Varsayılan değer false'tur. Varlık adıyla karşılaştırmaların karakter büyük/küçük harfe duyarlı olup olmayacağını belirten Boole değeri. "Microsoft"un örnek büyük/küçük harfe duyarsız eşleşmeleri şöyle olabilir: microsoft, microSoft, MICROSOFT
accentSensitive (İsteğe bağlı) Varsayılan değer false'tur. 'é' ve 'e' gibi aksanlı ve hoş olmayan harflerin aynı olup olmadığını belirten Boole değeri.
fuzzyEditDistance (İsteğe bağlı) Varsayılan değer 0'dır. En fazla 5 değeri. Varlık adıyla eşleşmeyi yine de oluşturabilecek kabul edilebilir sayıda farklı karakteri belirtir. Herhangi bir eşleşme için mümkün olan en küçük bulanıklık döndürülür. Örneğin, düzenleme uzaklığı 3 olarak ayarlanırsa, "Windows 10" yine de "Windows", "Windows10" ve "windows 7" ile eşleşir.
Büyük/küçük harf duyarlılığı false olarak ayarlandığında, büyük/küçük harf farklılıkları, bulanıklık toleransı için SAYILMAZ, aksi takdirde geçerli olur.
defaultCaseSensitive (İsteğe bağlı) Bu varlık için varsayılan büyük/küçük harf duyarlılığı değerini değiştirir. Tüm diğer adların varsayılan değerini değiştirmek için kullanılabilir caseSensitive değerleri.
defaultAccentSensitive (İsteğe bağlı) Bu varlık için varsayılan vurgu duyarlılığı değerini değiştirir. Tüm diğer adların varsayılan değerini değiştirmek için kullanılabilir accentSensitive değerleri.
defaultFuzzyEditDistance (İsteğe bağlı) Bu varlık için varsayılan benzer düzenleme uzaklığı değerini değiştirir. Tüm diğer adların varsayılan değerini değiştirmek için kullanılabilir fuzzyEditDistance değerleri.
aliases (İsteğe bağlı) Kök varlık adıyla alternatif yazım veya eş anlamlılar belirtmek için kullanılabilecek karmaşık nesneler dizisi.
Diğer ad özellikleri Açıklama
text Bazı hedef varlık adlarının alternatif yazım veya gösterimi.
caseSensitive (İsteğe bağlı) Yukarıdaki "caseSensitive" kök varlığı parametresiyle aynı işlevi görür, ancak yalnızca bu diğer ad için geçerlidir.
accentSensitive (İsteğe bağlı) Yukarıdaki kök varlık "accentSensitive" parametresiyle aynı işlevi görür, ancak yalnızca bu diğer ad için geçerlidir.
fuzzyEditDistance (İsteğe bağlı) Yukarıdaki "fuzzyEditDistance" kök varlığı parametresiyle aynı işlevi görür, ancak yalnızca bu diğer ad için geçerlidir.

Satır içi biçim

Bazı durumlarda, özel varlık tanımını eklemek daha kullanışlı olabilir, böylece beceri tanımıyla satır içi olarak. Beceri tanımına dahil olması dışında, yukarıda açıklananla aynı JSON biçimini kullanabilirsiniz. Yalnızca boyutu 10 KB'ın altında olan yapılandırmalar (serileştirilmiş boyut) satır içinde tanımlanabilir.

Örnek beceri tanımı

Satır içi biçim kullanan örnek beceri tanımı aşağıda gösterilmiştir:

  {
    "@odata.type": "#Microsoft.Skills.Text.CustomEntityLookupSkill",
    "context": "/document",
    "inlineEntitiesDefinition": 
    [
      { 
        "name" : "Bill Gates",
        "description" : "Microsoft founder." ,
        "aliases" : [ 
            { "text" : "William H. Gates", "caseSensitive" : false },
            { "text" : "BillG", "caseSensitive" : true }
        ]
      }, 
      { 
        "name" : "Xbox One", 
        "type": "Hardware",
        "subtype" : "Gaming Device",
        "id" : "4e36bf9d-5550-4396-8647-8e43d7564a76",
        "description" : "The Xbox One product"
      }
    ],    
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "entities",
        "targetName": "matchedEntities"
      }
    ]
  }

Alternatif olarak, dış varlıklar tanım dosyasını işaret edebilirsiniz. Biçimi kullanan entitiesDefinitionUri örnek beceri tanımı aşağıda gösterilmiştir:

  {
    "@odata.type": "#Microsoft.Skills.Text.CustomEntityLookupSkill",
    "context": "/document",
    "entitiesDefinitionUri": "https://myblobhost.net/keyWordsConfig.csv",    
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "entities",
        "targetName": "matchedEntities"
      }
    ]
  }

Örnek dizin tanımı

Bu bölüm örnek bir dizin tanımı sağlar. Hem "varlıklar" hem de "eşleşmeler" karmaşık tür dizileridir. Belge başına birden çok varlığınız ve her varlık için birden çok eşleşmeniz olabilir.

{
  "name": "entities",
  "type": "Collection(Edm.ComplexType)",
  "fields": [
    {
      "name": "name",
      "type": "Edm.String",
      "facetable": false,
      "filterable": false,
      "retrievable": true,
      "searchable": true,
      "sortable": false,
    },
    {
      "name": "id",
      "type": "Edm.String",
      "facetable": false,
      "filterable": false,
      "retrievable": true,
      "searchable": false,
      "sortable": false,
    },
    {
      "name": "description",
      "type": "Edm.String",
      "facetable": false,
      "filterable": false,
      "retrievable": true,
      "searchable": true,
      "sortable": false,
    },
    {
      "name": "type",
      "type": "Edm.String",
      "facetable": true,
      "filterable": true,
      "retrievable": true,
      "searchable": false,
      "sortable": false,
    },
    {
      "name": "subtype",
      "type": "Edm.String",
      "facetable": true,
      "filterable": true,
      "retrievable": true,
      "searchable": false,
      "sortable": false,
    },
    {
      "name": "matches",
      "type": "Collection(Edm.ComplexType)",
      "fields": [
        {
          "name": "text",
          "type": "Edm.String",
          "facetable": false,
          "filterable": false,
          "retrievable": true,
          "searchable": true,
          "sortable": false,
        },
        {
          "name": "offset",
          "type": "Edm.Int32",
          "facetable": true,
          "filterable": true,
          "retrievable": true,
          "sortable": false,
        },
        {
          "name": "length",
          "type": "Edm.Int32",
          "facetable": true,
          "filterable": true,
          "retrievable": true,
          "sortable": false,
        },
        {
          "name": "matchDistance",
          "type": "Edm.Double",
          "facetable": true,
          "filterable": true,
          "retrievable": true,
          "sortable": false,
        }
      ]
    }
  ]
}

Örnek girişi verileri

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "The company, Microsoft, was founded by Bill Gates. Microsoft's gaming console is called Xbox",
             "languageCode": "en"
           }
      }
    ]
}

Örnek çıktı

  { 
    "values" : 
    [ 
      { 
        "recordId": "1", 
        "data" : { 
          "entities": [
            { 
              "name" : "Microsoft", 
              "description" : "This document refers to Microsoft the company", 
              "id" : "differentIdentifyingScheme987", 
              "matches" : [ 
                { 
                  "text" : "microsoft", 
                  "offset" : 13, 
                  "length" : 9, 
                  "matchDistance" : 0 
                }, 
                { 
                  "text" : "Microsoft",
                  "offset" : 49, 
                  "length" : 9, 
                  "matchDistance" : 0
                }
              ] 
            },
            { 
              "name" : "Bill Gates",
              "description" : "William Henry Gates III, founder of Microsoft.", 
              "matches" : [
                { 
                  "text" : "Bill Gates",
                  "offset" : 37, 
                  "length" : 10,
                  "matchDistance" : 0 
                }
              ]
            }
          ] 
        } 
      } 
    ] 
  } 

Uyarılar

"Reached maximum capacity for matches, skipping all further duplicate matches."

Algılanan eşleşme sayısı izin verilen en yüksek değerden büyükse bu uyarı gönderilir. Başka yinelenen eşleşme döndürülmeyecek. Daha yüksek bir eşiğe ihtiyacınız varsa, bireysel kullanım örneğinizle ilgili yardım için bir destek bileti oluşturabilirsiniz.

Ayrıca bkz.