Bewerken

Delen via


Segmentverrijking

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

Zodra u uw documenten hebt opgesplitst in een verzameling segmenten, is de volgende stap het verrijken van elk segment door zowel de segmenten op te schonen als te verbeteren met metagegevens. Door de segmenten op te schonen, kunt u betere overeenkomsten bereiken voor semantische query's in een vectorzoekopdracht. Door informatie toe te voegen, kunt u zoekopdrachten ondersteunen die verder gaan dan semantische zoekopdrachten van de segmenten. Zowel schoonmaken als uitbreiden omvat het uitbreiden van het schema voor het segment.

In dit artikel worden verschillende manieren besproken om uw segmenten te verbeteren, waaronder enkele veelvoorkomende opschoonbewerkingen die u kunt uitvoeren op segmenten om vectorvergelijkingen te verbeteren en beschrijft enkele algemene metagegevensvelden die u aan uw segmenten kunt toevoegen om uw zoekindex te verbeteren.

Dit artikel maakt deel uit van een serie. Lees de inleiding.

Diagram met json-records met één veld dat wordt verrijkt.

Figuur 1. Segmenten verrijken met metagegevens

Reinigen

Het segmenteren van uw gegevens ondersteunt uw workload in zijn inspanningen om de meest relevante segmenten te vinden, meestal door deze segmenten te vectoriseren en op te slaan in een vectordatabase. Een geoptimaliseerde vectorzoekopdracht retourneert alleen de rijen in die database die de dichtstbijzijnde semantische overeenkomsten met de query hebben. Het doel van het opschonen van de gegevens ter ondersteuning van closenessovereenkomsten door potentiële verschillen te elimineren die niet materiaal zijn voor de semantiek van de tekst. Hier volgen enkele algemene schoonmaakprocedures.

Notitie

U wilt het oorspronkelijke, onreine segment retourneren als het queryresultaat, zodat u een extra veld toevoegt om de opgeschoonde en gevectoriseerde gegevens op te slaan.

  • Kleine letters - Met kleine letters kunnen woorden met hoofdletters, zoals woorden aan het begin van een zin, overeenkomen met dezelfde woorden in een zin. Insluitingen zijn meestal hoofdlettergevoelig, wat betekent dat 'Cheetah' en 'cheetah' resulteren in een andere vector voor hetzelfde logische woord. Bijvoorbeeld voor de ingesloten query: 'Wat is sneller, een cheetah of een puma?' De volgende insluiting: "cheetahs zijn sneller dan pumas" is een dichtere overeenkomst dan het insluiten van 'Cheetahs zijn sneller dan pumas'. Sommige kleine strategieën kleine letters alle woorden, inclusief de juiste zelfstandige naamwoorden, terwijl andere strategieën alleen de eerste woorden in een zin onderbrengen.
  • Stopwoorden verwijderen- Woorden stoppen zijn woorden zoals 'a', 'an' en 'de' die vaak voorkomen in zinnen. U kunt stopwoorden verwijderen om de dimensionaliteit van de resulterende vector te verminderen. Als u stopwoorden verwijdert, kunnen zowel 'een cheetah is sneller dan een puma' en 'de cheetah is sneller dan de puma' beide vectoriaal gelijk zijn aan 'cheetah snellere puma'. Het is echter belangrijk om te begrijpen dat sommige stopwoorden semantische betekenis hebben. 'niet' kan bijvoorbeeld worden beschouwd als een stopwoord, maar zou een aanzienlijke semantische betekenis hebben. Het is belangrijk om te testen of het effect van het verwijderen van stopwoorden wordt weergegeven.
  • Spelfouten corrigeren: een verkeerd gespeld woord komt niet overeen met het juist gespelde woord in het insluitmodel. 'cheatah' (sic) is bijvoorbeeld niet hetzelfde als 'cheetah' in de insluiting. U moet spelfouten corrigeren om deze uitdaging aan te pakken.
  • Unicode-tekens verwijderen- Het verwijderen van Unicode-tekens kan ruis in uw segmenten verminderen en dimensionaliteit verminderen. Net als stopwoorden bevatten sommige Unicode-tekens mogelijk relevante informatie. Het is belangrijk om te testen wat de gevolgen zijn van het verwijderen van Unicode-tekens.
  • Normalisatie: het normaliseren van de tekst naar standaarden zoals het uitbreiden van afkortingen, het converteren van getallen naar woorden en het uitbreiden van samentrekkingen zoals 'Ik ben' naar 'Ik ben' kan helpen de prestaties van vectorzoekopdrachten te verbeteren.

Segmenten uitbreiden

