Redigera

Dela via


Segmentberikning

Azure AI services
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

När du har delat upp dina dokument i en samling segment är nästa steg att berika varje segment genom att både rensa och utöka segmenten med metadata. Genom att rensa segmenten kan du uppnå bättre matchningar för semantiska frågor i en vektorsökning. Genom att lägga till information kan du stödja sökningar utöver semantiska sökningar i segmenten. Både rensning och förstoring innebär att utöka schemat för segmentet.

Den här artikeln beskriver olika sätt att utöka dina segment, inklusive några vanliga rensningsåtgärder som du kan utföra på segment för att förbättra vektorjämförelser och beskriver några vanliga metadatafält som du kan lägga till i dina segment för att utöka ditt sökindex.

Den här artikeln ingår i en serie. Läs introduktionen.

Diagram som visar json-poster med ett enda fält som berikas.

Figur 1. Berika segment med metadata

Städning och renhållning

Segmentering av dina data stöder din arbetsbelastning i dess arbete med att hitta de mest relevanta segmenten, vanligtvis genom att vektorisera dessa segment och lagra dem i en vektordatabas. En optimerad vektorsökning returnerar endast de rader i databasen som har de närmaste semantiska matchningarna till frågan. Målet med att rensa data för att stödja närhetsmatchningar genom att eliminera potentiella skillnader som inte är material för textens semantik. Följande är några vanliga rengöringsprocedurer.

Kommentar

Du vill returnera det ursprungliga, orenade segmentet som frågeresultat, så du lägger till ytterligare ett fält för att lagra de rensade och vektoriserade data.

  • Lowercasing – Med gemener kan ord som är versaler, till exempel ord i början av en mening, matchas med samma ord i en mening. Inbäddningar är vanligtvis skiftlägeskänsliga, vilket innebär att "Cheetah" och "gepard" skulle resultera i en annan vektor för samma logiska ord. Till exempel för den inbäddade frågan: "vad är snabbare, en gepard eller en puma?" Följande inbäddning: "geparder är snabbare än pumas" är en närmare matchning än att bädda in "Geparder är snabbare än pumas." Vissa gemener av strategier innehåller alla ord, inklusive lämpliga substantiv, medan andra strategier bara innehåller de första orden i en mening.
  • Ta bort stoppord – Stoppord är ord som "a", "an" och "de" som vanligtvis förekommer i meningar. Du kan ta bort stoppord för att minska den resulterande vektorns dimension. Att ta bort stoppord skulle göra det möjligt för både "en gepard är snabbare än en puma" och "geparden är snabbare än puman" att båda är vektoriellt lika med "gepard snabbare puma". Det är dock viktigt att förstå att vissa stoppord har semantisk betydelse. Till exempel kan "inte" betraktas som ett stoppord, men skulle ha betydande semantisk betydelse. Det är viktigt att testa för att se effekten av att ta bort stoppord.
  • Åtgärda stavfel – Ett felstavat ord matchar inte det korrekt stavade ordet i inbäddningsmodellen. Till exempel är "cheatah" (sic) inte detsamma som "gepard" i inbäddningen. Du bör åtgärda stavfel för att hantera den här utmaningen.
  • Ta bort unicode-tecken – Om du tar bort Unicode-tecken kan du minska bruset i segmenten och minska dimensionaliteten. Precis som stoppord kan vissa Unicode-tecken innehålla relevant information. Det är viktigt att testa för att förstå effekten av att ta bort Unicode-tecken.
  • Normalisering – Normalisering av texten till standarder som att utöka förkortningar, konvertera tal till ord och expandera sammandragningar som "I'm" till "I am" kan hjälpa till att öka prestandan för vektorsökningar.

Utöka segment

Semantiska sökningar mot de vektoriserade segmenten fungerar bra för vissa typer av frågor, men inte lika bra för andra. Beroende på vilka typer av frågor du behöver stöd för kan du behöva utöka segmenten med ytterligare information. De ytterligare metadatafälten lagras alla på samma rad som dina inbäddningar och kan användas i söklösningen som antingen filter eller som en del av sökningen.

