ProbabilisticMatchingService returns no matches - Link Table does show matches

  3 posts   Feedicon  
Replies: 2 - Last Post: November 28, 2011 19:59
by: Csaba Toth
showing 1 - 3 of 3
 
Posted: November 17, 2011 22:29 by murphyric
Hi,
I am running some tests using openEMPI core Jar.

Step-1 I inserted 5 similar Persons using the 'mpi-config.xml' file configured in 'applicationContext-service.xml' for bean id="configuration". All of those 5 persons are linked, assuming that they are found in the 'person_link' Table.

Step-2 I changed the configuration property to 'mpi-config-probablistic-matching.xml' in the 'applicationContext-service.xml' to check the ProbabilisticMatchingService.match() as shown in the below code, which resulted in 'matches = 0'. Is this result True as per the algorithm?

I request for your help. Please give me a direction to match records using the Probablistic Algorithm.

Also, the "FellegiSunterConfiguration.ser" is not found during the init() call and don't really know if I'm right going forward even after seeing this Error?


try {
			ProbabilisticMatchingService matchingService = (ProbabilisticMatchingService) applicationContext.getBean("probabilisticMatchingService");
			matchingService.init();
			Person personOne = new Person();
			personOne.setAddress1("49 Applecross Road");
			personOne.setCity("Palo Alto");
			personOne.setState("CA");
			personOne.setPostalCode("94301");
			personOne.setFamilyName("Martinez");
			personOne.setGivenName("Javier");
			Nationality nationality = new Nationality();
			nationality.setNationalityCd(100);
			personOne.setNationality(nationality);
			java.util.Calendar calendar = java.util.Calendar.getInstance();
			calendar.set(1977, 2, 14);
			java.util.Date birthDate = calendar.getTime();
			personOne.setDateOfBirth(birthDate);

			PersonIdentifier pi = new PersonIdentifier();
			pi.setIdentifier("ABCDE");
			IdentifierDomain id = new IdentifierDomain();
			id.setNamespaceIdentifier("HIMSS2005");
			pi.setIdentifierDomain(id);
			personOne.addPersonIdentifier(pi);
			
			Record record = new Record(personOne);
			//I set the recordId to 450 which is his ID in the 'Person' Table. Let me know if this is Correct.
			record.setRecordId(new Long(new Integer(450)));
			
			Set<RecordPair> matches = matchingService.match(record);
			//'matches' found are 0 after the above line.
			Iterator it = matches.iterator();
			int i = 0;
			while (it.hasNext()) {
			    // Get element
				RecordPair pair = (RecordPair)it.next();
				i++;
					
			}
			System.out.println("RecordPairs Size= "+i);		
			
		}catch (Exception e) {
			log.error("ERROR " + e.getMessage(), e);
			throw new RuntimeException("Error " + e.getMessage());
		}


Thanks in Advance
 
Posted: November 28, 2011 19:54 by Csaba Toth
I guess this is with the newest version of OpenEMPI. I'm still using 2.1.3, and the configurations and modularization is greately refactored since then, so I'll only be able to help you later.
 
Posted: November 28, 2011 19:59 by Csaba Toth
About FellegiSunterConfiguration.ser: the absence of this should be normal, this is a byproduct of the the Probabilistic Match run, serialization of the FellegiSunterParameters object. I remember I had some trouble with it when I was a newbie, but if there's no error in the software the absence of it shouldn't ruin a record linkage attempt.
Replies: 2 - Last Post: November 28, 2011 19:59
by: Csaba Toth
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20120518.3c65429)
 
 
Close
loading
Please Confirm
Close