Domanda

Ho bisogno di utilizzare Wordnet in un'app basata su Java. Voglio:

È stato utile?

Soluzione

Io uso le mascelle per la normale roba Wordnet perché è facile da usare. Per le metriche di similarità, tuttavia, uso la libreria situata qui . Avrai anche bisogno di scaricare Questa cartella , contenente i dati di Wordnet e Corpus pre-elaborati, per il lavoro. Il codice può essere utilizzato in questo modo, supponendo che tu abbia effettuato quella cartella in un'altra "lib" nella cartella del progetto:

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");
.

Questo stampierà qualcosa come quanto segue, mostrando il punteggio di somiglianza tra ogni possibile combinazione di sinsati rappresentati dalle parole da confrontare:

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
.

Ci sono anche metodi che consentono di specificare quale senso di entrambi / entrambe le parole: res(String word1, int senseNum1, String word2, partOfSpeech), ecc. Sfortunatamente, la documentazione di origine non è Javadoc, quindi dovrai ispezionare manualmente. La fonte può essere scaricata qui .

Gli algoritmi disponibili sono:

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();
.

Inoltre, ti richiede di avere il file JAR per il MIT jwi

Altri suggerimenti

C'è una funzione nelle mascelle per trovare una formazione di wordforms simili Qui ci sono dettagli:

Aggettivi pubbliciynset [] getimilar () Thriw WordnetException e qui è il link che puoi controllare: http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/adjectiveesynset.html Questo collegamento consente di utilizzare i dettagli che puoi usare.

Non sono sicuro che le mascelle o JWNL forniscano metodi per calcolare la somiglianza tra i sinsafici, ma ho provato sia per la ricerca dei sinsati e ho trovato le mascelle più facili da usare.Nello specifico, il semplice:

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

è stato più facile per me capire rispetto al file_properties.xml di JWNL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top