Beceri bağlamı ve giriş ek açıklama dili

Bu makale, beceri bağlamı ve giriş söz dizimine yönelik başvuru belgeleridir. Zenginleştirilmiş bir belgedeki düğümlerin yollarını oluşturmak için kullanılan ifade dilinin tam açıklamasıdır.

Azure Yapay Zeka Arama becerileri, veri kaynağından ve diğer becerilerin çıkışından gelen verileri kullanabilir ve zenginleştirebilir. Geçerli belge için dizin oluşturucu çalışmasının geçerli durumunu temsil eden veri çalışma kümesi, veri kaynağından gelen ham verilerden başlar ve her beceri yinelemesinin çıkış verileriyle aşamalı olarak zenginleştirilmiştir. Bu veriler, beceri girişi olarak kullanılmak veya dizine eklemek için sorgulanabilen ağaç benzeri bir yapıda dahili olarak düzenlenir. Ağaçtaki düğümler dizeler ve sayılar, diziler veya karmaşık nesneler ve hatta ikili dosyalar gibi basit değerler olabilir. Basit değerler bile ek yapılandırılmış bilgilerle zenginleştirilebilir. Örneğin, bir dizenin altına zenginleştirme ağacında depolanan ek bilgilerle ek açıklama eklenebilir. Bu iç yapıyı sorgulamak için kullanılan ifadeler, bu makalede ayrıntılı olarak yer alan zengin bir söz dizimi kullanır. Zenginleştirilmiş veri yapısı hata ayıklama oturumlarından incelenebilir. Yapıyı sorgulayan ifadeler hata ayıklama oturumlarından da test edilebilir.

Makale boyunca örnek olarak aşağıdaki zenginleştirilmiş verileri kullanacağız. Bu veriler, OCR, anahtar ifade ayıklama, metin çevirisi, dil algılama, varlık tanıma becerileri ve özel belirteç oluşturucu becerisi ile bir beceri kümesi kullanarak belgeyi zenginleştirirken elde edeceğiniz yapı türüne özgüdür.

Path Değer
document
merged_content "Pediatrik Hastalarda BMN 110 Çalışması"...
  keyphrases
   [0] "BMN çalışması"
   [1] "Sendrom"
   [2] "Pediatrik Hastalar"
   ...
  locations
   [0] "IVA"
  translated_text "Étude de BMN 110 chez les patients pédiatriques"...
  entities
   [0]
    category "Kuruluş"
    subcategory null
    confidenceScore 0,72
    length 3
    offset 9
    text "BMN"
   ...
  organizations
   [0] "BMN"
  language "en"
normalized_images
  [0]
   layoutText ...
   text
    words
     [0] "Çalışma"
     [1] "of"
     [2] "BMN"
     [3] "110"
     ...
  [1]
   layoutText ...
   text
    words
     [0] "it"
     [1] "is"
     [2] "kesinlikle"
     ...
    ...
  ...

Belge kökü

Tüm veriler, yolu olan bir kök öğenin altındadır "/document". Kök öğesi, becerilerin varsayılan bağlamıdır.

Basit yollar

İç zenginleştirilmiş belgedeki basit yollar, eğik çizgilerle ayrılmış basit belirteçlerle ifade edilebilir. Bu söz dizimi JSON İşaretçisi belirtimine benzer.

Nesne özellikleri

Nesneleri temsil eden düğümlerin özellikleri, değerlerini özelliğin adının altındaki ağaca ekler. Bu değerler, özellik adı eğik çizgiyle ayrılmış bir belirteç olarak eklenerek elde edilebilir:

Expression Değer
/document/merged_content/language "en"

Özellik adı belirteçleri büyük/küçük harfe duyarlıdır.

Dizi öğesi dizini

Bir dizinin belirli öğelerine, bir özellik adı gibi sayısal dizinleri kullanılarak başvurulabilir:

Expression Değer
/document/merged_content/keyphrases/1 "Syndrome"
/document/merged_content/entities/0/text "BMN"

Çıkış sıraları

Özel anlamı olan ve bir ifadede göründüklerinde kaçışları gereken ve özel anlamları yerine olduğu gibi yorumlanması gereken iki karakter vardır: '/' ve '~'. Bu karakterlerin sırasıyla ve '~1'olarak '~0' kaçış karakterine sahip olması gerekir.

Dizi numaralandırması

Belirteç kullanılarak '*' bir değer dizisi elde edilebilir:

Expression Değer
/document/normalized_images/0/text/words/* ["Study", "of", "BMN", "110" ...]

'*' Belirtecin yolun sonunda olması gerekmez. Bir yolla eşleşen tüm düğümleri ortada bir yıldızla veya birden çok yıldızla numaralandırmak mümkündür:

Expression Değer
/document/normalized_images/*/text/words/* ["Study", "of", "BMN", "110" ... "it", "is", "certainly" ...]

Bu örnek, eşleşen tüm düğümlerin düz bir listesini döndürür.

İkinci '*' belirteç yerine bir belirteç kullanarak daha fazla yapı korumak ve her sayfanın sözcükleri için ayrı bir '#' dizi almak mümkündür:

Expression Değer
/document/normalized_images/*/text/words/# [["Study", "of", "BMN", "110" ...], ["it", "is", "certainly" ...] ...]

Belirteç, '#' dizinin numaralandırılmak yerine tek bir değer olarak ele alınması gerektiğini ifade eder.

Bağlam içinde dizileri numaralandırma

Bir dizinin her öğesini yalıtarak işlemek ve her biri için farklı bir beceri giriş ve çıkış kümesine sahip olmak genellikle yararlıdır. Bu, beceri bağlamını varsayılan "/document"yerine bir sabit listesi olarak ayarlayarak yapılabilir.

Aşağıdaki örnekte, daha önce kullandığımız giriş ifadelerinden birini, ancak sonuçta elde edilen değeri değiştiren farklı bir bağlamla kullanırız.

Bağlam Expression Değerler
/document/normalized_images/* /document/normalized_images/*/text/words/* ["Study", "of", "BMN", "110" ...]
["it", "is", "certainly" ...]
...

Bağlam ve girişin bu birleşimi için, beceri her normalleştirilmiş görüntü için bir kez yürütülür: için "/document/normalized_images/0" bir kez ve için "/document/normalized_images/1"bir kez. Her beceri yürütmesine karşılık gelen iki giriş değeri değerler sütununda ayrıntılı olarak gösterilir.

Bağlam içinde bir dizi numaralandırılırken, becerinin ürettiği tüm çıkışlar da bağlamın zenginleştirmeleri olarak belgeye eklenir. Yukarıdaki örnekte, adlı "out" bir çıktının her yürütme için değerleri ve altında "/document/normalized_images/0/out""/document/normalized_images/1/out"sırasıyla belgeye eklenir.

Değişmez değerler

Beceri girişleri, var olan belgeden sorgulanan dinamik değerler yerine giriş olarak değişmez değerleri alabilir. Bu, değerin önüne eşittir işareti eklenerek elde edilebilir. Değerler sayı, dize veya Boole olabilir. Dize değerleri tek ' veya çift " tırnak içine alınabilir.

Expression Değer
=42 42
=2.45E-4 0.000245
="some string" "some string"
='some other string' "some other string"
="unicod\u0065" "unicode"
=false false

Bileşik ifadeler

Birli, ikili ve üçüncül işleçler kullanarak değerleri bir araya getirmek mümkündür. İşleçler, yol değerlendirmesi sonucunda elde edilen değişmez değerleri ve değerleri birleştirebilir. bir ifade içinde kullanıldığında yollar ile ")"arasına "$(" alınmalıdır.

Boole değeri değil '!'

Expression Değer
=!false true

Negatif '-'

Expression Değer
=-42 -42
=-$(/document/merged_content/entities/0/offset) -9

Ek '+'

Expression Değer
=2+2 4
=2+$(/document/merged_content/entities/0/offset) 11

Çıkarma '-'

Expression Değer
=2-1 1
=$(/document/merged_content/entities/0/offset)-2 7

Çarpma '*'

Expression Değer
=2*3 6
=$(/document/merged_content/entities/0/offset)*2 18

Bölümü '/'

Expression Değer
=3/2 1.5
=$(/document/merged_content/entities/0/offset)/3 3

Modül '%'

Expression Değer
=15%4 3
=$(/document/merged_content/entities/0/offset)%2 1

Küçüktür, küçüktür veya eşittir, büyüktür ve büyüktür veya eşittir '<''<=''>''>='

Expression Değer
=15<4 false
=4<=4 true
=15>4 true
=1>=2 false

Eşitlik ve eşitlik dışı '==''!='

Expression Değer
=15==4 false
=4==4 true
=15!=4 true
=1!=1 false

Mantıksal işlemler ve veya ve özel veya '&&''||''^'

Expression Değer
=true&&true true
=true&&false false
=true||true true
=true||false true
=false||false false
=true^false true
=true^true false

Üçüncül işleç '?:'

Üçüncül işlecini kullanarak boole ifadesinin değerlendirmesine göre girişe farklı değerler vermek mümkündür.

Expression Değer
=true?"true":"false" "true"
=$(/document/merged_content/entities/0/offset)==9?"nine":"not nine" "nine"

Parantezler ve işleç önceliği

İşleçler, her zamanki kurallarla eşleşen önceliklerle değerlendirilir: birli işleçler, sonra çarpma, bölme ve modül, sonra toplama ve çıkarma, karşılaştırma, sonra eşitlik ve mantıksal işleçler. Her zamanki ilişkilendirme kuralları da geçerlidir.

Değerlendirme sırasını değiştirmek veya kesinleştirmek için parantezler kullanılabilir.

Expression Değer
=3*2+5 11
=3*(2+5) 21

Ayrıca bkz.