python web-services dictionary wiktionary

python - Alguien ha analizado Wiktionary?



web-services dictionary (11)

Acabo de hacer una lista de palabras del basurero alemán así:

bzcat pages-articles.xml.bz2 | grep ''<title>[^[:space:][:punct:]]*</title>'' | sed ''s:.*<title>/(.*/)</title>.*:/1:'' > words

Wiktionary es un diccionario wiki que cubre muchos idiomas. Incluso tiene traducciones. Me interesaría analizarlo y jugar con los datos. ¿Alguien ha hecho algo así antes? ¿Hay alguna biblioteca que pueda usar? (Preferiblemente Python.)


Depende de cuán meticulosamente necesite analizarlo. Si solo necesitas obtener todo el contenido de una palabra en un idioma (definición, etimología, pronunciación, conjugación, etc.), entonces es bastante fácil. Ya había hecho esto antes, aunque en Java usando jsoup

Sin embargo, si necesita analizarlo en diferentes componentes del contenido (por ejemplo, solo obtener las definiciones de una palabra), entonces será mucho más desafiante. Una entrada de Wiktionary para una palabra en un idioma no tiene una plantilla predefinida, por lo que un encabezado puede ser cualquier cosa desde <h3> a <h6> , el orden de las secciones puede ser confuso, pueden ser repetitivas, etc.


En un momento había descargado un volcado de wiktionary, tratando de reunir palabras y definiciones para idiomas eslavos. Me acerqué usando elementtree para ir a través del archivo xml que es el volcado. Evitaría tratar de arrastrar o rastrear el sitio, y simplemente descargar el volcado xml que proporciona wikimedia para wiktionary. Ve a las descargas de wikimedia , busca los depósitos de wiktionary en inglés ( enwiktionary ) y ve al vertedero más reciente. Probablemente desee el archivo pages-articles.xml.bz2, que es solo el contenido del artículo, sin historial ni comentarios. Analice esto con las bibliotecas de procesamiento xml que prefiera en python. Personalmente prefiero elementtree. Buena suerte.


Escribí un analizador primitivo para el basurero alemán de Wiktionary en Java que solo extraía sustantivos y sus artículos, además de su traducción al árabe, sin ninguna dependencia. La ejecución lleva mucho tiempo, así que ten cuidado. Si hay interés / necesidad de analizar más u otros datos, dígame, podría examinarlo si el tiempo lo permite.


Le invitamos a jugar con la base de datos Wiktionary de MySQL. Hay dos bases de datos (Wiktionary en inglés y Wiktionary en ruso) creadas por el analizador escrito en Java: http://wikokit.googlecode.com

Si te gusta PHP, entonces puedes jugar con piwidict - API de PHP a este Wiktionary legible por máquina piwidict


Puede que le interese el proyecto dbnary , no python, pero es interesante. Las reclamaciones soportan el análisis de 21 idiomas y da poder al wikdict .


Sí, mucha gente analizó Wiktionary. Por lo general, puede encontrar experiencias pasadas en los archivos de la lista de correo Wiktionary-l .

Un proyecto no mencionado por otras respuestas es la extracción de RDF Wiktionary de DBPedia.

Decenas de otros proyectos de investigación analizaron Wiktionary: puede encontrar algunos ejemplos en un especial reciente de Wiktionary y en otros números del boletín de investigación de Wikimedia.

Recently alguien también hizo una API REST de Wiktionary en inglés que incluye un subconjunto no especificado de los datos de Wiktionary; los planes futuros para la cosa no se conocen aún.


También está JWKTL que hace un buen trabajo al analizar y extraer datos estructurados de wiktionary. Está escrito en Java y tiene soporte para las ediciones en inglés, alemán y ruso.


Tuve una oportunidad de analizar el Wikcionario alemán. Terminé escribiéndolo como muy difícil, pero puse mi código (no todo arreglado) en https://github.com/benreynwar/wiktionary-parser antes de darme por vencido. Aunque hay convenciones utilizadas por los editores, no son aplicadas por otra cosa que no sea la supervisión por pares. La diversidad de plantillas utilizadas junto con todos los errores tipográficos en las páginas hace que el análisis sea bastante desafiante.

Creo que el problema es que han utilizado el mismo sistema que para wiktionary, que es ideal para que los editores lo usen fácilmente, pero no es apropiado para el contenido mucho más estructurado de wiktionary. Es una pena porque si wiktionary se pudiera analizar fácilmente, sería un recurso muy útil.



wordnik ha hecho un buen trabajo para analizar las definiciones, etc. y tienen una gran API

como los otros han mencionado, wiktionary es un desastre de formateo, y no fue creado para ser legible por computadora