dnet-hadoop/dhp-pace-core/src/main/java/eu/dnetlib/pace/tree/NumbersComparator.java

36 lines
811 B
Java
Raw Normal View History

2023-07-06 10:28:53 +02:00
package eu.dnetlib.pace.tree;
2023-07-06 10:28:53 +02:00
import java.util.Map;
import eu.dnetlib.pace.config.Config;
import eu.dnetlib.pace.tree.support.AbstractStringComparator;
import eu.dnetlib.pace.tree.support.ComparatorClass;
@ComparatorClass("numbersComparator")
public class NumbersComparator extends AbstractStringComparator {
2023-07-06 10:28:53 +02:00
Map<String, String> params;
2023-07-06 10:28:53 +02:00
public NumbersComparator(Map<String, String> params) {
super(params);
this.params = params;
}
2023-07-06 10:28:53 +02:00
@Override
public double distance(String a, String b, Config conf) {
2023-07-06 10:28:53 +02:00
// extracts numbers from the field
String numbers1 = getNumbers(nfd(a));
String numbers2 = getNumbers(nfd(b));
2023-07-06 10:28:53 +02:00
if (numbers1.isEmpty() || numbers2.isEmpty())
return -1.0;
2023-07-06 10:28:53 +02:00
int n1 = Integer.parseInt(numbers1);
int n2 = Integer.parseInt(numbers2);
2023-07-06 10:28:53 +02:00
return Math.abs(n1 - n2);
}
}