Udostępnij za pośrednictwem


Kontekst umiejętności i język adnotacji wejściowych

Ten artykuł zawiera dokumentację referencyjną dotyczącą kontekstu umiejętności i składni danych wejściowych. Jest to pełny opis języka wyrażeń używany do konstruowania ścieżek do węzłów w wzbogaconym dokumencie.

Umiejętności usługi Azure AI Search mogą używać i wzbogacać dane pochodzące ze źródła danych oraz z danych wyjściowych innych umiejętności. Zestaw roboczy danych reprezentujący bieżący stan pracy indeksatora dla bieżącego dokumentu rozpoczyna się od danych pierwotnych pochodzących ze źródła danych i jest stopniowo wzbogacony o dane wyjściowe każdej iteracji umiejętności. Dane te są wewnętrznie zorganizowane w strukturze podobnej do drzewa, która może być używana jako dane wejściowe umiejętności lub do dodania do indeksu. Węzły w drzewie mogą być prostymi wartościami, takimi jak ciągi i liczby, tablice lub złożone obiekty, a nawet pliki binarne. Nawet proste wartości można wzbogacić o dodatkowe informacje ustrukturyzowane. Na przykład ciąg może być oznaczony adnotacjami z dodatkowymi informacjami przechowywanymi pod nim w drzewie wzbogacania. Wyrażenia używane do wykonywania zapytań dotyczących tej struktury wewnętrznej korzystają z rozbudowanej składni, która jest szczegółowa w tym artykule. Wzbogaconą strukturę danych można sprawdzić z sesji debugowania. Wyrażenia, które wysyłają zapytania dotyczące struktury, mogą być również testowane na podstawie sesji debugowania.

W tym artykule użyjemy następujących wzbogaconych danych jako przykładu. Te dane są typowe dla rodzaju struktury, którą można uzyskać podczas wzbogacania dokumentu przy użyciu zestawu umiejętności z rozpoznawaniem znaków OCR, wyodrębniania kluczowych fraz, tłumaczenia tekstu, wykrywania języka i umiejętności rozpoznawania jednostek, a także umiejętności niestandardowego tokenizatora.

Ścieżka Wartość
document
merged_content "Badanie BMN 110 u pacjentów pediatrycznych"...
  keyphrases
   [0] "Badanie BMN"
   [1] "Zespół"
   [2] "Pacjenci pediatryczni"
   ...
  locations
   [0] "IVA"
  translated_text "Étude de BMN 110 pacjenta les pacjenci pédiatriques"...
  entities
   [0]
    category "Organizacja"
    subcategory null
    confidenceScore 0,72
    length 3
    offset 9
    text "BMN"
   ...
  organizations
   [0] "BMN"
  language "en"
normalized_images
  [0]
   layoutText ...
   text
    words
     [0] "Badanie"
     [1] "of"
     [2] "BMN"
     [3] "110"
     ...
  [1]
   layoutText ...
   text
    words
     [0] "it"
     [1] "is"
     [2] "z pewnością"
     ...
    ...
  ...

Katalog główny dokumentu

Wszystkie dane są pod jednym elementem głównym, dla którego ścieżka to "/document". Element główny jest domyślnym kontekstem umiejętności.

Proste ścieżki

Proste ścieżki za pośrednictwem wewnętrznego wzbogaconego dokumentu można wyrazić za pomocą prostych tokenów oddzielonych ukośnikami. Ta składnia jest podobna do specyfikacji wskaźnika JSON.

Właściwości obiektu

Właściwości węzłów reprezentujących obiekty dodają swoje wartości do drzewa pod nazwą właściwości. Te wartości można uzyskać, dołączając nazwę właściwości jako token oddzielony ukośnikiem:

Wyrażenie Wartość
/document/merged_content/language "en"

W tokenach nazw właściwości uwzględniana jest wielkość liter.

Indeks elementu tablicy

Do określonych elementów tablicy można odwoływać się przy użyciu ich indeksu liczbowego, takiego jak nazwa właściwości:

