2010-07-13 4 views
3

Je recherche dans Wordnet des synonymes pour une grande liste de mots. La façon dont je l'ai fait, quand un mot a plus d'un synonyme, les résultats sont retournés dans l'ordre alphabétique. Ce dont j'ai besoin, c'est de les faire trier par leur probabilité d'occurrence, et je prendrais seulement le synonyme 1 supérieur.Comment obtenir des synonymes classés par leur probabilité d'occurrence à partir de Wordnet

J'ai utilisé la base de données prolog wordnet et Syns2Index pour le convertir en index de type Lucene pour l'interrogation des synonymes. Y a-t-il un moyen de les ordonner par leurs probabilités de cette façon, ou je devrais utiliser une autre approche?

La vitesse n'est pas importante, cette recherche de synonyme ne se fera pas en ligne.

+0

Ceci est très spécifique. J'ai trouvé ceci: http://lucene.apache.org/java/2_0_0/api/org/apache/lucene/wordnet/Syns2Index.html Mais probablement vous êtes déjà au courant de cela. – Baltasarq

+0

@Baltarsarq: merci, je l'ai utilisé pour convertir la base de données prolog de WordNet dans l'index synonyme de lucene – Julia

Répondre

0

Je pense que vous devriez faire un autre pas (à condition que la vitesse ne soit pas importante). À partir de l'index Lucene, vous devriez construire un autre dictionnaire dans lequel chaque mot est mappé à un petit objet qui contient le seul synonyme que sa signification a une plus grande probabilité d'apparition, sa signification, et la probabilité d'apparition. I.e., étant donné ce code:

class Synonym { 
public: 
    String name; 
    double probability; 
    String meaning; 
} 

Map<String, Synonym> m = new HashMap<String, Synonym>(); 

... il suffit de le remplir à partir de l'index Lucene.

+0

Je comprends l'idée, comme vous l'avez déjà dit, ce dont j'ai besoin est spécifique: je sais que l'interrogation wordnet en ligne renvoie les synonimes par leur probabilité, mais je ne comprends pas comment cette information de probabilité est stockée dans cette base de données prolog (que j'ai converti en index avec Syns2Index que vous avez lié auparavant) Comment récupérer cette information (et est-ce là?) classe que vous avez proposé ?? Merci! – Julia

+0

Avez-vous consulté ce document? http://wordnet.princeton.edu/wordnet/man/wnsearch.3WN.html – Baltasarq

+0

au cas où vous en aurez besoin un jour: http://lyle.smu.edu/~tspell/jaws/doc/edu/ smu/tspell/wordnet/impl/fichier/ReferenceSynset.html # getTagCount% 28java.lang.String% 29 – Julia

5

Dans le cas où quelqu'un trébuche sur ce fil, ce fut le chemin à parcourir (au moins ce que je avais besoin):

http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/impl/file/ReferenceSynset.html#getTagCount%28java.lang.String%29

méthode tagCount donne le groupe synset le plus probable pour chaque mot. Le problème est encore que synset avec des probabilités élevées peut à nouveau avoir plusieurs mots. Mais je suppose qu'il n'y a aucune chance d'éviter cela

+0

Le lien est cassé mais une petite recherche a été affichée https://github.com/jaytaylor/jaws et, plus spécifiquement, https : //github.com/jaytaylor/jaws/blob/f194da46211863ed2cdb1428bf2e21db21541224/src/edu/smu/tspell/wordnet/impl/file/ReferenceSynset.java#L148 – lmsurprenant

Questions connexes