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 ve varlık tanıma becerilerinin yanı sıra özel belirteç oluşturucu becerisi ile bir beceri kümesi kullanarak belgeyi zenginleştirirken elde edeceğiniz yapı türüne özgüdür.
Yol | 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 çıkış, ve altında "/document/normalized_images/0/out"
"/document/normalized_images/1/out"
sırasıyla belgeye eklenen her yürütme için kendi değerlerine sahiptir.
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 |
Satır dizilerinde
Belirli bir beceri girişi bir veri dizisi gerektiriyorsa, ancak veriler şu anda tek bir değer olarak gösteriliyorsa veya birden çok farklı tek değeri bir dizi alanında birleştirmeniz gerekiyorsa, köşeli ayraç ([
ve ]
) içinde virgülle ayrılmış ifade listesini kaydırarak bir beceri giriş ifadesinin parçası olarak satır içi bir dizi değeri oluşturabilirsiniz. Dizi değeri, gerektiğinde ifade yollarının veya değişmez değerlerin bir bileşimi olabilir. Diziler içinde bu şekilde iç içe diziler de oluşturabilirsiniz.
Expression | Değer |
---|---|
=['item'] |
["item"] |
=[$(/document/merged_content/entities/0/text), 'item'] |
["BMN", "item"] |
=[1, 3, 5] |
[1, 3, 5] |
=[true, true, false] |
[true, true, false] |
=[[$(/document/merged_content/entities/0/text), 'item'],['item2', $(/document/merged_content/keyphrases/1)]] |
[["BMN", "item"], ["item2", "Syndrome"]] |
Becerinin bir dizi girişi başına beceriyi çalıştırmayı açıklayan bir bağlamı varsa (yani, "context": "/document/pages/*"
becerinin içindeki "sayfa" pages
başına bir kez çalıştığı anlamına gelir), bu değeri satır dizisinde giriş olarak ifade olarak geçirmek aynı anda bu değerlerden birini kullanır.
Örnek zenginleştirilmiş verilerimizle ilgili bir örnek için, beceriniz varsa /document/merged_content/keyphrases/*
ve bu becerinin context
girişinde aşağıdakilerden =['key phrase', $(/document/merged_content/keyphrases/*)]
oluşan satır içi bir dizi oluşturursanız, beceri üç kez yürütülür ve bir kez ["anahtar ifade", "BMN'nin Çalışması"] değeriyle, diğeri ["anahtar ifade", "Sendrom"] değeriyle ve son olarak da ["anahtar ifade" değeriyle, "Pediatrik Hastalar"]. Değişmez değer "anahtar tümcecik" değeri her seferinde aynı kalır, ancak ifade yolunun değeri her beceri yürütmesinde değişir.
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 |
İlave '+'
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 yokluk '=='
'!='
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 |