הסרת כפילויות מנתונים שנגרדו: מהתאמה מדויקת לדמיון וקטורי

נתונים שנגרדו ממקורות שונים מכילים בהכרח כפילויות, שמאטות את האתר ופוגעות באמון הלקוחות. אנו מפתחים ומיישמים אלגוריתמי deduplication שמוצאים ומאחדים רשומות כפולות גם עם הבדלים קלים בשמות ו-SKUs. הצוות שלנו מספק את הפרויקט במפתח מלא—מניתוח נתונים ועד הגדרה ותמיכה שוטפת—ומבטיח קטלוג נקי ומסודר.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הסרת כפילויות מנתונים שנגרדו: מהתאמה מדויקת לדמיון וקטורי
בינוני
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

גרידת נתונים ממספר מקורות מובילה בהכרח לכפילויות: מוצר מופיע באתר היצרן, בשלושה קטלוגים של מפיצים ובמרקטפלייס. השוואה נאיבית לפי URL או שם עובדת בצורה גרועה—אנו משתמשים בגישות חכמות יותר. הניסיון שלנו מראה שבלי דדופליקציה נכונה, הקטלוג מתנפח ב-20–40%, ומהירות טעינת העמוד יורדת עקב בקשות מיותרות. כפילויות בקטלוג לא רק מאטות את האתר אלא גם מפחיתות המרות ב-10–15%: מבקר רואה שני מוצרים זהים ומטיל ספק באמינות החנות. שגיאות במלאי, הזמנות כפולות, בלבול במחירים—כל אלה תוצאות של נתונים לא נקיים. מערכת הדדופליקציה שלנו פותרת בעיות אלה על ידי הבטחת מקור אמת יחיד. המהנדסים המוסמכים שלנו מבטיחים דיוק של לפחות 95% על מדגם בדיקה.

למה דדופליקציה פשוטה לא עובדת?

בעיה 1: פורמטי נתונים שונים

ספק אחד מספק מק"ט כ-"ART-123", אחר כ-"ART123". השוואה ישירה תפספס את הכפילות.

בעיה 2: שינוי בסדר המילים

"iPhone 15 Pro Max 256GB" ו-"iPhone 15 256GB Pro Max" הם אותו מוצר, אבל המחרוזת שונה.

בעיה 3: שגיאות כתיב

"Samsung Galaxy S24 Ultra" ו-"Samsung Galaxy S24 Ulta" כמעט זהים אבל לא תואמים תו-לפי-תו.

רמות של דדופליקציה

התאמה מדויקת

לפי מפתח מנורמל: SKU, EAN/GTIN, מק"ט יצרן. השיטה האמינה ביותר, עובדת כאשר קיים מזהה ייחודי.

def normalize_sku(raw_sku: str) -> str:
    # убираем пробелы, дефисы, приводим к верхнему регистру
    return re.sub(r'[\s\-_/]', '', raw_sku).upper()

גיבוב תוכן

לתוכן (מאמרים, תיאורים)—מנרמלים את הטקסט ומחשבים גיבוב.

def content_hash(text: str) -> str:
    normalized = ' '.join(text.lower().split())  # убираем лишние пробелы
    return hashlib.sha256(normalized.encode()).hexdigest()

התאמה עמומה

למוצרים ללא SKU מפורש—השוואת כותרות לפי מרחק לוונשטיין או אלגוריתמי Token Sort/Token Set Ratio.

from rapidfuzz import fuzz, process

def find_duplicate(new_title: str, existing_titles: list[str], threshold=85):
    result = process.extractOne(
        new_title,
        existing_titles,
        scorer=fuzz.token_sort_ratio
    )
    if result and result[1] >= threshold:
        return result[0]
    return None

def normalize_sku(raw_sku: str) -> str: # убираем пробелы, дефисы, приводим к верхнему регистру return re.sub(r'[\s\-_/]', '', raw_sku).upper() ממיין מילים לפני ההשוואה—עובד היטב עם שינויים בסדר מילים בכותרות מוצרים.

דמיון וקטורי

לטקסטים בעלי משמעות סמנטית—אמבדינגס באמצעות sentence-transformers ודמיון קוסינוס.

from sentence_transformers import SentenceTransformer
import numpy as np

model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')

def are_similar(text1: str, text2: str, threshold=0.92) -> bool:
    embeddings = model.encode([text1, text2])
    cosine_sim = np.dot(embeddings[0], embeddings[1]) / (
        np.linalg.norm(embeddings[0]) * np.linalg.norm(embeddings[1])
    )
    return float(cosine_sim) >= threshold

לנפחים גדולים—אינדקס ב-pgvector (PostgreSQL) או Milvus לחיפוש וקטורי מקורב.

השוואת שיטות

רמה מהירות דיוק מתי להשתמש
התאמה מדויקת מיידי 100% יש SKU/EAN
גיבוב תוכן מהיר גבוה תוכן ללא שינוי
התאמה עמומה בינוני בינוני כותרות עם וריאציות מילים
דמיון וקטורי איטי גבוה טקסטים דומים סמנטית

דמיון וקטורי מניב 20% יותר התאמות מדויקות מאשר התאמה עמומה אך דורש פי 5 יותר זמן אינדוקס.

איך להאיץ דדופליקציה של מערכים גדולים?

עם מיליוני רשומות, השוואה זוגית אינה מעשית. אנו משתמשים באסטרטגיות:

  • MinHash + LSH—זיהוי מהיר של מועמדים לכפילות במערכי טקסט גדולים. עוד על MinHash.
  • Blocking—קודם מסננים לפי מאפיינים מדויקים (קטגוריה, טווח מחירים), ואז משווים בצורה עמומה רק בתוך הבלוק.
  • אינדקסים ב-PostgreSQL—def content_hash(text: str) -> str: normalized = ' '.join(text.lower().split()) # убираем лишние пробелы return hashlib.sha256(normalized.encode()).hexdigest() לחיפוש מחרוזות עמום עם from rapidfuzz import fuzz, process def find_duplicate(new_title: str, existing_titles: list[str], threshold=85): result = process.extractOne( new_title, existing_titles, scorer=fuzz.token_sort_ratio ) if result and result[1] >= threshold: return result[0] return None ואופרטור token_sort_ratio. תיעוד pg_trgm.
-- Установка расширения
CREATE EXTENSION pg_trgm;

CREATE INDEX ON products USING GIN (title gin_trgm_ops);

-- Поиск похожих названий
SELECT id, title, similarity(title, 'Iphone 15 pro max 256') AS sim
FROM products
WHERE title % 'Iphone 15 pro max 256'
ORDER BY sim DESC
LIMIT 10;
אסטרטגיה מהירות זיכרון ישימות
MinHash+LSH מהיר מאוד בינוני מיליוני טקסטים
Blocking מהיר נמוך נתונים ממוקמים בקטגוריות
pg_trgm GIN בינוני בינוני מחרוזות עד 1000 תווים
איך לבחור אסטרטגיה?הבחירה תלויה בנפח הנתונים, בזיכרון הזמין ובדיוק הרצוי. לקטלוגים עד 100k פריטים, pg_trgm מספיק. ל-10+ מיליון רשומות, השתמשו ב-MinHash+LSH עם blocking.

ניהול כפילויות

כפילויות שנמצאו אינן מוסרות אוטומטית. המערכת יוצרת קבוצות מועמדים עם ציון התאמה מחושב. ההחלטה הסופית היא אוטומטית (כאשר הציון > 95%) או דרך ממשק בדיקה ידני.

למה להפקיד דדופליקציה בידי אנשי מקצוע?

דדופליקציה שגויה עלולה למחוק רשומות ייחודיות או לפספס כפילויות, מה שמוביל לסתירות בנתונים. הגישה ההנדסית שלנו כוללת ניתוח מבנה הנתונים, בחירת אלגוריתמים אופטימליים והרחבת הפתרון לנפחים שלכם. אחד הפתרונות שלנו לחנות אלקטרונית למוצרי חשמל הפחית כפילויות מ-35% ל-2%, והאיץ את טעינת העמודים ב-40%. יישמנו מעל 30 פרויקטי דדופליקציה, וצברנו מומחיות בתחום זה. צרו קשר להערכה חינמית של הפרויקט שלכם—נציע ארכיטקטורה ולוח זמנים. הזמינו יישום של מערכת דדופליקציה וקבלו ייעוץ ממומחה.

שלבי העבודה

  • ניתוח מבנה נתונים ומקורות כפילויות.
  • עיצוב ארכיטקטורת דדופליקציה (בחירת רמה ואינדקס).
  • יישום אלגוריתם עם בדיקות על הנתונים שלכם.
  • ממשק לבדיקה ידנית (אם נדרש).
  • תיעוד והדרכת צוות.

לוח זמנים

זמן יישום למערכת דדופליקציה עם מספר רמות: 4–7 ימי עבודה. אם נדרשת סכמה וקטורית או הרחבה למיליוני רשומות, לוח הזמנים מתארך ל-2–3 שבועות. אנו מבטיחים הסרת כפילויות עם דיוק של לפחות 95% על מדגם בדיקה.