Wyrażenie Wartość
/document/merged_content/keyphrases/1 "Syndrome"
/document/merged_content/entities/0/text "BMN"

Sekwencje ucieczki

Istnieją dwa znaki, które mają specjalne znaczenie i muszą zostać uniknięci, jeśli pojawiają się w wyrażeniu i muszą być interpretowane jako zamiast jako ich specjalne znaczenie: '/' i '~'. Znaki te muszą być odpowiednio ucieczki jako '~0' i '~1'.

Wyliczenie tablicy

Tablicę wartości można uzyskać przy użyciu tokenu '*' :

Wyrażenie Wartość
/document/normalized_images/0/text/words/* ["Study", "of", "BMN", "110" ...]

Token '*' nie musi znajdować się na końcu ścieżki. Można wyliczyć wszystkie węzły pasujące do ścieżki gwiazdką w środku lub z wieloma gwiazdami:

Wyrażenie Wartość
/document/normalized_images/*/text/words/* ["Study", "of", "BMN", "110" ... "it", "is", "certainly" ...]

Ten przykład zwraca płaską listę wszystkich pasujących węzłów.

Istnieje możliwość zachowania większej struktury i uzyskania oddzielnej tablicy dla wyrazów każdej strony przy użyciu '#' tokenu zamiast drugiego '*' tokenu:

Wyrażenie Wartość
/document/normalized_images/*/text/words/# [["Study", "of", "BMN", "110" ...], ["it", "is", "certainly" ...] ...]

Token wyraża, że tablica '#' powinna być traktowana jako pojedyncza wartość zamiast wyliczania.

Wyliczanie tablic w kontekście

Często przydaje się przetwarzanie każdego elementu tablicy w izolacji i posiadanie innego zestawu danych wejściowych i wyjściowych umiejętności dla każdego z nich. Można to zrobić, ustawiając kontekst umiejętności na wyliczenie zamiast domyślnego "/document".

W poniższym przykładzie użyto jednego z wyrażeń wejściowych użytych wcześniej, ale z innym kontekstem, który zmienia wynikową wartość.

Kontekst Wyrażenie Wartości
/document/normalized_images/* /document/normalized_images/*/text/words/* ["Study", "of", "BMN", "110" ...]
["it", "is", "certainly" ...]
...

W przypadku tej kombinacji kontekstu i danych wejściowych umiejętności są wykonywane raz dla każdego znormalizowanego obrazu: raz dla "/document/normalized_images/0" i raz dla elementu "/document/normalized_images/1". Dwie wartości wejściowe odpowiadające każdemu wykonaniu umiejętności są szczegółowo opisane w kolumnie wartości.

Podczas wyliczania tablicy w kontekście wszystkie dane wyjściowe generowane przez umiejętności zostaną również dodane do dokumentu jako wzbogacanie kontekstu. W powyższym przykładzie dane wyjściowe o nazwie "out" mają swoje wartości dla każdego wykonania dodanego do dokumentu odpowiednio w obszarze "/document/normalized_images/0/out" i "/document/normalized_images/1/out".

Wartości literału

Dane wejściowe umiejętności mogą przyjmować wartości literału jako dane wejściowe zamiast wartości dynamicznych, których dotyczy zapytanie z istniejącego dokumentu. Można to osiągnąć przez prefiks wartości z znakiem równości. Wartości mogą być liczbami, ciągami lub wartościami logicznymi. Wartości ciągów można ująć w cudzysłów pojedynczych ' lub podwójnych " .

Wyrażenie Wartość
=42 42
=2.45E-4 0.000245
="some string" "some string"
='some other string' "some other string"
="unicod\u0065" "unicode"
=false false

W tablicach liniowych

Jeśli określone dane wejściowe umiejętności wymagają tablicy danych, ale dane są obecnie reprezentowane jako pojedyncza wartość lub musisz połączyć wiele różnych pojedynczych wartości w polu tablicy, możesz utworzyć wartość tablicy w tekście jako część wyrażenia wejściowego umiejętności, opakowując rozdzielaną przecinkami listę w nawiasach kwadratowych ([ i ]). Wartość tablicy może być kombinacją ścieżek wyrażeń lub wartości literałów zgodnie z potrzebami. W ten sposób można również tworzyć zagnieżdżone tablice w tablicach.

Wyrażenie Wartość
=['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", "Zespół"]]

Jeśli umiejętność ma kontekst wyjaśniający uruchamianie umiejętności dla danych wejściowych tablicy (czyli jak oznacza, że "context": "/document/pages/*" umiejętność jest uruchamiana raz na "stronę" w pages), następnie przekazanie tej wartości jako wyrażenia jako danych wejściowych do tablicy liniowej używa jednej z tych wartości w danym momencie.

Na przykład z naszymi przykładowymi wzbogaconymi danymi, jeśli twoja umiejętność context to /document/merged_content/keyphrases/* , a następnie utworzysz tablicę wbudowanych poniższych =['key phrase', $(/document/merged_content/keyphrases/*)] danych na podstawie danych wejściowych tej umiejętności, następnie umiejętności są wykonywane trzy razy, raz z wartością ["frazy kluczowej", "Badanie BMN"], inną z wartością ["fraza kluczowa", "Zespół"], a na koniec z wartością ["fraza kluczowa", "Pacjenci pediatryczni"]. Wartość literału "fraza kluczowa" pozostaje taka sama za każdym razem, ale wartość ścieżki wyrażenia zmienia się wraz z każdym wykonaniem umiejętności.

Wyrażenia złożone

Istnieje możliwość łączenia wartości ze sobą przy użyciu jednoargumentowych, binarnych iternarnych operatorów. Operatory mogą łączyć wartości literałów i wartości wynikające z oceny ścieżki. W przypadku użycia wewnątrz wyrażenia ścieżki powinny być ujęte między "$(" i ")".

Wartość logiczna nie '!'

Wyrażenie Wartość
=!false true

Minus '-'

Wyrażenie Wartość
=-42 -42
=-$(/document/merged_content/entities/0/offset) -9

Dodatek '+'

Wyrażenie Wartość
=2+2 4
=2+$(/document/merged_content/entities/0/offset) 11

Odejmowanie '-'

Wyrażenie Wartość
=2-1 1
=$(/document/merged_content/entities/0/offset)-2 7

Mnożenie '*'

Wyrażenie Wartość
=2*3 6
=$(/document/merged_content/entities/0/offset)*2 18

Dzielenie '/'

Wyrażenie Wartość
=3/2 1.5
=$(/document/merged_content/entities/0/offset)/3 3

Modulo '%'

Wyrażenie Wartość
=15%4 3
=$(/document/merged_content/entities/0/offset)%2 1

Mniejsze niż, mniejsze lub równe, większe niż i większe lub równe '<' '<=' '>' '>='

Wyrażenie Wartość
=15<4 false
=4<=4 true
=15>4 true
=1>=2 false

Równość i nierówność '==' '!='

Wyrażenie Wartość
=15==4 false
=4==4 true
=15!=4 true
=1!=1 false

Operacje logiczne i, lub wyłącznie lub '&&' '||' '^'

Wyrażenie Wartość
=true&&true true
=true&&false false
=true||true true
=true||false true
=false||false false
=true^false true
=true^true false

Operator Ternary '?:'

Istnieje możliwość nadania danych wejściowych różnych wartości na podstawie oceny wyrażenia logicznego przy użyciu operatoraternary.

Wyrażenie Wartość
=true?"true":"false" "true"
=$(/document/merged_content/entities/0/offset)==9?"nine":"not nine" "nine"

Nawiasy i priorytet operatora

Operatory są oceniane przy użyciu priorytetów, które pasują do zwykłych konwencji: operatorów jednoargumentowych, a następnie mnożenia, dzielenia i modulo, a następnie dodawania i odejmowania, a następnie porównywania, równości, a następnie operatorów logicznych. Stosowane są również zwykłe reguły kojarzenia.

Nawiasy mogą służyć do zmiany lub uściślania kolejności oceny.

Wyrażenie Wartość
=3*2+5 11
=3*(2+5) 21

Zobacz też