Je cherche à utiliser Wordnet pour rechercher une collection de termes similaires d'un ensemble de termes de base. p>
Par exemple, le mot Je voulais aussi identifier les bi-grammes potentiels tels que; Comment puis-je faire l'extraction de ces informations à l'aide de Java ou Python? Y a-t-il des bases de données WordNet hébergées / interfaces Web qui permettraient une telle interrogation? P>
Merci! P> décourageant, glum, dissuasif, pessimiste code>. p>
Battre, rejetez, cédé dans code> etc. p>
3 Réponses :
Ce sont deux problèmes différents. P>
1) WordNet et Python. Utilisez NLTK, il a une belle Interface sur WordNet . Vous pouvez écrire quelque chose par vous-même, mais honnêtement, pourquoi rendre la vie difficile? Lingpipe a probablement également quelque chose de construit mais NLTK est beaucoup plus facile à utiliser. Je pense que NLTK télécharge simplement une base de données NTLK, mais je suis à peu près sûr qu'il y a des API de parler à WordNet. P>
2) Pour obtenir de bigrams dans NLTK Suivez ce tutoriel . En général, vous vous jetez du texte, puis itérale sur la phrase pour obtenir tous les N-grammes pour chaque mot en regardant en avant et en arrière. P>
Merci pour les liens. De mes tests avec WordNet, certaines phrases telles que "battement bas" ne peuvent pas être identifiées, est-ce correct?
Si vous utilisez WordNet Online, vous pouvez voir des synonymes: WordNetweb.princeton.edu/perl/...
Peut-être que la version en ligne est un nouveau DB de mots?
Comme alternative à NLTK, vous pouvez utiliser un de points d'extrémité SPARQL WordNet disponibles pour récupérer de telles informations. Exemple de requête: dans Java Universe, jena et
Si je remplace 'Run' avec 'Bicycle', des résultats que je reçois vélo, vélo, cycle, mais aussi roue et pédale <- pourquoi ces 2 derniers?
Il est plus facile de comprendre les données de WordNet en regardant aux fichiers PROG. Ils sont documentés ici:
http://wordet.princeton.edu/wordnet /man/prologdb.5wn.html p>
Les termes WordNet sont un groupe dans des synchysées. Un synset est un maximal Synonyme Set. Les synchysées ont une clé primaire afin qu'elles puissent être utilisées dans des relations sémantiques. p>
répondant à votre première question, vous pouvez énumérer les différents
Senses et Synonymes correspondants d'un mot comme suit: p> exemple: p> pour la deuxième partie de votre question, Les termes Wordnet sont
séquences de mots. Afin que vous puissiez rechercher ces termes Wordnet
Pour les mots comme suit: p> exemple: p> Cela vous donnerait des N-grammes potentiels, mais pas tellement
variation morphologique. Wordnet l'expose également certains
relations lexicales, qui pourraient être utiles. P> Mais les deux requêtes des prologs que j'ai données ne sont pas très efficaces.
Le problème est le manque d'indexation de mots. Un java
La mise en œuvre pourrait bien sûr mettre en œuvre quelque chose de mieux.
Imaginez simplement quelque chose: p> Certains prologs peuvent faire la même chose, par une directive d'indexation, il est
possible d'indiquer au système Prolog à indexer sur plusieurs
arguments pour un prédicat. p> mettre en place un service Web ne devrait pas être aussi difficile, non plus
en Java ou Prolog. De nombreux systèmes de prologs permettent facilement l'intégration
Programmes de prologs dans les serveurs Web et Java Champions Servlets. P> Une liste de prologs prenant en charge des serveurs Web peuvent être trouvés ici: P> Cordialement P> > p>
Merci pour cette information, très très utile. Question rapide, je ne suis toujours pas sûr à 100% à ce sujet, mais si possible, quelle serait la meilleure façon de relier un mot comme «découragé» pour «battre» de manière programmable?
Dépend du "lien" et du langage de programmation. Dans WordNet, il existe deux types de "liens", sémantiques et lexicaux. Via Prolog, pour un lien sémantique, vous affirmeriez un lien de fait (Synset_id1, Synset_ID2). Pour un lien lexical, vous affirmeriez un lien de fait (Synset_id1, Word_num1, Synset_id2, Word_Num2). En Java, vous utiliseriez votre datrastructure / service approprié. Ou vous mettez les deux mots dans le même synchronisation ou créez un nouveau statut de synchronisation où ils sont ensemble. Le plus tard s'applique au cas où votre "lien" devrait représenter le même sens.