Wiktionnaire est un dictionnaire wiki qui couvre plusieurs langues. Il a même des traductions. Je serais intéressé à analyser et à jouer avec les données, est-ce que quelqu'un a déjà fait quelque chose comme ça avant? Y a-t-il une bibliothèque que je peux utiliser? (De préférence Python.)
Wiktionnaire fonctionne sur MediaWiki, qui possède une API .
L'une des sous-pages de la documentation de l'API est Le code client, qui répertorie certaines bibliothèques Python .
À un moment donné, j'avais téléchargé un dump de wiki, essayant de rassembler des mots et des définitions pour les langues slaves. Je l'ai approché en utilisant elementtree pour aller à travers le fichier XML qui est le dump. J'éviterais d'essayer de gratter ou d'explorer le site et je téléchargerais simplement le fichier de vidage xml fourni par wikimedia pour wiktionary. Accédez au wikimedia téléchargements , recherchez les dépôts de wiktionary anglais ( enwiktionary ) et accédez au dernier vidage. Vous voudrez probablement le fichier pages-articles.xml.bz2, qui ne contient que le contenu de l'article, sans historique ni commentaires. Analysez ceci avec les bibliothèques de traitement xml que vous préférez en python. Personnellement, je préfère elementtree. Bonne chance.
Oui, beaucoup de personnes ont analysé le Wiktionnaire. Vous pouvez généralement trouver des expériences antérieures dans les archives de la liste de diffusion de Wiktionary-l } _.
Les projets Wiktionary RDF extract } _ de DBPedia sont des projets qui ne sont pas mentionnés dans les réponses.
Des dizaines d'autres projets de recherche ont analysé Wiktionnaire: vous en trouverez des exemples dans un récent { Wiktionnaire spécial et dans { autres numéros } du bulletin d'information sur la recherche Wikimedia.
Récemment quelqu'un a également créé une Wiktionnaire anglais REST API qui inclut un sous-ensemble non spécifié des données du Wiktionnaire. les plans futurs pour la chose ne sont pas encore connus.
J'ai eu une chance à analyser le wiktionary allemand. J'ai fini par dire que c'était trop difficile, mais j'ai mis mon code (pas du tout rangé) à l'adresse https://github.com/benreynwar/wiktionary-parser avant d'abandonner. Bien que les éditeurs aient utilisé des conventions, celles-ci ne sont appliquées que par la surveillance par les pairs. La diversité des modèles utilisés avec toutes les fautes de frappe dans les pages rend l'analyse assez difficile.
Je pense que le problème est qu’ils ont utilisé le même système que pour wiktionary, ce qui est excellent pour la facilité d’utilisation par les éditeurs, mais ne convient pas au contenu beaucoup plus structuré de wiktionary. C'est dommage, car si wiktionary pouvait être facilement analysé, ce serait une ressource extrêmement utile.
Vous pouvez jouer avec la base de données Wiktionnaire analysée MySQL. Il existe deux bases de données (Wiktionnaire anglaise et russe Wiktionnaire) créées par le parseur écrit en Java: http://wikokit.googlecode.com
Si vous aimez PHP, alors vous êtes invité à jouer avec piwidict - PHP API pour ce Wiktionnaire lisible par machine 2
Je viens de faire une liste de mots de la décharge allemande comme ça:
bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*:\1:' > words
Il y a aussi JWKTL qui fait un bon travail pour analyser et extraire des données structurées de wiktionary. Il est écrit en Java et supporte les éditions anglaise, allemande et russe.
Cela dépend de la profondeur à laquelle vous devez l'analyser. Si vous avez juste besoin d’obtenir tout le contenu d’un mot dans une langue (définition, étymologie, prononciation, conjugaison, etc.), c’est très simple. Je l'avais déjà fait auparavant, bien que en Java avec jsoup
Toutefois, si vous devez analyser différentes composantes du contenu (par exemple, obtenir uniquement les définitions d'un mot), la tâche sera beaucoup plus ardue. Une entrée de Wiktionnaire pour un mot dans une langue n'a pas de modèle prédéfini, ainsi un en-tête peut être n'importe quoi de <h3>
à <h6>
, l'ordre des sections peut être mélangé, elles peuvent être répétitives, etc.