اكتشف التكرار الخفي في CSV حتى لو اختلفت الكتابة
أداة تكتشف السجلات شبه المكررة في جدول CSV حتى حين يختلف شكل الكتابة: اسم شركة بحرف كبير أو صغير، عنوان بمسافة إضافية، أو اسم شخص بترتيب مختلف للأول والأخير. تعتمد على تضمين دلالي يقيس التشابه المعنوي لا الحرفي فقط، وتعمل عبر الويب أو الـAPI حين يتجاوز التكرار ما يكتشفه التطابق الحرفي البسيط.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
لماذا يفشل التطابق الحرفي مع بيانات حقيقية
قائمة عملاء حقيقية تحمل الجهة نفسها مكتوبة بأكثر من صيغة: شركة الواحة، شركة الواحة للتجارة، Al Waha Trading، وأحيانًا بمسافة إضافية أو خطأ إملائي بسيط. أداة التطابق الحرفي البسيط تعامل كل صيغة كسجل مستقل تمامًا، فتبقى نسخ متعددة لنفس الجهة داخل القائمة دون أن يكتشفها أي فحص آلي بسيط. هذا النوع من التكرار هو الأكثر شيوعًا في قوائم جُمعت من مصادر متعددة عبر سنوات، وأصعبها اكتشافًا يدويًا في جدول كبير.
كيف يقيس التضمين الدلالي التشابه
يحوّل المحرك كل قيمة إلى تمثيل رقمي يعكس معناها، بحيث تقترب القيم المتشابهة معنويًا من بعضها رياضيًا حتى لو اختلف شكل الكتابة تمامًا. تُقارَن هذه التمثيلات لاكتشاف الأزواج التي تتجاوز عتبة تشابه معينة، وتُعرَض كمرشحين محتملين للتكرار بدل حذفهما تلقائيًا، لأن القرار النهائي — هل هما فعلًا الجهة نفسها — قد يحتاج مراجعة بشرية سريعة في الحالات الحدّية غير الواضحة تمامًا.
الاستخدام من الصفحة والـAPI معًا
ارفع ملف CSV من الصفحة واحصل على قائمة الأزواج المرشحة للتكرار خلال ثوانٍ، أو أرسله عبر الـAPI ضمن مسار عمل آلي. السعر معلن: $0.002 للطلب زائد $0.0015 لكل ألف صف، فملف من عشرة آلاف صف يكلف نحو $0.017. لا اشتراك شهريًا؛ الدفع عبر PayPal لكل عملية أو التواصل معنا مباشرة لحجم أكبر. تُرتَّب الأزواج المرشحة حسب درجة التشابه تنازليًا، فتراجع الحالات الأكثر ترجيحًا أولًا بدل تصفح القائمة كاملة عشوائيًا.
متى يستحق الأمر هذه الخطوة الإضافية
قائمة صغيرة يمكن مراجعتها بالعين المجردة بسهولة، لكن قاعدة بيانات عملاء أو موردين تضم آلاف السجلات المجمّعة من أنظمة مختلفة عبر سنوات طويلة تحتاج هذا النوع من الفحص قبل أي حملة تسويقية أو تقرير مالي، لأن التكرار الخفي يضخّم الأرقام الفعلية ويكرر الرسائل لنفس الجهة أكثر من مرة واحدة، وهو ما يضر بمصداقية أي تقرير يعتمد على عدد العملاء الفعلي أمام الإدارة.
حالات الاستخدام
تنظيف قاعدة عملاء مجمّعة عبر سنوات
تكتشف شركة الخليج الرقمية أن قاعدة عملائها تحمل الجهة نفسها بعدة صيغ كتابة مختلفة عبر الـAPI، وتراجع الأزواج المرشحة قبل حملة تسويقية موحّدة.
توحيد قائمة موردين قبل تدقيق مالي
يراجع فريق مؤسسة النخيل للمقاولات قائمة موردين ضخمة قبل تدقيق مالي سنوي، ويستخدم الأداة لاكتشاف الموردين المسجّلين أكثر من مرة بصيغ مختلفة.
دمج قوائم بريدية من حملات متعددة
تدمج شركة الواحة للتجارة المحدودة قوائم بريدية من عدة حملات إعلانية، وتكتشف الأزواج شبه المكررة قبل إرسال حملة موحّدة بدل رسالتين لنفس الشخص.
الأسئلة الشائعة
هل الأداة مجانية؟
لا، التضمين الدلالي يحتاج محرك ذكاء اصطناعي؛ الاستخدام عبر الصفحة أو الـAPI مدفوع بسعر معلن $0.002 للطلب و$0.0015 لكل ألف صف، دون نسخة مجانية.
ما الفرق بينها وبين أداة حذف التكرار العادية؟
أداة التكرار العادية تطابق حرفيًا أو حسب عمود محدد؛ هذه الأداة تكتشف تشابهًا معنويًا حتى مع اختلاف شكل الكتابة تمامًا.
هل تحذف الأداة السجلات المكررة تلقائيًا؟
لا، تعرض الأزواج المرشحة للتكرار لمراجعة سريعة، لأن القرار النهائي في الحالات الحدّية يحتاج تأكيدًا بشريًا.
هل يُحتفظ بالبيانات بعد المعالجة؟
لا، تُحذف فور اكتمال الطلب.
كم تبلغ التكلفة لملف من عشرة آلاف صف؟
نحو $0.017 ($0.002 للطلب و$0.0015 لكل ألف صف).
هل يعمل من الجوال؟
نعم، ترفع الملف من متصفح الجوال وتحصل على النتيجة بالطريقة نفسها.
هل الدفع بالريال أو الدرهم ممكن؟
الأسعار بالدولار عبر PayPal؛ لترتيب آخر راسلنا عبر واتساب أو البريد.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
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)مثال على الطلب
{
"text": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.dedupe_semantic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |