web-dev-qa-db-fra.com

Quelqu'un a-t-il analysé le Wiktionnaire?

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.)

32
Rory

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 .

20
Amber

À 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.

23
razzmataz

wordnik a fait du bon travail en analysant les définitions, etc. et ils ont un great api

comme d'autres l'ont mentionné, wiktionary est une catastrophe en matière de formatage et n'a pas été conçu pour être lisible par ordinateur

15
spencercooly

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.

10
Nemo

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.

9
Ben Reynwar

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

4

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
4
benroth

Vous pouvez être intéressé par dbnary project, pas par python mais par intéressant. Les revendications prennent en charge l’analyse de 21 langues et il alimente wikdict .

3
yota

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.

1
Jan Berkel

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.

0
Chin