Frage

Ich muss Wordnet in einer Java-basierten App verwenden.Ich möchte:

  • synsets suchen

  • ähnlichkeit / Verwandtschaft zwischen Synsets finden

Meine App verwendet RDF-Diagramme und ich weiß, dass es SPARQL-Endpunkte mit Wordnet gibt, aber ich denke, es ist besser, eine lokale Kopie des Datensatzes zu haben, da er nicht zu groß ist.

Ich habe folgende Gläser gefunden:

Was würden Sie für meine App empfehlen?

Ist es möglich, eine Perl-Bibliothek aus einer Java-App über einige Bindungen zu verwenden?

Danke!Mulone

War es hilfreich?

Lösung

Ich benutze JAWS für normale Wordnet-Sachen, weil es einfach zu bedienen ist.Für Ähnlichkeitsmetriken verwende ich jedoch die Bibliothek hier.Sie müssen auch herunterladen dieser ordner, der vorverarbeitete WordNet- und Korpusdaten enthält, damit es funktioniert.Der Code kann folgendermaßen verwendet werden, vorausgesetzt, Sie haben diesen Ordner in einem anderen Ordner namens "lib" in Ihrem Projektordner abgelegt:

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

Dies wird etwa wie folgt gedruckt und zeigt den Ähnlichkeitswert zwischen jeder möglichen Kombination von Synsets an, die durch die zu vergleichenden Wörter dargestellt werden:

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

Es gibt auch Methoden, mit denen Sie angeben können, welchen Sinn eines / beide Wörter haben: res(String word1, int senseNum1, String word2, partOfSpeech), usw.Leider ist die Quelldokumentation kein JavaDoc, daher müssen Sie sie manuell überprüfen.Die Quelle kann heruntergeladen werden hier.

Die verfügbaren Algorithmen sind:

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

Außerdem müssen Sie die JAR-Datei für MITS haben JWI

Andere Tipps

In Backen gibt es Funktion, um ähnliche Wordforms zu finden Hier sind Details:

Öffentlicher Adjektivsynset [] getSmimilar () löst WordNetException und hier ist Link, den Sie überprüfen können: http://lyle.smu.edu/tpell/jaws/doc/edu/smu/tspell/wordnet/adjektivsynset.html Dieser Link fällt an, dass Sie Details verwenden, die Sie verwenden können.

Ich bin nicht sicher, ob entweder Backen oder JWNL Methoden zur Berechnung der Ähnlichkeit zwischen Synsen bereitstellen, aber ich habe sowohl für das Suchen von Synsets ausprobiert, und ich habe Backen erleichtert zu verwenden.Insbesondere das einfache: generasacodicetagpre.

war mir leichter zu verstehen als die File_Properties.xml-Anforderung von JWNL.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top