Allgemeine Einführung
SemHash ist ein leichtgewichtiges und flexibles Werkzeug zur Deduplizierung von Datensätzen durch semantische Ähnlichkeit. Es kombiniert die schnelle Einbettungsgenerierung von Model2Vec mit der effizienten ANN-(Approximate Nearest Neighbour)-Ähnlichkeitssuche von Vicinity.SemHash unterstützt sowohl die Deduplizierung einzelner Datensätze (z. B. Bereinigung der Trainingsmenge) als auch die Deduplizierung mehrerer Datensätze (z. B. Sicherstellung, dass es keine Überschneidungen zwischen Test- und Trainingsmenge gibt). Es eignet sich sowohl für einfache Datensätze, wie z. B. Textlisten, als auch für komplexere Datensätze, wie z. B. mehrspaltige QA-Datensätze. Darüber hinaus bietet es die Möglichkeit, die Ergebnisse der Deduplizierung zu überprüfen, was es Ihnen erleichtert, den Datenbereinigungsprozess zu verstehen und zu optimieren.
Funktionsliste
- Schnelle Einbettungsgenerierung: Generieren Sie Einbettungen mit Model2Vec für eine schnelle und genaue Einbettung.
- Effiziente Ähnlichkeitssuche: Effiziente ANN-Ähnlichkeitssuche mit Vicinity.
- Einzeldatensatz-Deduplizierung: Bereinigung eines einzelnen Datensatzes, um doppelte Daten zu entfernen.
- Deduplizierung mehrerer Datensätze: Stellen Sie sicher, dass es keine Überschneidungen zwischen mehreren Datensätzen gibt, um Datenverluste zu vermeiden.
- Deduplizierung von mehrspaltigen Datensätzen: unterstützt die Deduplizierung komplexer Datensätze, wie z. B. QA-Datensätze.
- Überprüfung des Deduplizierungsergebnisses: Bietet eine detaillierte Prüffunktion des Deduplizierungsergebnisses, die zur Optimierung des Datenbereinigungsprozesses beiträgt.
Hilfe verwenden
Ablauf der Installation
- Öffnen Sie ein Terminal oder ein Befehlszeilentool.
- Geben Sie den folgenden Befehl ein, um SemHash zu installieren:
pip install semhash
Verwendung
Einzeldatensatz-Deduplizierung
- Laden Sie den Datensatz:
from datasets import load_dataset
from semhash import SemHash
Texte = load_dataset("ag_news", split="train")["text"]
- Initialisieren Sie die SemHash-Instanz:
semhash = SemHash.from_records(records=texts)
- Gewichtung des Datensatzes aufheben:
deduplizierte_texte = semhash.self_deduplicate().deduplicated
Entdopplung mehrerer Datensätze
- Laden Sie zwei Datensätze:
train_texts = load_dataset("ag_news", split="train")["text"]
test_texte = load_dataset("ag_news", split="test")["text"]
- Initialisieren Sie die SemHash-Instanz:
semhash = SemHash.from_records(records=train_texts)
- Gewichtung des Testdatensatzes aufheben:
deduplizierte_test_texte = semhash.deduplicate(records=test_texte, threshold=0.9).deduplicated
Entdopplung von mehrspaltigen Datensätzen
- Laden eines mehrspaltigen Datensatzes:
dataset = load_dataset("squad_v2", split="train")
records = [dict(row) for row in dataset]
- Initialisieren Sie die SemHash-Instanz:
semhash = SemHash.from_records(records=records, columns=["Frage", "Kontext"])
- Gewichtung des Datensatzes aufheben:
deduplizierte_Datensätze = semhash.self_deduplicate().deduplicated
Überprüfung der Abwägungsergebnisse
- Zeigen Sie den de-duplizierten Text an:
result = semhash.self_deduplicate(records=texts, threshold=0.99)
for duplicate in result.duplicates:
print("RECORD:")
print(duplicate.records)
if duplicate.exact: print("Genaue Übereinstimmung!")
print("Genaue Übereinstimmung!")
print("Genaue Übereinstimmung!")
print("DUPLICATES:")
for korpus_duplicate in duplicate.duplicates: print(korpus_duplicate)
print(Korpus_Duplikat)
print("-" * 25)
Mit diesen Schritten können Sie schnell mit SemHash zur semantischen Deduplizierung von Datensätzen beginnen und die Effizienz der Datenbereinigung verbessern.