2011-03-21 19 views
6

Szukałem sposobu na wymówienie dowolnego słowa przez zapytanie o jakiś API. Jako Wiktionary przydaje się znaleźć wymowy słów, próbowałem użyć ich API, ale w jaki sposób uzyskać wymowę konkretnego słowa?Wiktionary API for pronunciation?

Odpowiedz

3

Wikisłownik nie ma własnego interfejsu API. MediaWiki, oprogramowanie, na którym działa Wikis, ma interfejs API, ale jest całkowicie nieświadome struktury i zawartości Wikisłownika.

Najlepsze, co można zrobić, to użyć strony MediaWiki API, aby znaleźć stronę wiki dla danego wyrazu, a następnie przejrzeć spis treści. Jeśli spis treści zawiera sekcję językową dla wybranego języka i zawiera sekcję Pronunciation, użyj innego wywołania interfejsu API, aby uzyskać wikitext tej sekcji, którą musisz sam przeanalizować. Może używać różnych szablonów różnych słów, ponieważ Wikisłownik stale się rozwija.

Istnieją również listy mailingowe dla Wiktionary i dla MediaWiki API.

+0

Dzięki za to API; Byłem XML-parsing stron słownikowych wejścia w mojej aplikacji. – Tortoise

+0

@ Tortoise: Nie ma za co. W dzisiejszych czasach byłoby łatwiej, gdyby istniał sposób na wybór selektorów w stylu jQuery w HTML. Możesz uzyskać kod HTML całej strony lub pojedynczej sekcji pomniejszonej o większość tablicy do wyboru z niektórymi parametrami adresu URL lub za pośrednictwem interfejsu API. – hippietrail

+0

"Styl jQuery" był po prostu [zadzieraj ze mną] (http://stackoverflow.com/questions/13225135/advantages-of-jquery), prawda? ;) – Tortoise

1

Oto, co zrobiłem dla podobnej sytuacji.

  1. Odwiedź Scraping Links With PHP. Nauczy Cię, jak zerwać linki za pomocą PHP. Proszę nie kopiować i wklejać, ale próbować się tego nauczyć.
  2. Teraz, gdy mamy nasze łącza, musimy oddzielić audio (* .ogg) od normalnych łączy. Musimy użyć funkcji pathinfo w PHP. The officual documentation for pathinfo powinien być dobrym początkiem.
  3. Utwórz plik XML z wyniku.
  4. Dostarcz zawartość za pomocą Ajax lub w inny preferowany sposób.

Możesz też spróbować "http://api.forvo.com/demo". Wygląda obiecująco.

Nie udzielę ci pełnej odpowiedzi! Ponieważ nie będzie już więcej zabawy. Mam nadzieję, że to pomoże.

+3

Twoje rozwiązanie nie korzysta z API, ale wykonuje ręczne złomowanie. –

4

Można budować na wiktionary dbpedia wysłać zapytanie sparql jak następuje jeden do 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 . 
} 

W tym przypadku „pracy” jest słowem, dla którego chcesz sprawdzić pisownię.

EDIT:

Podobny projekt jest dbnary, który jest bardziej aktywny i dostarcza bardziej wiarygodnych wyników. Możesz użyć SPARQL endpoint z następującym zapytaniem:

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

Ten punkt końcowy SPARQL jest obecnie uszkodzonym łączem. Czy wiesz, czy to tylko tymczasowe, czy masz alternatywny link? Wypróbowałem to zapytanie w innym miejscu bez wyników. Jestem fanem DBpedia, ale nie bardzo dobrze poinformowany. – hippietrail

+2

@hippietrail: Punkt końcowy działa dobrze dla mnie. –

+0

OK Przeniosłem się z Seulu do Sydney i albo zostało naprawione w tym czasie, albo moja lokalizacja zrobiła różnicę z jakiegoś powodu. Zauważyłem, że pierwsza litera pierwszej wymowy jest ciągle brakująca: "work" -> '" ɜː (r) k "@ en'; "wieprzowina" -> '" ɔː (r) k "@ en' – hippietrail