0
$\begingroup$

I am looking, as a theoretical exercise, which algorithm/ technique could be the best one to identify customer records that were duplicated within a retail company system. For example, when a company has someone’s name, mailing address or email entered differently from one shopping experience to the next.”

For example, a shopper is in the system as “Christine” in one record and “Chris” in another. Or an address is “123 Main Street, Apartment B” in one record, but “123-B Main Street” in another. How could be a good ML technique to determine when multiple records actually represent the same person and link them together.

$\endgroup$
4
  • 3
    $\begingroup$ Have you tried non-ML solution first? How did it perform? $\endgroup$
    – Tim
    Jul 14, 2020 at 7:42
  • 3
    $\begingroup$ Have you looked at using fuzzy string matching? $\endgroup$
    – vigos
    Jul 14, 2020 at 8:11
  • $\begingroup$ @Tim A non-ML solution is the current solution, but it is not efficient because rely on considering each possible case. $\endgroup$
    – RMN
    Jul 14, 2020 at 23:26
  • $\begingroup$ @vigos I will take a look on fuzzy string matching. Thank you! $\endgroup$
    – RMN
    Jul 14, 2020 at 23:26

1 Answer 1

1
$\begingroup$

Different fields may need different logic. Let's take an address as an example. Even if address is represented as 2 different strings, geocoding services (e.g. Google Maps) should still resolve them to the same longitude and latitude. Matching 2 numbers should be trivial to match between records.

Names usually have a canonical form (or several, e.g. "Alex" may be just "Alex" or short version of "Alexander" or "Alexey" in some countries).

For more complicated cases such as matching profession, profile description, etc. you can train a siamese network which is specifically designed to distinguish between 2 views of the same object and 2 different objects (e.g. someone's face of profile description). The downside, of course, is that you will need to collect a dataset for training.

$\endgroup$
1
  • $\begingroup$ Thank you! I didn't know anything about "Siamese network". I will read about it. $\endgroup$
    – RMN
    Aug 14, 2020 at 21:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.