Bearbeiten

Freigeben über


Blockanreicherung

Azure KI Services
Azure KI Search
Azure OpenAI Service
Azure Machine Learning

Nachdem Sie Ihre Dokumente in eine Sammlung von Blöcken unterteilt haben, besteht der nächste Schritt darin, jeden Block durch das Bereinigen und Erweitern der Blöcke mit Metadaten zu bereichern. Durch das Bereinigen der Blöcke können Sie bessere Übereinstimmungen für semantische Abfragen in einer Vektorsuche erzielen. Durch das Hinzufügen von Informationen können Sie Suchvorgänge über semantische Suchvorgänge der Blöcke hinaus unterstützen. Sowohl die Reinigung als auch die Erweiterung umfassen das Erweitern des Schemas für den Block.

In diesem Artikel werden verschiedene Möglichkeiten zum Erweitern Ihrer Blöcke erläutert, einschließlich einiger gängiger Reinigungsvorgänge, die Sie auf Blöcken ausführen können, um Vektorvergleiche zu verbessern, und beschreibt einige allgemeine Metadatenfelder, die Sie Ihren Blöcken hinzufügen können, um den Suchindex zu erweitern.

Dieser Artikel ist Teil einer Reihe. Lesen Sie die Einführung.

Diagramm mit JSON-Datensätzen mit einem einzelnen Feld, das erweitert wird.

Abbildung 1. Anreichern von Blöcken mit Metadaten

Reinigung

Das Aufteilen Ihrer Daten unterstützt Ihre Arbeitsauslastung in seinen Bemühungen, die relevantesten Blöcke zu finden, in der Regel durch Vektorisierung dieser Blöcke und speichern sie in einer Vektordatenbank. Eine optimierte Vektorsuche gibt nur die Zeilen in dieser Datenbank zurück, die die nächstgelegenen semantischen Übereinstimmungen mit der Abfrage aufweisen. Das Ziel, die Daten zu bereinigen, um Übereinstimmungen bei der Nähe zu unterstützen, indem potenzielle Unterschiede beseitigt werden, die nicht materialisch für die Semantik des Texts sind. Im Folgenden finden Sie einige gängige Reinigungsverfahren.

Anmerkung

Sie möchten den ursprünglichen, ungereinten Block als Abfrageergebnis zurückgeben, sodass Sie ein zusätzliches Feld hinzufügen, um die bereinigten und vektorisierten Daten zu speichern.

  • Lowercasing - Lowercasing ermöglicht Wörtern, die großgeschrieben sind, z. B. Wörter am Anfang eines Satzes, mit den gleichen Wörtern in einem Satz abzugleichen. Einbettungen werden in der Regel zwischen Groß- und Kleinschreibung unterschieden, d. h. "Cheetah" und "Cheetah" würden zu einem anderen Vektor für dasselbe logische Wort führen. Beispielsweise für die eingebettete Abfrage: "Was ist schneller, ein Gepard oder ein Puma?" Die folgende Einbettung: "Cheetahs sind schneller als Pumas" ist eine engere Übereinstimmung als das Einbetten von "Cheetahs sind schneller als Pumas". Einige Kleinschreibungsstrategien kleingeschriebene Wörter, einschließlich richtiger Substantive, während andere Strategien nur die ersten Wörter in einem Satz senken.
  • Entfernen Von Stoppwörtern - Stoppwörter sind Wörter wie "a", "an" und "die", die häufig in Sätzen vorkommen. Sie können Stoppwörter entfernen, um die Dimensionalität des resultierenden Vektors zu verringern. Das Entfernen von Stoppwörtern würde sowohl "ein Cheetah ist schneller als ein Puma" und "der Cheetah ist schneller als der Puma", um beide vektorial gleich "Cheetah schneller Puma" zu sein. Es ist jedoch wichtig zu verstehen, dass einige Stoppwörter semantische Bedeutung enthalten. Beispielsweise könnte "nicht" als Stoppwort betrachtet werden, aber eine signifikante semantische Bedeutung haben. Es ist wichtig, die Wirkung des Entfernens von Stoppwörtern zu überprüfen.
  • Rechtschreibfehler beheben – Ein falsch geschriebenes Wort stimmt nicht mit dem richtig geschriebenen Wort im Einbettungsmodell überein. Beispielsweise ist "Cheatah" (sic) nicht mit "Cheetah" in der Einbettung identisch. Sie sollten Rechtschreibfehler beheben, um diese Herausforderung zu beheben.
  • Entfernen von Unicode-Zeichen – Das Entfernen von Unicode-Zeichen kann das Rauschen in Ihren Blöcken reduzieren und die Dimensionalität verringern. Wie Stoppwörter können einige Unicode-Zeichen relevante Informationen enthalten. Es ist wichtig, die Auswirkungen des Entfernens von Unicode-Zeichen zu verstehen.
  • Normalisierung - Die Normalisierung des Texts auf Standards wie das Erweitern von Abkürzungen, das Konvertieren von Zahlen in Wörter und das Erweitern von Kontraktionen wie "Ich bin" auf "Ich bin" kann dazu beitragen, die Leistung von Vektorsuchen zu erhöhen.

Erweitern von Blöcken