Semantische zoekopdrachten op de gevectoriseerde segmenten werken goed voor sommige typen query's, maar niet zo goed voor andere. Afhankelijk van de typen query's die u moet ondersteunen, moet u mogelijk uw segmenten uitbreiden met aanvullende informatie. De extra metagegevensvelden worden allemaal opgeslagen in dezelfde rij als uw insluitingen en kunnen worden gebruikt in de zoekoplossing als filters of als onderdeel van de zoekopdracht.

Diagram met json van volledig verrijkte inhoud en hoe deze kan worden gebruikt in een zoekplatform.

Figuur 2. Gebruik van uitgebreide metagegevens in zoekoplossing

De metagegevenskolommen die u moet toevoegen, zijn afhankelijk van beslissingen die specifiek zijn voor uw probleemdomein. Dit omvat het type gegevens dat u hebt en de typen query's die u wilt ondersteunen. U moet de gebruikerservaring, de beschikbare gegevens en de resultaatkwaliteit analyseren die u probeert te bereiken. Hier kunt u bepalen welke metagegevens u kunnen helpen de vereisten van uw workload aan te pakken.

Hier volgen enkele algemene metagegevensvelden, samen met de oorspronkelijke segmenttekst, enkele richtlijnen over hun potentiële gebruik en hulpprogramma's of technieken die vaak worden gebruikt om de metagegevensinhoud te genereren.

  • Id : id is een sleutelmetagegevensveld dat wordt gebruikt om een segment uniek te identificeren. Een unieke id is handig bij het verwerken om te bepalen of er al een segment in de winkel bestaat of niet. Een id kan een hash van een sleutelveld zijn. Hulpprogramma's: Hashing-bibliotheek
  • Titel - Een titel is een nuttige retourwaarde voor een segment. Het biedt een beknopt overzicht van de inhoud in het segment. De samenvatting kan ook handig zijn om een query uit te voeren met een geïndexeerde zoekopdracht, omdat deze trefwoorden kan bevatten voor overeenkomsten. Hulpprogramma's: model voor grote talen
  • Samenvatting : de samenvatting is vergelijkbaar met de titel omdat het een algemene retourwaarde is en kan worden gebruikt in geïndexeerde zoekopdrachten. Samenvattingen zijn over het algemeen langer dan de titel. Hulpprogramma's: model voor grote talen
  • Herformulering van segment - Herformulering van een segment kan handig zijn als vectorzoekveld, omdat het herformuleren van variaties in taal, zoals synoniemen en parafrasering, vastlegt. Hulpprogramma's: model voor grote talen
  • Trefwoorden: trefwoordzoekopdrachten zijn goed voor gegevens die niet-contextueel zijn, voor het zoeken naar een exacte overeenkomst en wanneer een specifieke term of waarde belangrijk is. Een autofabrikant kan bijvoorbeeld al meerdere jaren beoordelingen of prestatiegegevens voor elk van hun modellen hebben. Review for product X for year 2009 is semantisch like "Review for product X for 2010" en "Review for product Y for 2009." In dit geval kunt u beter overeenkomen met trefwoorden voor het product en jaar. Hulpprogramma's: model voor grote talen, RAKE, KeyBERT, MultiRake
  • Entiteiten - Entiteiten zijn specifieke stukjes informatie, zoals personen, organisaties en locaties. Net als trefwoorden zijn entiteiten geschikt voor exacte zoekopdrachten of wanneer specifieke entiteiten belangrijk zijn. Hulpprogramma's: SpaCy, Stanford Named Entity Recognizer (SNER, scikit-learn, Natural Language Toolkit (NLTK).
  • Opgeschoonde segmenttekst - De opgeschoonde segmenttekst. Hulpprogramma's: model voor grote talen
  • Vragen die het segment kan beantwoorden : soms is de ingesloten query en het segment ingesloten geen goede overeenkomst. De query kan bijvoorbeeld klein zijn met betrekking tot de segmentgrootte. Het is misschien beter om de query's te formuleren die het segment kan beantwoorden en een vectorzoekopdracht kan uitvoeren tussen de werkelijke query van de gebruiker en de vooraf ingevulde query's. Hulpprogramma's: model voor grote talen
  • Bron : de bron van het segment kan waardevol zijn als resultaat voor query's. Hiermee kan de queryr de oorspronkelijke bron citeren.
  • Taal : de taal van het segment kan goed zijn als een filter in query's.

Economie uitbreiden

Het gebruik van grote taalmodellen voor het uitbreiden van segmenten kan duur zijn. U moet de kosten berekenen van elke verrijking die u overweegt en vermenigvuldigt met het geschatte aantal segmenten in de loop van de tijd. U moet deze informatie gebruiken, samen met het testen van deze verrijkte velden als onderdeel van de zoekopdracht om een goede zakelijke beslissing te nemen.

Volgende stappen