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.