पूर्व-प्रसंस्कृत रिकॉर्ड समानता एपीआई वास्तविक जीवन के गंदे डेटा के लिए निर्मित एक उच्च-स्पीड फजी मिलान और डुप्लीकेशन एपीआई है। यह आपको लगभग-डुप्लिकेट रिकॉर्ड पहचानने और संस्थाओं को मेल करने में मदद करता है, भले ही मान सटीक रूप से मेल न खाएं - टाइपो, केस भिन्नताएं, गायब विराम चिह्न, स्पेसिंग की समस्याएं, संक्षेपण, और मामूली शब्दक्रम परिवर्तन।
अपने खुद के फजी मिलान पाइपलाइन बनाने और ट्यून करने की बजाए, आप अपनी स्ट्रिंग्स (या रिकॉर्ड) एपीआई को भेजते हैं और समानता-स्कोर किए गए मिलान प्राप्त करते हैं जिन पर आप भरोसा कर सकते हैं। सामान्य आउटपुट में मेल खाती जोड़ियाँ शामिल होती हैं (जैसे, “Apple” ↔ “apple inc.”), समानता स्कोर और संरचित परिणाम होते हैं जिन्हें डेटा क्लीनिंग वर्कफ़्लो, सीआरएम, ईटीएल कार्यों, और एनालिटिक्स पाइपलाइनों में लगाना आसान होता है।
सामान्य उपयोग के मामले:
सूचियों को डुप्लीकेट करें: एक डेटा सेट के अंदर डुप्लिकेट खोजें (सभी से सभी मिलान) और संभावित डुप्लिकेट जोड़ियाँ लौटाएँ।
एक मास्टर सूची के खिलाफ मेल करें: एक आने वाली सूची को एक प्रमाणिक सेट से मिलाएँ (सूची से मास्टर)।
सीआरएम और ग्राहक डेटा स्वच्छता: उन लीड्स/खातों/कंपनियों को साफ करें जहाँ डुप्लिकेट रिपोर्टिंग और संचार को तोड़ता है।
संस्थान समाधान & रिकॉर्ड लिंकिंग: स्रोतों के बीच समान वास्तविक दुनिया की संस्था से संदर्भों को जोड़ें।
टीमें क्यों इसका उपयोग करती हैं:
बॉक्स से बाहर गंदे टेक्स्ट पर काम करता है (हर किनारे के मामले के लिए कोई मैनुअल नियम नहीं)
रैंकिंग और थ्रेशोल्ड्स के लिए समानता स्कोर (आप चुनते हैं कि कितने सख्त होना है)
स्केल और स्वचालन के लिए निर्मित (पाइपलाइनों में चलाने के लिए डिज़ाइन किया गया, केवल एक बार के स्क्रिप्ट नहीं)
Dedupe is an all-to-all fuzzy matching endpoint for finding duplicates within a single list of strings. Instead of comparing only two inputs per API call, you send a dataset and it returns similar pairs and/or deduplicated groups across the entire set.
Why you’d use it
Massive speedup: typically ~300× to 1,000× faster than “regular” approaches people try first (pairwise comparisons, looping fuzzy scorers, etc.) once you go beyond tiny lists.
Optional cleanup built-in: you can enable common text cleanup (lowercasing, punctuation removal, token sorting). This saves hours (or days) of development + ongoing maintenance.
Company suffixes handled automatically: common endings like “Inc”, “LLC”, “Ltd”, etc. are stripped so you match the real name.
Benchmarks: similarity-api/blog/speed-benchmarks (1M records in ~7 minutes; faster than common Python fuzzy matching libraries).
Hard limits on Zyla
Max 1,000 strings per request (enforced).
Need bigger / unlimited?
Parameters (POST request)
data (required)
A string containing a JSON array of strings.
Example value for data:
["Acme Inc","ACME LLC","Globex GmbH"]
Higher = stricter matching (fewer pairs). Typical: 0.80–0.90 for company dedupe.
Removes punctuation differences (e.g., “A.C.M.E.” vs “ACME”).
Makes matching case-insensitive.
use_token_sort (optional, true/false, default false)
Helps when word order changes (e.g., “Bank of America” vs “America Bank of”).
output_format (optional, default string_pairs)
This exndpoint can return data in multiple formats. Please select one of the following:
string_pairs:
[string_A, string_B, similarity]index_pairs:
string_pairs, but returns positions in your input list instead of the strings.[index_A, index_B, similarity]deduped_strings:
deduped_indices:
deduped_strings, but returns the indices of the kept items.membership_map:
[0,0,0,3,3] means rows 0/1/2 are one group (rep=0) and rows 3/4 are another (rep=3).row_annotations:
Returns one object per input row with an explanation of what it belongs to (rep row + similarity).
Use when: you want a human-readable, per-row result for debugging or UI display.
top_k (optional, integer or "all", default "all")
all = find all matches above threshold.
Or an integer (e.g., 50) to limit matches per row (faster, fewer results).
Sample request in python
import requests, json
API_KEY = "YOUR_ZYLA_KEY"
URL = "API_URL/dedupe"
data_list = ["Microsoft","Micsrosoft","Apple Inc","Apple","Google LLC","9oogle"]
params = {
"data": json.dumps(data_list),
"similarity_threshold": "0.75",
"remove_punctuation": "true",
"to_lowercase": "true",
"use_token_sort": "false",
"output_format": "string_pairs",
"top_k": "all"
}
headers = {"Authorization": f"Bearer {API_KEY}"}
r = requests.post(URL, headers=headers, params=params, timeout=60)
print(r.status_code)
print(r.json())
Dedupe - एंडपॉइंट फीचर्स
| ऑब्जेक्ट | विवरण |
|---|---|
data |
[आवश्यक] JSON array of strings to deduplicate (max 1000). Example: ["a","b","c"] |
similarity_threshold |
वैकल्पिक Similarity cutoff from 0 to 1. Higher values are stricter (fewer matches). Default is 0.75. |
remove_punctuation |
वैकल्पिक If true, punctuation is removed before matching. Default is true. |
to_lowercase |
वैकल्पिक If true, strings are lowercased before matching. Default is true. |
use_token_sort |
वैकल्पिक If true, tokens in each string are sorted before matching. Useful when word order varies. Default is false. |
output_format |
वैकल्पिक Default: string_pairs Allowed values (and what each means): index_pairs List of matches as [i, j, score] where i and j are indices in the input list. string_pairs List of matches as [string_i, string_j, score] using original strings. deduped_strings List of strings with duplicates removed (one representative per group). deduped_indices List of indices representing the deduplicated set (one representative per group). membership_map Array of length N where entry i is the representative index for the group of data[i]. row_annotations Array of objects (one per input row) with fields: index, original_string, rep_index, rep_string, similarity_to_rep. |
top_k |
वैकल्पिक Limits how many neighbors are returned per input string. Use all for full dedupe, or a positive integer for top matches per row. |
{"status":"success","response_data":[["Apple","appl!e",1.0]]}
curl --location --request POST 'https://zylalabs.com/api/11916/preprocessed+record+similarity+api/22653/dedupe?data=["Apple", "appl!e"]' --header 'Authorization: Bearer YOUR_API_KEY'
| हेडर | विवरण |
|---|---|
Authorization
|
[आवश्यक] होना चाहिए Bearer access_key. जब आप सब्सक्राइब हों तो ऊपर "Your API Access Key" देखें। |
कोई लंबी अवधि की प्रतिबद्धता नहीं। कभी भी अपग्रेड, डाउनग्रेड या कैंसल करें।
Dedupe अंतर्विभाग एक JSON वस्तु लौटाता है जिसमें मेल खाती हुई स्ट्रिंग जोड़े, समानता स्कोर और वैकल्पिक डीडुप्लिकेट परिणाम शामिल होते हैं आउटपुट को स्ट्रिंग जोड़ों, अनुक्रमांक जोड़ों या डीडुप्लिकेट स्ट्रिंग के रूप में स्वरूपित किया जा सकता है जो निर्दिष्ट कॉन्फ़िगरेशन पर निर्भर करता है
प्रतिक्रिया डेटा में मुख्य क्षेत्रों में "स्थिति" (सफलता या त्रुटि इंगित करता है) और "प्रतिक्रिया_डेटा" शामिल हैं, जिसमें परिणाम उपयोगकर्ता की अनुरोध के अनुसार फ़ॉर्मेट किए गए हैं, जैसे मेल खाती जोड़ी या डीडुप्लिकेटेड स्ट्रिंग।
उपयोगकर्ता "config" ऑब्जेक्ट में पैरामीटर को समायोजित करके अनुरोधों को अनुकूलित कर सकते हैं जैसे कि मिलान की कठोरता के लिए "similarity_threshold" पूर्व-संसाधन के लिए "remove_punctuation" और इच्छित परिणाम ढांचे को चुनने के लिए "output_format"
प्रतिक्रिया डेटा परिणामों के एक सरणी के रूप में व्यवस्थित किया गया है जहां प्रत्येक प्रविष्टि एक मैच या डेडुप्लिकेटेड स्ट्रिंग के अनुरूप होती है आउटपुट प्रारूप के आधार पर प्रविष्टियों में मौलिक स्ट्रिंग्स इंडेक्स और समानता स्कोर शामिल हो सकते हैं जो कार्यप्रवाह में आसान एकीकरण को सक्षम बनाते हैं
विशिष्ट उपयोग के मामलों में ग्राहक सूचियों का डुप्लीकेट हटाना मास्टर सूची के खिलाफ रिकॉर्ड का मिलान करना सीआरएम डेटा की सफाई करना और विभिन्न डेटा स्रोतों के बीच एंटिटी समाधान करना शामिल है ताकि डेटा की अखंडता और सटीकता सुनिश्चित हो सके
डेटा सटीकता को उन्नत फ़ज़ी मिलान एल्गोरिदम के माध्यम से बनाए रखा जाता है जो टाइपोस और केस में अंतर जैसी सामान्य डेटा समस्याओं का ध्यान रखते हैं एपीआई को गंदे डेटा को प्रभावी ढंग से संभालने के लिए डिज़ाइन किया गया है जिससे विश्वसनीय मिलान परिणाम सुनिश्चित होते हैं
स्वीकृत पैरामीटर मानों में "similarity_threshold" (0 से 1), "remove_punctuation" (बुलियन), "to_lowercase" (बुलियन), "use_token_sort" (बुलियन), और "top_k" (पूर्णांक या "सभी") शामिल हैं ये पैरामीटर उपयोगकर्ताओं को उनके विशेष आवश्यकताओं के अनुसार मिलान प्रक्रिया को अनुकूलित करने की अनुमति देते हैं
यदि डिडुप एपीआई आंशिक या खाली परिणाम लौटाता है, तो उपयोगकर्ताओं को गुणवत्ता समस्याओं के लिए इनपुट डेटा की जांच करनी चाहिए, जैसे अत्यधिक डुप्लिकेट या बहुत निम्न समानता सीमा। "समानता सीमा" को समायोजित करना या इनपुट सूची की समीक्षा करना परिणामों में सुधार करने में मदद कर सकता है
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
853ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
18ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
1,067ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
4,256ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
489ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
1,815ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
3,085ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
6,292ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
1,410ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
4,374ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
1,385ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
1,971ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
1,239ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
4,375ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
2,855ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
6,593ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
1,606ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
3,192ms
सर्विस लेवल:
50%
रिस्पॉन्स टाइम:
11,745ms
सर्विस लेवल:
100%
रिस्पॉन्स टाइम:
4,221ms