Adatok átalakítása a tudástárba való kivetítéshez
Az Azure AI Searchben az "adatok alakítása" a tudástár munkafolyamatának egy olyan lépését ismerteti, amely az Azure Storage-ban táblákba, objektumokba és fájlokba kivetíteni kívánt tartalom adatmegjelenítőjét hozza létre.
A képességek végrehajtásakor a kimenetek egy csomópontok hierarchiájában lévő bővítőfára lesznek írva, és bár a bővítési fát teljes egészében szeretné megtekinteni és felhasználni, valószínűbb, hogy finomabb szemcseméretre lesz szüksége, és csomópontok részhalmazait hozza létre különböző forgatókönyvekhez, például a lefordított szöveghez vagy kinyert entitásokhoz kapcsolódó csomópontokat adott táblákba helyezi.
A bővítési fa önmagában nem tartalmaz olyan logikát, amely tájékoztatná a tartalmait egy tudástárban. Az adatalakzatok úgy töltik ki ezt a rést, hogy megadja az egyes táblákba, objektumokba és fájlvetítésekbe tartozó sémát. Az adatalakzatok egyéni definícióként vagy a bővített adatok nézeteként is felfoghatók. Tetszőleges számú alakzatot létrehozhat, majd hozzárendelheti őket egy tudásbázis-definícióban lévő kivetítésekhez.
Az alakzatok létrehozásának megközelítései
A bővített tartalmakat kétféleképpen alakíthatja úgy, hogy az egy tudástárba kivetíthető legyen:
A Shaper-képesség használatával csomópontokat hozhat létre egy kifejezetten kivetítéshez használt bővítőfán. A legtöbb képesség új tartalmat hoz létre. Ezzel szemben egy Shaper-képesség a meglévő csomópontokkal dolgozik, általában több csomópont egyetlen összetett objektumba való összevonásához. Ez olyan táblák esetében hasznos, amelyekben több csomópont kimenetét szeretné fizikailag kifejezni a tábla oszlopaiként.
Használjon beágyazott alakzatot a kivetítés definíciójában.
A Shaper-képesség használatával külsőleg is használhatóvá teszi az alakzatot, így több kivetítés vagy akár más képesség is használható. Azt is biztosítja, hogy a gazdagítási fa összes mutációja a képességen belül legyen, és hogy a kimenet egy újra felhasználható objektum legyen. Ezzel szemben a beágyazott formázással létrehozhatja a kívánt alakzatot, de névtelen objektum, és csak a definiált kivetítéshez érhető el.
A megközelítések együtt vagy külön is használhatók. Ez a cikk mindkettőt bemutatja: a táblavetítések Shaper-készségeit, valamint a táblázatvetítés kulcskifejezéseivel való beágyazott formázást.
Shaper-képesség használata
Az alakzatkezelő képességek általában egy képességkészlet végére kerülnek, így megtekintik azokat az adatokat, amelyeket át szeretne adni egy kivetítésnek. Ez a példa egy "tableprojection" nevű alakzatot hoz létre, amely a következő csomópontokat tartalmazza: "reviews_text", "reviews_title", "AzureSearch_DocumentKey" és hangulatpontszámokat és kulcskifejezéseket a lapszámozott véleményekből.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#5",
"description": null,
"context": "/document",
"inputs": [
{
"name": "reviews_text",
"source": "/document/reviews_text",
"sourceContext": null,
"inputs": []
},
{
"name": "reviews_title",
"source": "/document/reviews_title",
"sourceContext": null,
"inputs": []
},
{
"name": "AzureSearch_DocumentKey",
"source": "/document/AzureSearch_DocumentKey",
"sourceContext": null,
"inputs": []
},
{
"name": "pages",
"source": null,
"sourceContext": "/document/reviews_text/pages/*",
"inputs": [
{
"name": "Sentiment",
"source": "/document/reviews_text/pages/*/Sentiment",
"sourceContext": null,
"inputs": []
},
{
"name": "LanguageCode",
"source": "/document/Language",
"sourceContext": null,
"inputs": []
},
{
"name": "Page",
"source": "/document/reviews_text/pages/*",
"sourceContext": null,
"inputs": []
},
{
"name": "keyphrase",
"sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
"inputs": [
{
"source": "/document/reviews_text/pages/*/Keyphrases/*",
"name": "Keyphrases"
}
]
}
]
}
],
"outputs": [
{
"name": "output",
"targetName": "tableprojection"
}
]
}
SourceContext tulajdonság
Egy Shaper-képességen belül egy bemenetnek lehet eleme sourceContext
. Ugyanez a tulajdonság beágyazott alakzatokban is használható a kivetítésekben.
sourceContext
többszintű, beágyazott objektumok létrehozására szolgál egy bővítési folyamatban. Ha a bemenet más kontextusban van, mint a képességkörnyezet, használja a sourceContext parancsot. A sourceContext használatához meg kell határoznia egy beágyazott bemenetet, amelynek az adott elemét forrásként kezeli.
A fenti példában a hangulatelemzés és a kulcskifejezések kinyerése olyan szövegeken történt, amelyeket oldalakra osztottak a hatékonyabb elemzés érdekében. Feltéve, hogy a pontszámokat és kifejezéseket táblázatba szeretné vetíteni, a környezetet beágyazott bemenetre kell állítania, amely megadja a pontszámot és a kifejezést.
Alakzat kivetítése több táblába
tableprojection
A fenti szakaszban definiált outputs
csomóponttal a csomópont egyes részeit tableprojection
különálló, kapcsolódó táblákká szeletelheti:
"projections": [
{
"tables": [
{
"tableName": "hotelReviewsDocument",
"generatedKeyName": "Documentid",
"source": "/document/tableprojection"
},
{
"tableName": "hotelReviewsPages",
"generatedKeyName": "Pagesid",
"source": "/document/tableprojection/pages/*"
},
{
"tableName": "hotelReviewsKeyPhrases",
"generatedKeyName": "KeyPhrasesid",
"source": "/document/tableprojection/pages/*/keyphrase/*"
}
]
}
]
Beágyazott alakzat táblázatvetítésekhez
A beágyazott formázás az a képesség, hogy új alakzatokat alakítsunk ki magában a kivetítési definícióban. A beágyazott formázás az alábbi jellemzőkkel rendelkezik:
- Az alakzatot csak az azt tartalmazó kivetítés használhatja.
- Az alakzat megegyezhet azzal, amit egy Shaper-képesség létrehozna.
A rendszer beágyazott alakzatot hoz létre sourceContext
az and inputs
.
Property | Leírás |
---|---|
sourceContext | Beállítja a vetítés gyökerét. |
Bemenetek | Minden bemenet egy oszlop a táblában. A név az oszlop neve. A forrás az értéket biztosító bővítési csomópont. |
Ha ugyanazokat az adatokat szeretné kivetíteni, mint az előző példában, a beágyazott vetítési lehetőség a következőképpen nézne ki:
"projections": [
{
"tables": [
{
"tableName": "hotelReviewsInlineDocument",
"generatedKeyName": "Documentid",
"sourceContext": "/document",
"inputs": [
{
"name": "reviews_text",
"source": "/document/reviews_text"
},
{
"name": "reviews_title",
"source": "/document/reviews_title"
},
{
"name": "AzureSearch_DocumentKey",
"source": "/document/AzureSearch_DocumentKey"
}
]
},
{
"tableName": "hotelReviewsInlinePages",
"generatedKeyName": "Pagesid",
"sourceContext": "/document/reviews_text/pages/*",
"inputs": [
{
"name": "Sentiment",
"source": "/document/reviews_text/pages/*/Sentiment"
},
{
"name": "LanguageCode",
"source": "/document/Language"
},
{
"name": "Page",
"source": "/document/reviews_text/pages/*"
}
]
},
{
"tableName": "hotelReviewsInlineKeyPhrases",
"generatedKeyName": "KeyPhraseId",
"sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
"inputs": [
{
"name": "Keyphrases",
"source": "/document/reviews_text/pages/*/Keyphrases/*"
}
]
}
]
}
]
Mindkét megközelítés egyik megfigyelése, hogy a "Keyphrases" értékei hogyan lesznek kivetítve a "sourceContext" használatával. A sztringgyűjteményt tartalmazó "Keyphrases" csomópont maga a lap szövegének gyermeke. Mivel azonban a kivetítések JSON-objektumot igényelnek, és a lap egy primitív (sztring), a "sourceContext" a kulcskifejezés elnevezett tulajdonsággal rendelkező objektumba való befuttatására szolgál. Ez a technika lehetővé teszi, hogy még a primitívek is egymástól függetlenül legyenek kivetítve.
Beágyazott alakzat objektumvetítésekhez
Létrehozhat egy új alakzatot az Shaper szakértelemmel, vagy használhatja az objektumvetítés beágyazott formázását. Míg a táblázatos példa bemutatta az alakzatok és szeletelés létrehozásának megközelítését, ez a példa bemutatja a beágyazott formázás használatát.
A beágyazott formázással új alakzatot hozhat létre a kivetítés bemeneteinek definíciójában. A beágyazott formázás egy névtelen objektumot hoz létre, amely megegyezik azzal, amit egy Shaper-képesség létrehozna (ebben az esetben projectionShape
). A beágyazott formázás akkor hasznos, ha olyan alakzatot definiál, amelyet nem tervez újra felhasználni.
A vetülettulajdonság egy tömb. Ez a példa egy új vetületpéldányt ad hozzá a tömbhöz, ahol a KnowledgeStore definíciója beágyazott előrejelzéseket tartalmaz. Beágyazott vetítések használatakor kihagyhatja a Shaper-készséget.
"knowledgeStore" : {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
"projections": [
{
"tables": [ ],
"objects": [
{
"storageContainer": "sampleobject",
"source": null,
"generatedKeyName": "myobject",
"sourceContext": "/document",
"inputs": [
{
"name": "metadata_storage_name",
"source": "/document/metadata_storage_name"
},
{
"name": "metadata_storage_path",
"source": "/document/metadata_storage_path"
},
{
"name": "content",
"source": "/document/content"
},
{
"name": "keyPhrases",
"source": "/document/merged_content/keyphrases/*"
},
{
"name": "entities",
"source": "/document/merged_content/entities/*/name"
},
{
"name": "ocrText",
"source": "/document/normalized_images/*/text"
},
{
"name": "ocrLayoutText",
"source": "/document/normalized_images/*/layoutText"
}
]
}
],
"files": []
}
]
}
Következő lépések
Ez a cikk a vetítési alakzatok fogalmait és alapelveit ismerteti. Következő lépésként tekintse meg, hogyan alkalmazzák ezeket a táblák, objektumok és fájlvetítések mintáiban.