Diagram som visar json med fullständigt berikat innehåll och hur det kan användas i en sökplattform.

Figur 2. Användning av förhöjda metadata i söklösningen

De metadatakolumner som du behöver lägga till beror på beslut som är specifika för din problemdomän. Detta omfattar den typ av data du har och de typer av frågor som du vill stödja. Du måste analysera användarupplevelsen, tillgängliga data och resultatkvaliteten som du försöker uppnå. Därifrån kan du avgöra vilka metadata som kan hjälpa dig att uppfylla arbetsbelastningens krav.

Följande är några vanliga metadatafält, tillsammans med den ursprungliga segmenttexten, viss vägledning om deras potentiella användningsområden och verktyg eller tekniker som ofta används för att generera metadatainnehållet.

  • ID – ID är ett nyckelmetadatafält som används för att unikt identifiera ett segment. Ett unikt ID är användbart vid bearbetning för att avgöra om ett segment redan finns i arkivet eller inte. Ett ID kan vara en hash för något nyckelfält. Verktyg: Hashningsbibliotek
  • Rubrik – En rubrik är ett användbart returvärde för ett segment. Den innehåller en snabb sammanfattning av innehållet i segmentet. Sammanfattningen kan också vara användbar för att fråga med en indexerad sökning eftersom den kan innehålla nyckelord för matchning. Verktyg: stor språkmodell
  • Sammanfattning – Sammanfattningen liknar rubriken eftersom den är ett vanligt returvärde och kan användas i indexerade sökningar. Sammanfattningar är vanligtvis längre än rubriken. Verktyg: stor språkmodell
  • Omfrasering av segment – Omfrasering av ett segment kan vara till hjälp som ett vektorsökfält eftersom omfrasering fångar variationer i språk, till exempel synonymer och omfraser. Verktyg: stor språkmodell
  • Nyckelord – Nyckelordssökningar är bra för data som inte är kontextuella, för att söka efter en exakt matchning och när en viss term eller ett visst värde är viktigt. En biltillverkare kan till exempel ha granskningar eller prestandadata för var och en av sina modeller i flera år. Granskning för produkt X för år 2009" är semantiskt som "Review for product X for 2010" och "Review for product Y for 2009." I det här fallet skulle det vara bättre att matcha nyckelord för produkten och året. Verktyg: stor språkmodell, RAKE, KeyBERT, MultiRake
  • Entiteter – Entiteter är specifika informationsdelar som personer, organisationer och platser. Precis som nyckelord är entiteter bra för exakta matchningssökningar eller när specifika entiteter är viktiga. Verktyg: SpaCy, Stanford Named Entity Recognizer (SNER, scikit-learn, Natural Language Toolkit (NLTK).
  • Rensad segmenttext – den rensade segmenttexten. Verktyg: stor språkmodell
  • Frågor som segmentet kan besvara – Ibland är frågan som är inbäddad och segmentet inbäddat inte en bra matchning. Frågan kan till exempel vara liten när det gäller segmentstorleken. Det kan vara bättre att formulera de frågor som segmentet kan besvara och göra en vektorsökning mellan användarens faktiska fråga och de fördefinierade frågorna. Verktyg: stor språkmodell
  • Källa – Källan för segmentet kan vara värdefull som en retur för frågor. Det gör att frågeredigeraren kan citera den ursprungliga källan.
  • Språk – Språket i segmentet kan vara bra som ett filter i frågor.

Förhöjd ekonomi

Det kan vara dyrt att använda stora språkmodeller för att utöka segment. Du måste beräkna kostnaden för varje berikning som du överväger och multiplicera den med det uppskattade antalet segment över tid. Du bör använda den här informationen tillsammans med dina tester av dessa berikade fält som en del av sökningen för att fatta ett bra affärsbeslut.

Nästa steg