intuit / fuzzy-matcher

A Java library to determine probability of objects being similar.
Apache License 2.0
226 stars 69 forks source link

Name List matcher #61

Closed margozzi closed 1 year ago

margozzi commented 2 years ago

My use case is to compare individuals from an ancestry application. I need the ability to check on a list of sibling names and children names.

I am currently using the library to check names, gender, birthdates and such. These are all single values.

Now imagine I have a random number of siblings. I would like to call it a match if at least one sibling name matches between individual A and B. I also would like to do the same with a list of child names.

I have not thought of a way to use the existing functionality to do this. Perhaps it can be done. I have only been using the library for a week. If so, please tell me how. If not, I am asking that the library be extended to support a list of names as a type. I could imagine it being used like this:

.addElement(new Element.Builder<List>() .setValue(individual.getSiblingNames()) .setVariance("Siblings") .setType(ElementType.NAME_LIST) .setWeight(0.3) .createElement())

Maybe a setting for how many name matches are required for it to fuzzy match? I would be satisfied with just one, but it could be more generic.

manishobhatia commented 2 years ago

Hi Michael,

There is support to match a single document (individual) with a list of documents (siblings) . You probably need the 3rd API mentioned in Match Service

matchService.applyMatchByDocId(Document document, List<Document> matchWith)

Here is a reference to unit test

manishobhatia commented 1 year ago

Closing this issue. Feel free to open it, if additional support is required