Pregunta

Necesito usar WordNet en una aplicación basada en Java. Quiero:

¿Fue útil?

Solución

Utilizo mandíbulas para cosas normales de wordnet porque es fácil de usar. Sin embargo, para métricas de similitud, uso la biblioteca ubicada aquí . También deberá descargar Esta carpeta que contiene datos de WordNet y Corpus pre-procesados, para que funcione. El código se puede usar así, suponiendo que colocó esa carpeta en otra llamada "lib" en la carpeta de su proyecto:

JWS ws = new JWS("./lib", "3.0");
Resnik res = ws.getResnik();
TreeMap<String, Double> scores1 = res.res(word1, word2, partOfSpeech);
for(Entry<String, Double> e: scores1.entrySet())
    System.out.println(e.getKey() + "\t" + e.getValue());
System.out.println("\nhighest score\t=\t" + res.max(word1, word2, partOfSpeech) + "\n\n\n");

Esto imprimirá algo como lo siguiente, mostrando la puntuación de similitud entre cada posible combinación de sínsetas representadas por las palabras que se deben comparar:

hobby#n#1,gardening#n#1 2.6043996588901104
hobby#n#2,gardening#n#1 -0.0
hobby#n#3,gardening#n#1 -0.0
highest score   =   2.6043996588901104

También hay métodos que le permiten especificar qué sentido de cualquiera / ambas palabras: generalmente, etc., desafortunadamente, la documentación de origen no es Javadoc, por lo que deberá inspeccionarlo manualmente. La fuente se puede descargar aquí .

Los algoritmos disponibles son:

JWSRandom(ws.getDictionary(), true, 16.0);//random number for baseline
Resnik res = ws.getResnik();
LeacockAndChodorowlch = ws.getLeacockAndChodorow();
AdaptedLesk adLesk = ws.getAdaptedLesk();
AdaptedLeskTanimoto alt = ws.getAdaptedLeskTanimoto();
AdaptedLeskTanimotoNoHyponyms altnh = ws.getAdaptedLeskTanimotoNoHyponyms();
HirstAndStOnge hso = ws.getHirstAndStOnge();
JiangAndConrath jcn = ws.getJiangAndConrath();
Lin lin = ws.getLin();
WuAndPalmer wup = ws.getWuAndPalmer();

Además, requiere que tenga el archivo JAR para el MIT's jwi

Otros consejos

Hay una función en las mandíbulas para encontrar formas de palabras similares Aquí hay detalles:

Adjetivo público [] GetSimilir () lanza WORDNETEXCETCHE Y Aquí está un enlace que puede verificar: http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/adjetivivesyset.html Este enlace contiene detalles que puede usar.

No estoy seguro de si mis mandíbulas o JWNL proporcionan métodos para calcular la similitud entre los sinsejidos, pero he intentado tanto para buscar sinsejidos y he encontrado que las mandíbulas sean más fáciles de usar.Específicamente, el simple:

    // Specifying the Database Directory
    System.setProperty("wordnet.database.dir", "C:/WordNet/2.1/dict/");

fue más fácil para mí entender que el requisito de file_properties.xml de JWNL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top