2010-11-14 7 views
6

Je voudrais obtenir la signification du mot sélectionné en utilisant wikionary API. contenu récupérer les données doivent être les mêmes que est présenté dans « Parole du jour », seul le sens de base sans etympology, Synonymes etc .. par exemplewikionary API - sens des mots

« n postiche Tout élément de faux cheveux sur la tête ou le visage, comme une fausse barbe ou une perruque. "

J'ai essayé la documentation d'utilisation mais je peux trouver l'exemple semblable, n'importe qui peut aider avec ce problème?

+0

Je crois que le contenu de la boîte «Mot du jour» sur la page d'accueil est éditer manuellement pour être bref. En ouvrant l'article de mot, vous verrez plus de significations pour ce mot. –

+1

voir aussi http://stackoverflow.com/questions/3364279/has-anyone-parsed-wiktionary – pfctdayelise

Répondre

13

Bien que MediaWiki a une API (api.php), il pourrait être plus facile pour vos simplement utiliser le paramètre action=raw-index.php si vous voulez juste pour récupérer le code source d'une révision (non enveloppée dans XML, JSON, etc. , par opposition à l'API).

Par exemple, c'est le mot brut de la page jour 14 Novembre:

http://en.wiktionary.org/w/index.php?title=Wiktionary:Word_of_the_day/November_14&action=raw

Ce qui est regrettable est que le format des pages wiki se concentre sur la présentation (pour le lecteur humain) plutôt que sur sémantique (pour la machine), vous ne devriez donc pas être surpris qu'il n'y ait pas de commande API "get word definition". Au lieu de cela, votre script devra comprendre les nombreux modèles de mise en forme de texte que les éditeurs Wiktionary ont créés et utilisés, ainsi que la syntaxe de mise en forme de présentation complexe, y compris les en-têtes, les listes non ordonnées et autres. Par exemple, voici le code source de la page « débordement »:

http://en.wiktionary.org/w/index.php?title=overflow&action=raw

Il est une option « générer XML Parse arbre » dans l'API, mais il ne se casse pas beaucoup de la présentation formatage en XML. Il suffit de voir par vous-même:

http://en.wiktionary.org/w/api.php?action=query&titles=overflow&prop=revisions&rvprop=content&rvgeneratexml=&format=jsonfm

Si vous vous demandez s'il existe un analyseur syntaxique pour les pages MediaWiki format autre que MediaWiki, non, il n'y a pas. Au moins rien écrit en JavaScript qui est actuellement maintenu (voir list of alternative parsers, et vérifiez les sites Web des deux énumérés). Et même alors, soutenir la plupart/tous les modèles communs sera un grand défi. Bonne chance.

1

OK, j'avoue la défaite.

Il y a some files relatives à Wiktionary dans Pywikipediabot et je regarde le code, il ne semble que vous devriez être en mesure de le faire pour analyser les champs sens/définition pour vous.

Cependant, la dernière demi-heure m'a convaincu du contraire. Le code n'est pas bien écrit et je me demande si cela a déjà fonctionné.

Donc, je m'en remets à idealmachine's answer, mais je pensais que je publierais ceci pour sauver quelqu'un d'autre de faire les mêmes erreurs. :)

0

MediaWiki a une API mais elle est de bas niveau et n'a aucun support pour quelque chose de spécifique à chaque wiki. Par exemple, il n'a pas de support encyclopédique pour Wikipedia et aucun support de dictionnaire pour Wiktionnaire. Vous pouvez récupérer le balisage wikitext brut d'une page ou d'une section en utilisant l'API, mais vous devrez l'analyser vous-même.La première mise en garde est que chaque Wiktionnaire a évolué son propre format mais je suppose que vous êtes seulement intéressé par le Wiktionnaire en anglais. Une astuce bon marché que beaucoup d'outils utilisent est d'obtenir la première ligne qui commence par le caractère '#'. Ce sera généralement le texte de la définition du premier sens du premier homonyme.

Une autre mise en garde est que chaque Wiktionnaire utilise de nombreux modèles de wiki, donc si vous regardez le texte brut, vous verrez beaucoup de ceux-ci. La seule façon de développer de manière fiable ces modèles consiste à appeler l'API avec action=parse.

Questions connexes