Hi All,
I have hard time in understanding how reltio calculates the relevance Score in Relevance based algorithm. I have below match rule configured.
{
"uri": "configuration/entityTypes/DvaPerson/matchGroups/PatientIteration1",
"label": "PatientIteration1",
"type": "relevance_based",
"scope": "ALL",
"useOvOnly": "true",
"rule": {
"ignoreInToken": [
"configuration/entityTypes/DvaPerson/attributes/ssn4",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine2",
"configuration/entityTypes/DvaPerson/attributes/names/attributes/middleName",
"configuration/entityTypes/DvaPerson/attributes/names/attributes/suffix",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine1",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/city",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/state",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/zip",
"configuration/entityTypes/DvaPerson/attributes/phones/attributes/phone",
"configuration/entityTypes/DvaPerson/attributes/emails/attributes/email"
],
"cleanse": [
{
"cleanseAdapter": "com.reltio.cleanse.impl.NameDictionaryCleanser",
"mappings": [
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/firstName",
"mandatory": false,
"allValues": false,
"cleanseAttribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/firstName"
}
]
}
],
"matchTokenClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/dob",
"class": "com.reltio.match.token.ExactMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/ssn4",
"class": "com.reltio.match.token.ExactMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/phones/attributes/phone",
"class": "com.reltio.match.token.PhoneNumberMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/gender",
"class": "com.reltio.match.token.ExactMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/suffix",
"class": "com.reltio.match.token.ExactMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine1",
"class": "com.reltio.match.token.AddressLineMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine2",
"class": "com.reltio.match.token.AddressLineMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/zip",
"class": "com.reltio.match.token.ExactMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/firstName",
"class": "com.reltio.match.token.DoubleMetaphoneMatchToken"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/lastName",
"class": "com.reltio.match.token.DoubleMetaphoneMatchToken"
}
]
},
"comparatorClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/dob",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/ssn4",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/phones/attributes/phone",
"class": "com.reltio.match.comparator.PhoneNumberComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/gender",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/middleName",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/suffix",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine1",
"class": "com.reltio.match.comparator.AddressLineComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine2",
"class": "com.reltio.match.comparator.AddressLineComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/state",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/city",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/zip",
"class": "com.reltio.match.comparator.BasicStringComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/firstName",
"class": "com.reltio.match.comparator.DoubleMetaphoneComparator"
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/lastName",
"class": "com.reltio.match.comparator.DoubleMetaphoneComparator"
}
]
},
"and": {
"exact": [
"configuration/entityTypes/DvaPerson/attributes/dob",
"configuration/entityTypes/DvaPerson/attributes/ssn4",
"configuration/entityTypes/DvaPerson/attributes/phones/attributes/phone",
"configuration/entityTypes/DvaPerson/attributes/gender",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine1",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine2",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/state",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/city",
"configuration/entityTypes/DvaPerson/attributes/addresses/attributes/zip",
"configuration/entityTypes/DvaPerson/attributes/emails/attributes/email",
"configuration/entityTypes/DvaPerson/attributes/names/attributes/firstName",
"configuration/entityTypes/DvaPerson/attributes/names/attributes/lastName"
],
"exactOrAllNull": [
"configuration/entityTypes/DvaPerson/attributes/names/attributes/middleName",
"configuration/entityTypes/DvaPerson/attributes/names/attributes/suffix"
]
},
"weights": [
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/firstName",
"weight": 0.15
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/lastName",
"weight": 0.15
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/middleName",
"weight": 0.04
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/names/attributes/suffix",
"weight": 0.02
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/gender",
"weight": 0.02
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/dob",
"weight": 0.12
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/ssn4",
"weight": 0.1
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/emails/attributes/email",
"weight": 0.1333
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/phones/attributes/phone",
"weight": 0.1333
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine1",
"weight": 0.0933
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/addressLine2",
"weight": 0.01
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/city",
"weight": 0.01
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/state",
"weight": 0.01
},
{
"attribute": "configuration/entityTypes/DvaPerson/attributes/addresses/attributes/zip",
"weight": 0.01
}
],
"actionThresholds": [
{
"type": "potential_match",
"threshold": "0.63-1",
"label": "Strong matches"
},
{
"type": "potential_match",
"threshold": "0.4-0.63",
"label": "Medium matches"
}
]
},
"scoreStandalone": 0,
"scoreIncremental": 0
}
]
For this match rule , i got the below response from _verifymatches. Every thing looks correct except the relevance score.
{
"summary": [
"There are common match tokens. These entities are considered as match candidates and will be checked according to the list of common applicable match rules.",
"There are no bypassed rules for the given entity type",
"No manually set 'not-matches' are found for the entities"
],
"matchTokensSummary": {
"firstTotal": 1,
"secondTotal": 1,
"common": [
"7W6xk83rlrA="
]
},
"applicableMatchGroups": {
"first": [
"configuration/entityTypes/DvaPerson/matchGroups/PatientIteration1"
],
"second": [
"configuration/entityTypes/DvaPerson/matchGroups/PatientIteration1"
],
"both": [
"configuration/entityTypes/DvaPerson/matchGroups/PatientIteration1"
]
},
"candidatesDiscovery": {
"matchGroupCandidateDiscoveries": {
"configuration/entityTypes/DvaPerson/matchGroups/PatientIteration1": {
"label": "PatientIteration1",
"candidatesFound": true
}
},
"globalCandidatesFound": true
},
"rules": {
"configuration/entityTypes/DvaPerson/matchGroups/PatientIteration1": {
"label": "PatientIteration1",
"matched": true,
"matchAction": "POTENTIAL_MATCH",
"matchedByDocuments": true,
"bypassed": false,
"relevance": 0.5018012404154513,
"useOvOnly": true,
"matchTokens": {
"first": {
"foundInMatchTables": true,
"tokens": [
"7W6xk83rlrA="
],
"tokensGenerated": 1
},
"second": {
"foundInMatchTables": true,
"tokens": [
"7W6xk83rlrA="
],
"tokensGenerated": 1
},
"intersection": {
"tokens": [
"7W6xk83rlrA="
]
}
},
"rule": {
"relevance": 0.5018012404154513,
"and": [
{
"relevance": 0.5018012404154513,
"and": [
{
"exact": {
"ssn4": {
"ignoreInToken": true,
"relevance": 0.0
},
"addresses.addressLine1": {
"ignoreInToken": true,
"relevance": 0.0933
},
"addresses.addressLine2": {
"ignoreInToken": true,
"relevance": 0.0
},
"gender": {
"ignoreInToken": false,
"relevance": 0.02
},
"dob": {
"ignoreInToken": false,
"relevance": 0.12
},
"addresses.state": {
"ignoreInToken": true,
"relevance": 0.01
},
"addresses.zip": {
"ignoreInToken": true,
"relevance": 0.01
},
"addresses.city": {
"ignoreInToken": true,
"relevance": 0.01
},
"phones.phone": {
"ignoreInToken": true,
"relevance": 0.0
},
"names.lastName": {
"ignoreInToken": false,
"relevance": 0.15
},
"emails.email": {
"ignoreInToken": true,
"relevance": 0.0
},
"names.firstName": {
"ignoreInToken": false,
"relevance": 0.15
}
},
"exactOrAllNull": {
"names.suffix": {
"ignoreInToken": true,
"relevance": 0.02
},
"names.middleName": {
"ignoreInToken": true,
"relevance": 0.04
}
},
"relevance": 0.5018012404154513
}
]
}
]
}
}
},
"manualMatches": {}
}
I am expecting 0.63 as relevance score but it is given only 0.501801 . Based on my match rule configuration , can someone explain how the numerator and denominator value is calculated? complete attribute level score while calculating the final score?
------------------------------
Vasu M
TechLead - MDM
------------------------------