2011-03-21 6 views
6

Estaba buscando una manera de obtener la pronunciación de cualquier palabra consultando un API de algún tipo. Como Wiktionary es útil para encontrar pronunciaciones de palabras, estaba tratando de usar su API, pero ¿cómo obtengo la pronunciación de una palabra específica?¿API de Wiktionary para la pronunciación?

Respuesta

3

Wiktionary no tiene una API propia. MediaWiki, el software en el que se ejecuta Wiktionary tiene una API pero no tiene conocimiento de la estructura y el contenido de Wiktionary.

Lo mejor que puedes hacer es usar el MediaWiki API para encontrar la página wiki de la palabra que quieres, luego mira la tabla de contenido. Si la tabla de contenido tiene una sección de idioma para el idioma que desea y dentro de esa hay una sección Pronunciation, luego use otra llamada API para obtener el wikitext de esa sección que deberá analizar usted mismo. Puede usar o no diferentes plantillas en diferentes palabras ya que Wiktionary está en constante evolución.

También hay listas de correo para Wiktionary y MediaWiki API.

+0

Gracias por esa API; He estado analizando XML las páginas de entrada del diccionario en mi aplicación. – Tortoise

+0

@Tortoise: De nada. Probablemente sería más fácil hoy en día si hubiera una forma de hacer selectores jQuery-style en el HTML. Puede obtener el HTML de toda la página o una sola sección menos la mayoría del texto estándar con algunos parámetros de URL o mediante la API. – hippietrail

+0

El "jQuery-style" era solo [meterse conmigo] (http://stackoverflow.com/questions/13225135/advantages-of-jquery), ¿verdad? ;) – Tortoise

1

Esto es lo que hice para una situación similar.

  1. Visita Scraping Links With PHP. Le enseñará cómo raspar enlaces usando PHP. No copie y pegue, pero intente aprenderlo.
  2. Ahora que tenemos nuestros enlaces, necesitamos separar los de audio (* .ogg) de los enlaces normales. Necesitamos usar la función pathinfo en PHP. The officual documentation for pathinfo debe ser un buen comienzo.
  3. Crea un XML del resultado.
  4. Entregue el contenido utilizando Ajax o cualquier otra forma preferida.

O puede probar "http://api.forvo.com/demo". Se ve prometedor.

¡No le daré la respuesta completa! Porque ya no será divertido. Espero que ayude.

+3

Su solución no utiliza una API, pero realiza un desguace manual. –

4

Se puede construir en un wiktionary dbpedia enviar una consulta SPARQL como la siguiente a their SPARQL endpoint:

PREFIX dc: <http://purl.org/dc/elements/1.1/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX wt:<http://wiktionary.dbpedia.org/terms/> 

SELECT DISTINCT ?spell ?pronounce 
WHERE { 
    ?spell rdfs:label "work"@en ; 
      wt:hasLangUsage ?use . 

    ?use dc:language wt:English ; 
      wt:hasPronunciation ?pronounce . 
} 

En este caso el "trabajo" es la palabra que desea buscar la ortografía.

EDIT:

Un proyecto similar es dbnary, que es más activo y proporciona resultados más fiables. Puede usar el SPARQL endpoint con la siguiente consulta:

SELECT DISTINCT ?pronun 
WHERE { 
    ?form lemon:writtenRep "work"@en ; 
     lexinfo:pronunciation ?pronun . 
} 
+0

Ese punto final SPARQL es actualmente un enlace roto. ¿Sabes si es solo temporal o tienes un enlace alternativo? Intenté esta consulta en otro lugar sin resultados. Soy un fanático de DBpedia pero no tengo mucho conocimiento. – hippietrail

+2

@hippietrail: El punto final funciona bien para mí. –

+0

OK Me mudé de Seúl a Sídney y o bien se solucionó en ese momento o mi ubicación hizo una diferencia por alguna razón. Me he dado cuenta de que la primera letra de la primera pronunciación falta constantemente: "trabajo" -> '" ɜː (r) k "@ en'; "puerco" -> '" ɔː (r) k "@ en' – hippietrail

Cuestiones relacionadas