1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| import edu.sussex.nlp.jws.JWS;
import edu.sussex.nlp.jws.WuAndPalmer;
public class Similarity {
private final WuAndPalmer wup;
private final static double threshold = 0.8;
public String dir;
public Similarity(String dir) {
String realDir = Similarity.class.getClassLoader().getResource(dir)
.getFile().toString();
JWS jws = new JWS(realDir, "3.0");
wup = jws.getWuAndPalmer();
}
public double getSimilarity(String word1, String word2) {
// double max = wup.max(word1, word2, "n");
// double spe = wup.wup(word1, 1, word2, 1, "n");
// System.out.println(word1 + "\t\t" + word2
// + "\t\t" + max + "\t" + spe);
// System.out.println(word1 + "\t\t" + word2 + "\t\t" + max);
return wup.max(word1, word2, "n");
// return wup.wup(word1, 1, word2, 1, "n");
}
public boolean isSimilar(String word1, String word2) {
return (wup.max(word1, word2, "n") > threshold);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Similarity sim = new Similarity(dir);
sim.getSimilarity("car", "bus");
// sim.getSimilarity("car", "wheel");
// sim.getSimilarity("car", "bike");
// sim.getSimilarity("tennis", "football");
// sim.getSimilarity("football", "soccer");
// sim.getSimilarity("tennis", "badminton");
// sim.getSimilarity("pizza", "pasta");
// sim.getSimilarity("taxi", "transport");
// sim.getSimilarity("bus", "transport");
// sim.getSimilarity("car", "transport");
// sim.getSimilarity("bike", "transport");
// sim.getSimilarity("fly", "travel");
// sim.getSimilarity("breakfast", "meal");
// sim.getSimilarity("man", "woman");
// sim.getSimilarity("quick", "slow");
}
} |
Partager