Получение раздела перевода в Викисловарном API - PullRequest
2 голосов
/ 23 августа 2011

Я заинтересован в переводе английских слов на определенный язык (например, русский). Я полностью прочитал руководство по API Викисловаря, но не нашел хорошего способа. Для слова «собака» я могу получить весь раздел, содержащий переводы на другие языки, используя викисловарный API следующим образом:

http://en.wiktionary.org/w/api.php?action=query&titles=dog&prop=revisions&rvprop=content&rvsection=11

Номер раздела переводов не является постоянным и отличается для разных слов. Для «собаки» номер секции перевода 11, но для «кошки» мне нужно rvsection=7. Можно ли получить перевод на определенный язык для любого английского слова, не загружая весь раздел перевода?

Ответы [ 4 ]

6 голосов
/ 28 сентября 2012

Вы можете получить довольно много переводов, запросив ссылки на вики в API. Я написал простое приложение JS, используя этот подход: http://jsfiddle.net/karlb/PxfrJ/11/.

2 голосов
/ 20 мая 2015

Вы можете использовать это, чтобы помочь перевести "собаку" с английского на русский.Этот URL-адрес находит внутренние ссылки, начинающиеся с «ru» для страниц с заголовком «собака»: https://en.wiktionary.org/w/api.php?action=query&prop=iwlinks&titles=dog&iwprop=url&iwprefix=ru&format=json&continue=

Я подчеркиваю help , потому что вы получите много неоднозначных переводов, которые вы, возможно, захотитедля устранения неоднозначности, используя категории и другие вещи.

Этот URL имеет "iwprop = url", поэтому вы можете легко переходить по ссылкам, но в вашем приложении я предлагаю вам использовать это: https://en.wiktionary.org/w/api.php?action=query&prop=iwlinks&titles=dog&iwprefix=ru&format=json&continue= и создавать ссылки самостоятельно.

1 голос
/ 30 ноября 2014

Проекты dbpedia и Dbnary извлекают данные перевода из Wiktionary в виде RDF и предоставляют конечную точку SPARQL, где вы можете запрашивать переводы без необходимости загружать большие наборы данных.

Вот пример запроса для Dbnary:

SELECT DISTINCT ?written_trans AS ?translations
WHERE {
    ?lexentry ontolex:canonicalForm [
        ontolex:writtenRep "dog"@en
    ] .

    ?trans dbnary:isTranslationOf ?lexentry ;
           dbnary:targetLanguage lexvo:rus ;
           dbnary:writtenForm ?written_trans .
}

Что приводит к этим результатам.

1 голос
/ 23 августа 2011

API Викисловаря не будет выполнять конкретные переводы одного слова между двумя языками.Здесь невозможно сделать то, что вы хотите.

Однако, Google Translate имеет API , который может делать то, что вы ищете.

...