Ähnlich statt nur identisch
Ein Werkzeug, das Zeilen einer CSV-Datei nicht nur bei exakter Übereinstimmung, sondern auch bei inhaltlicher Ähnlichkeit als mögliches Duplikat erkennt, etwa bei einem Tippfehler oder einer abweichenden Schreibweise desselben Firmennamens. Gedacht für zusammengeführte Listen aus mehreren unterschiedlichen Quellen und Systemen.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
Der Unterschied zur exakten Duplikatsuche
Die exakte Duplikatsuche erkennt nur, was buchstäblich identisch ist. „Müller GmbH“ und „Mueller GmbH“ gelten dort als zwei verschiedene Einträge, obwohl damit vermutlich dasselbe Unternehmen gemeint ist. Diese Funktion vergleicht stattdessen die inhaltliche Bedeutung der Zeilen und erkennt solche Fälle zusätzlich, statt nur auf reine Zeichengleichheit ohne Kontext zu prüfen und alles andere ungeprüft und unbemerkt zu übersehen, Zeile für Zeile.
Wie die Ähnlichkeit bestimmt wird
Jede Zeile wird über ein Sprachmodell in eine Zahlenrepräsentation überführt, die inhaltliche Nähe zwischen Zeilen abbildet. Zeilen, deren Repräsentationen sich über einer einstellbaren Schwelle ähneln, werden als mögliches Duplikat vorgeschlagen, statt automatisch gelöscht zu werden, damit Sie jeden Vorschlag vor der endgültigen Bereinigung noch einmal in aller Ruhe prüfen, bewerten und selbst bestätigen können, Zeile für Zeile und Fall für Fall.
Typische Fälle
Besonders häufig taucht dieses Problem bei zusammengeführten Adress- oder Kundenlisten aus mehreren Systemen auf, in denen derselbe Kontakt mit leicht unterschiedlicher Schreibweise mehrfach vorkommt, ebenso bei Produktkatalogen, in denen derselbe Artikel unter zwei ähnlichen, aber nicht identischen Bezeichnungen geführt wird, etwa mit und ohne Bindestrich im Produktnamen oder mit leicht abweichendem Firmenzusatz am Namensende der jeweiligen Firma oder Organisation im Datensatz.
Preis nach Zeilenzahl
$0.002 pro Anfrage plus $0.0015 je 1.000 Zeilen, da für jede Zeile eine eigene Berechnung der inhaltlichen Ähnlichkeit nötig ist. Eine Liste mit 5.000 Zeilen kostet damit rund $0.0095, deutlich weniger als das manuelle Durchsehen einer entsprechend langen Liste von Hand auf mögliche Dubletten und versteckte, leicht übersehene Tippfehler in den einzelnen Namen und Firmenadressen der jeweiligen Kontakte, Zeile für Zeile.
Anwendungsfälle
Zwei Kundenlisten aus unterschiedlichen Systemen
Schneider IT-Systeme GmbH & Co. KG führt zwei Kundenlisten unterschiedlicher Systeme zusammen und lässt ähnlich geschriebene Duplikate zur Prüfung vorschlagen.
Produktkatalog mit abweichenden Bezeichnungen
Weber Metallbau GmbH lässt einen Produktkatalog prüfen, in dem derselbe Artikel unter zwei leicht unterschiedlichen Namen mehrfach geführt wird.
Mailingliste aus mehreren Anmeldeformularen
Anna Hoffmann bereinigt eine Mailingliste, die aus mehreren Anmeldeformularen zusammengetragen wurde und dieselbe Adresse mit kleinen Tippfehlern mehrfach enthält.
Häufige Fragen
Lässt sich einstellen, wie ähnlich Zeilen sein müssen, um vorgeschlagen zu werden?
Ja, die Ähnlichkeitsschwelle lässt sich anpassen, je nachdem, wie streng oder großzügig die Suche nach möglichen Duplikaten ausfallen soll.
Werden erkannte Duplikate automatisch gelöscht?
Nein, sie werden als Vorschlag zur Prüfung ausgegeben. Die endgültige Entscheidung, eine Zeile zu entfernen, treffen Sie selbst.
Was kostet die Prüfung einer Liste mit 5.000 Zeilen?
$0.002 Grundgebühr plus $0.0015 je 1.000 Zeilen, bei 5.000 Zeilen also rund $0.0095.
Werden meine Daten für die Berechnung an ein Sprachmodell gesendet?
Ja, jede Zeile wird zur Berechnung der inhaltlichen Ähnlichkeit verarbeitet und danach nicht dauerhaft gespeichert.
Gibt es einen AVV für die Verarbeitung von Kundendaten?
Aktuell steht kein separater Auftragsverarbeitungsvertrag zur Verfügung. Wer das für sein Unternehmen benötigt, spricht uns bitte vorab per E-Mail an.
Gibt es ein Limit für die Dateigröße?
Die CSV-Datei darf bis zu 25 MB groß sein.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/dedupe-semantic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/dedupe-semantic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/dedupe-semantic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/dedupe-semantic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/dedupe-semantic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.dedupe_semantic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |