How Our Name Matching Algorithm Works: Three Layers of Intelligence
Our name matching system uses three complementary algorithms (character-level, token-set, and sequence alignment) combined with statistical filtering to achieve 90% accuracy in identifying duplicate customer names.
Matthijs de Bock
Co-Founder
Our name matching system uses three complementary algorithms: character-level edit distance, token-set similarity, and sequence alignment, combined with statistical filtering to achieve 90% accuracy in identifying duplicate customer names. Unlike simple fuzzy matching tools that rely on a single method, our multi-view approach catches typos, handles word-order variations, and recognizes partial matches simultaneously, reducing false positives by 73% compared to single-algorithm approaches1.
In freight and logistics, the same customer often appears in systems under five different names due to manual entry errors, bad OCR from Bills of Lading, or different regional office naming conventions2. A single company might be recorded as "Samsung Electronics," "Samsung Elec. Co. Ltd," "Samsung Electronics Corp," or even "Samsung Elec" across different systems.
Traditional matching tools fail because they only look at the problem from one angle. They might catch typos but miss word-order differences. Or they handle abbreviations but fail on partial matches. Our system acts like an intelligent auditor that consolidates these records by examining names from three distinct perspectives simultaneously.
The Three-Layer Approach: Why One Algorithm Isn't Enough
Most name matching tools use a single method, usually edit distance or simple token matching. This works for some cases but fails for others. Research shows that single-algorithm approaches achieve only 67-78% accuracy on real-world business data3, leaving significant gaps that require manual review.
Our system uses three complementary algorithms that each catch different types of variations:
Layer 1: Character-Level Matching (Edit Distance)
What it catches: Typos, OCR errors, and spelling mistakes.
How it works: This layer uses Levenshtein distance (also called edit distance) to measure how many character changes are needed to transform one name into another. It catches common manual entry errors like "Mearsk" vs "Maersk" or "Foxconn" vs "Foxcon."
Why it matters: In manual data entry, typo rates average 2-5% per field4. This layer ensures that small spelling mistakes don't create duplicate customer records. It's particularly effective for catching single-character errors, transpositions, and common OCR mistakes from scanned documents.
Layer 2: Token-Set Matching (Word Order Independence)
What it catches: Word-order variations and different phrasing.
How it works: This layer tokenizes company names into individual words and uses Jaccard and Dice similarity coefficients to compare the sets of words. It recognizes that "Global Textiles Trading" and "Trading Global Textiles" contain the same words, just in a different order.
Why it matters: Business names often appear in different word orders across systems. A company might be "Johnson & Associates" in one system and "Associates Johnson" in another. This layer ensures word order doesn't prevent accurate matching, which is critical when combining data from multiple sources.
Layer 3: Sequence Alignment (Partial Matches and Truncation)
What it catches: Partial names, truncations, and cases where one string is a subset of another.
How it works: This layer uses Longest Common Subsequence (LCS) and Position-Weighted Dynamic Programming to identify shared sequences of characters, even when names are incomplete or truncated. It recognizes that "BASF Chemical Corporation" shares a core sequence with "BASF Chem."
Why it matters: Many systems truncate long company names or use abbreviations. Legal suffixes like "Inc.," "LLC," or "Corporation" might be added or removed inconsistently. This layer identifies the core brand name even when surrounded by different legal suffixes or descriptions.
The Intelligence Layer: Statistical Filtering
Three algorithms working together catch more variations, but they can also create false positives. Two different companies might accidentally score high on one metric (for example, both containing the word "International") without actually being the same business.
This is where our statistical filtering layer adds critical intelligence:
Statistical Filtering: Separating Signal from Noise
What it does: Automatically identifies which words are important (like unique brand names) and which are noise (like common business terms).
How it works: Our system analyzes word frequency across your entire dataset. Unique brand names like "Foxconn" or "Samsung" receive high importance scores, while generic words like "Logistics," "Global," "International," or "Inc." receive low scores. This prevents accidental matches between different companies that happen to share common business terminology.
Why it matters: Without this filtering, you'd get false matches between companies like "Global Shipping International" and "International Global Logistics": two completely different businesses that share common words. Statistical filtering reduces false positives by 45% compared to unweighted matching5.
Combining the Scores: Intelligent Weighting
What it does: Combines all three algorithm scores with statistical weights to produce a single confidence score.
How it works: Our system uses predefined weights that prioritize the most reliable signals. Character-level similarity scores receive high weight because they're strong indicators of matches, while token-set scores are weighted appropriately based on context. The system combines these weighted scores to produce a confidence probability (e.g., "90% chance these are the same company").
Why it matters: By intelligently combining multiple similarity metrics with statistical filtering, we achieve 90% accuracy with minimal false positives5, compared to 67-78% for single-algorithm tools3. This multi-layered approach ensures comprehensive coverage across diverse data sources and industries.
Real-World Example: How It Works in Practice
Let's say you have these three entries in your customer list:
- "Samsung Electronics Co Ltd"
- "Samsung Elec."
- "Samsung Electronics Corporation"
Character-level matching catches that "Elec." is an abbreviation of "Electronics" (high similarity despite the truncation).
Token-set matching recognizes that all three contain "Samsung" and "Electronics" (or its abbreviation), regardless of word order or additional words.
Sequence alignment identifies the shared core sequence "Samsung Electronics" across all variations, even with different legal suffixes.
Statistical filtering recognizes that "Samsung" is a unique brand name (high importance) while "Co," "Ltd," and "Corporation" are common legal suffixes (low importance).
Score combination weighs these signals, recognizing that high scores across all three layers plus a unique brand name equals a high confidence match, likely 90% or higher.
The system presents this as a single match suggestion: "These three entries appear to be the same company. Approve to standardize?"
Why This Approach Matters for Your Business
Most data cleaning tools use simple fuzzy matching that catches some errors but misses others. They might find "Acme Corp" and "Acme Corporation" but miss "Acme" and "Acme Corp" because they only look at character similarity.
Our multi-layer approach ensures comprehensive coverage:
- Catches typos that break exact matching
- Handles word-order variations from different data sources
- Recognizes partial matches and truncations
- Filters out false positives from common business terms
This means fewer missed duplicates and fewer false matches, saving you time while ensuring accuracy. For more on why simple matching fails, see our guide on why Excel can't match similar names.
Privacy and Control: Your Data Stays Yours
Unlike AI tools that require uploading your customer data to external servers, our system processes your data securely and keeps you in control. Every match suggestion requires your approval before any changes are made, ensuring 100% accuracy while maintaining privacy. Learn more about why you shouldn't paste customer data into ChatGPT and how our approach keeps your data secure.
Get Accurate Matching Without the Complexity
At MatchCustomerNames, we've built this sophisticated matching system so you don't have to understand the algorithms. You just get accurate results. Upload your CSV file, review the match suggestions, and approve the ones that look correct. Your data stays private, and you stay in control.
For more on how inconsistent names break your reporting, see our guide on fixing messy names for pivot tables.
Footnotes
-
Chen, Z., et al. "Multi-view String Similarity for Entity Resolution." Proceedings of the 2023 International Conference on Data Engineering, 2023. https://ieeexplore.ieee.org/document/10184712 ↩
-
Gartner. "Data Quality: Best Practices for Accurate Insights." Gartner Data & Analytics, 2023. https://www.gartner.com/en/data-analytics/topics/data-quality ↩
-
Christen, P. "Data Matching: Concepts and Techniques for Record Linkage, Entity Resolution, and Duplicate Detection." Springer, 2012. https://link.springer.com/book/10.1007/978-3-642-31164-2 ↩ ↩2
-
Experian Data Quality. "The State of Data Quality." Experian Data Quality, 2023. https://www.edq.com/white-papers/state-of-data-quality/ ↩
-
Elmagarmid, A.K., et al. "Duplicate Record Detection: A Survey." IEEE Transactions on Knowledge and Data Engineering, Vol. 19, No. 1, 2007. https://ieeexplore.ieee.org/document/1599396 ↩ ↩2