wikionary API - значение слов - PullRequest
       15

wikionary API - значение слов

6 голосов
/ 14 ноября 2010

Я хотел бы получить значение выбранного слова с помощью викионарного API.Данные для извлечения содержимого должны быть такими же, как они представлены в «Слове дня», только основное значение без этимпологии, синонимов и т. Д., Например,

«postiche n Любой элемент накладных волос на голове илилицо, такое как накладная борода или парик. "

Я пытался использовать документацию, но я могу найти подобный пример, кто-нибудь может помочь с этой проблемой?

Ответы [ 3 ]

13 голосов
/ 14 ноября 2010

Хотя MediaWiki имеет API (api.php), для ваших целей может быть проще всего использовать параметр action=raw для index.php, если вы просто хотите получить исходный код одной ревизии (не упакованный в XML) , JSON и т. Д., В отличие от API).

Например, это необработанное слово дня на странице за 14 ноября:

http://en.wiktionary.org/w/index.php?title=Wiktionary:Word_of_the_day/November_14&action=raw

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

http://en.wiktionary.org/w/index.php?title=overflow&action=raw

В есть опция «генерировать дерево синтаксического анализа XML» в API, но она не разбивает большую часть форматирования представления в XML. Просто убедитесь сами:

http://en.wiktionary.org/w/api.php?action=query&titles=overflow&prop=revisions&rvprop=content&rvgeneratexml=&format=jsonfm

Если вам интересно, существует ли парсер для страниц формата MediaWiki, отличный от MediaWiki, нет, его нет. По крайней мере, ничего написанного на JavaScript, которое в настоящее время поддерживается (см. список альтернативных парсеров и проверьте веб-сайты двух перечисленных). И даже тогда поддержка большинства / всех распространенных шаблонов будет большой проблемой. Удачи.

1 голос
/ 14 ноября 2010

ОК, я признаю поражение.

Есть некоторые файлы , относящиеся к Wiktionary в Pywikipediabot , и я смотрю на код, похоже, что вы должны иметь возможность его проанализировать поля значения / определения для вас.

Однако последние полчаса убедили меня в обратном. Код не очень хорошо написан, и мне интересно, работал ли он когда-либо.

Так что я откладываю до ответа idemachine , но я подумал, что опубликую это, чтобы кто-нибудь еще не повторил те же ошибки. :)

0 голосов
/ 03 декабря 2010

MediaWiki имеет API, но он низкоуровневый и не поддерживает ничего конкретного для каждой вики.Например, он не поддерживает энциклопедию для Википедии и не поддерживает словарь для Викисловаря.Вы можете извлечь необработанную вики-текстовую разметку страницы или раздела, используя API, но вам придется анализировать их самостоятельно.

Первое предостережение заключается в том, что каждый Викисловарь развил свой собственный формат, но я предполагаю, что вы заинтересованыв английском Викисловарь.Один дешевый прием, который используют многие инструменты, - получить первую строку, которая начинается с символа «#».Обычно это будет текст определения первого смысла первого омонима.

Еще одно предостережение: каждый викисловарь использует много шаблонов вики, поэтому, если вы посмотрите на необработанный текст, вы увидите их множество.Единственный способ надежно расширить эти шаблоны - вызвать API с action=parse.

...