Semantische Suchvorgänge für die vektorisierten Blöcke funktionieren gut für einige Arten von Abfragen, aber nicht auch für andere. Je nach den Arten von Abfragen, die Sie unterstützen müssen, müssen Sie ihre Blöcke möglicherweise mit zusätzlichen Informationen erweitern. Die zusätzlichen Metadatenfelder werden alle in derselben Zeile wie Ihre Einbettungen gespeichert und können in der Suchlösung als Filter oder als Teil der Suche verwendet werden.

Diagramm mit json vollständig angereicherten Inhalten und deren Verwendung in einer Suchplattform.

Abbildung 2. Verwendung erweiterter Metadaten in der Suchlösung

Die Metadatenspalten, die Sie hinzufügen müssen, hängen von Entscheidungen ab, die für Ihre Problemdomäne spezifisch sind. Dies umfasst den Datentyp, den Sie haben, und die Arten von Abfragen, die Sie unterstützen möchten. Sie müssen die Benutzererfahrung, die verfügbaren Daten und die Ergebnisqualität analysieren, die Sie erreichen möchten. Von dort aus können Sie ermitteln, welche Metadaten Ihnen dabei helfen können, die Anforderungen Ihrer Workload zu erfüllen.

Im Folgenden finden Sie einige allgemeine Metadatenfelder sowie den ursprünglichen Textabschnitt, einige Anleitungen zu ihren potenziellen Verwendungsmöglichkeiten sowie Tools oder Techniken, die häufig zum Generieren der Metadateninhalte verwendet werden.

  • ID – ID ist ein Schlüsselmetadatenfeld, das verwendet wird, um einen Block eindeutig zu identifizieren. Eine eindeutige ID ist hilfreich bei der Verarbeitung, um zu bestimmen, ob ein Block bereits im Speicher vorhanden ist oder nicht. Eine ID kann ein Hash eines Schlüsselfelds sein. Tools: Hashing-Bibliothek
  • Titel- – Ein Titel ist ein nützlicher Rückgabewert für einen Block. Sie enthält eine kurze Zusammenfassung des Inhalts im Block. Die Zusammenfassung kann auch hilfreich sein, um eine indizierte Suche abzufragen, da sie Schlüsselwörter für den Abgleich enthalten kann. Tools: Sprachmodell
  • Zusammenfassung – Die Zusammenfassung ähnelt dem Titel darin, dass es sich um einen gemeinsamen Rückgabewert handelt und in indizierte Suchvorgänge verwendet werden kann. Zusammenfassungen sind im Allgemeinen länger als der Titel. Tools: Sprachmodell
  • Rephrasing von Blöcken – Rephrasing eines Blockabschnitts kann als Vektorsuchfeld hilfreich sein, da die Rephrasing Variationen in der Sprache wie Synonyme und Paraphrasierung erfasst. Tools: Sprachmodell
  • Schlüsselwörter - Schlüsselwortsuchen eignen sich gut für Daten, die nichttextlich sind, für die Suche nach einer genauen Übereinstimmung und wenn ein bestimmter Begriff oder Wert wichtig ist. Beispielsweise kann ein Autohersteller über Rezensionen oder Leistungsdaten für jedes ihrer Modelle mehrere Jahre verfügen. Die Überprüfung auf Das Produkt X für Jahr 2009 ist semantisch wie "Überprüfen auf Produkt X für 2010" und "Überprüfen auf Produkt Y für 2009". In diesem Fall wäre es besser, Schlüsselwörter für das Produkt und das Jahr abzugleichen. Tools: Sprachmodell, RAKE, KeyBERT, MultiRake
  • Entitäten – Entitäten sind bestimmte Informationen wie Personen, Organisationen und Standorte. Wie Schlüsselwörter eignen sich Entitäten gut für genaue Übereinstimmungssuchen oder wenn bestimmte Entitäten wichtig sind. Tools: SpaCy, Stanford Named Entity Recognizer (SNER), scikit-learn, Natural Language Toolkit (NLTK).
  • Bereinigter Textabschnitt - Der bereinigungsgeschützte Textabschnitt. Tools: Sprachmodell
  • Fragen, die der Block beantworten kann – Manchmal ist die eingebettete Abfrage und der eingebettete Block keine gute Übereinstimmung. Die Abfrage kann beispielsweise in Bezug auf die Blockgröße klein sein. Es kann besser sein, die Abfragen zu formulieren, die der Block beantworten und eine Vektorsuche zwischen der tatsächlichen Abfrage des Benutzers und den vordefinierten Abfragen durchführen kann. Tools: Sprachmodell
  • Source – Die Quelle des Abschnitts kann als Rückgabe für Abfragen hilfreich sein. Er ermöglicht es dem Querierer, die ursprüngliche Quelle zu zitieren.
  • Sprache - Die Sprache des Abschnitts kann als Filter in Abfragen gut sein.

Erweiterung der Ökonomie

Die Verwendung einiger Sprachmodelle zum Erweitern von Blöcken kann teuer sein. Sie müssen die Kosten jeder Zureicherung berechnen, die Sie in Betracht ziehen und mit der geschätzten Anzahl von Blöcken im Laufe der Zeit multiplizieren. Sie sollten diese Informationen zusammen mit Ihren Tests dieser angereicherten Felder als Teil der Suche verwenden, um eine gute Geschäftsentscheidung zu treffen.

Nächste Schritte