2010-05-05 13 views
68

¿Cómo se puede usar la API de Wiktionary para determinar si existe una palabra o no?¿Cómo recuperar el contenido de palabras de Wiktionary?

+0

Cualquiera que haya leído la documentación verá que la API contiene ninguna parte cerca de la funcionalidad suficiente para "recuperar el contenido palabra Wikcionario". Estimo que te da aproximadamente el 1% del camino. Puede recuperar sintaxis wiki sin procesar o HTML analizado y desde allí debe hacer todo usted mismo. Dicho esto, puede haber una API experimental muy nueva que solo funcione en Wiktionary English. – hippietrail

Respuesta

51

El Wiktionary API se puede utilizar para consultar si existe o no una palabra.

Ejemplos de páginas existentes y no existentes:

http://en.wiktionary.org/w/api.php?action=query&titles=test http://en.wiktionary.org/w/api.php?action=query&titles=testx

El primer enlace proporciona ejemplos de otros tipos de formatos que podrían ser más fácil de analizar.

para recuperar datos de la palabra en un formato XHTML pequeña (en caso de más de ser necesario la existencia), solicitar la versión imprimible de la página:

http://en.wiktionary.org/w/index.php?title=test&printable=yes http://en.wiktionary.org/w/index.php?title=testx&printable=yes

Estos pueden ser analizado con cualquier analizador XML estándar.

+3

Gracias; la API en sí no es lo que esperaba, pero el enlace que proporcionaste es lo que estaba buscando. – Armentage

+0

Ahora acepta un parámetro de formato adicional para la salida que no sea xml como lo siguiente: https://en.wiktionary.org/w/api.php?action=query&titles=test&format=json – eenagy

+2

Puede que no funcione como esperaba aunque https: // en.wiktionary.org/wiki/Category:English_misspellings https://en.wiktionary.org/wiki/amatuer – endolith

20

Hay algunas advertencias en sólo la comprobación de que Wikcionario tiene una página con el nombre que buscas:

Advertencia # 1: Todos los Wikcionarios incluyendo el Wikcionario Inglés en realidad tienen el objetivo de incluir todas las palabras de todos los idiomas, por lo que si usted utiliza simplemente por encima de la API llama usted sabrá que la palabra que está planteando es una palabra en al menos una lengua, pero no necesariamente Inglés: http://en.wiktionary.org/w/api.php?action=query&titles=dicare

Advertencia # 2: Tal vez existe una redirección de una palabra a otra palabra. Puede ser de una ortografía alternativa, pero podría ser de un error de algún tipo. La llamada a la API anterior no diferenciará entre una redirección y un artículo: http://en.wiktionary.org/w/api.php?action=query&titles=profilemetry

Advertencia # 3: Algunos Wikcionarios incluyendo el Wikcionario Inglés incluyen "errores ortográficos comunes": http://en.wiktionary.org/w/api.php?action=query&titles=fourty

Advertencia # 4: Algunos Wikcionarios permitir entradas de stub que tienen poca o ninguna información sobre el término. Esto solía ser común en varios Wiktionary pero no en el Wiktionary en inglés. Pero parece que ahora se han extendido también al Wikcionario Inglés: https://en.wiktionary.org/wiki/%E6%99%B6%E7%90%83 (enlace permanente para cuando se llena el talón lo que aún puede ver lo que un talón se ve así: https://en.wiktionary.org/w/index.php?title=%E6%99%B6%E7%90%83&oldid=39757161)

Si estos no están incluidos en lo que quiere, tendrá que cargar y analizar el wikitext en sí, lo cual no es una tarea trivial.

+1

Lo que realmente quería hacer era tomar un volcado completo de los datos en uno de los sitios de Wikitionary no ingleses, y luego convierta el contenido en algo que pueda usar localmente. Parece una tontería ahora, pero esperaba poder solicitar la lista de todas las palabras, y luego desplegar sus defitions/translations de a una por vez, según sea necesario. – Armentage

+1

La solución para la Advertencia # 2 es simple: agregue '& prop = info' a la consulta y verifique la respuesta para el atributo' redirect'. – svick

+0

@svick: Sí, es cierto que # 2 es más fácil de eludir cuando se utiliza la API, pero estas advertencias básicas también cubren el intento de analizar los [archivos de descarga de datos de Wiktionary] (http://dumps.wikimedia.org/enwiktionary/), aunque esta pregunta no pregunta sobre ese enfoque. – hippietrail

17

Puede descargar un volcado de Wikitionary data. Hay más información en el FAQ. Para sus propósitos, el definitions dump es probablemente una mejor opción que el volcado xml.

+1

Esos archivos de volcado son masivos y no está claro cuáles descargar (¿todos?). Probablemente no sea lo que la mayoría de la gente está buscando; solo quieren buscar programáticamente un puñado de palabras. – Cerin

+0

Explico qué archivo descargar, es decir, el volcado de definiciones (el directorio de mi enlace es solo versiones diferentes del mismo archivo), y sí, si programáticamente busca palabras, es ideal. Si puede garantizar que el programa se ejecutará solo en línea, existen otras opciones, pero sin embargo estoy respondiendo esta parte de la pregunta original: "Alternativamente, ¿hay alguna manera de que pueda extraer los datos del diccionario que respalda un Wiktionary?" – kybernetikos

+8

El enlace de descarga de definiciones ya no está disponible. –

6

para mantenerlo muy simple, extraer las palabras del vertedero de esa manera:

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

¿cómo obtengo una copia de pages-articles.xml.bz2? – Armentage

+0

Es solo un nombre genérico que utilicé para describir los volcados del formulario 'LANGwiktionary-DATE-pages-articles.xml.bz2'. Vaya a [link] (http://dumps.wikimedia.org/backup-index.html), luego haga clic en 'LANGwiktionary' (LANG, por ejemplo, 'en', 'de' ...). – benroth

Cuestiones relacionadas