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

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

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

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


person M238    schedule 14.11.2010    source источник
comment
Я считаю, что содержимое поля «Слово дня» на главной странице редактируется вручную, чтобы оно было кратким. Открыв слово article, вы увидите больше значений этого слова.   -  person Alex Jasmin    schedule 14.11.2010
comment
см. также stackoverflow.com/questions/3364279/   -  person pfctdayelise    schedule 14.11.2010


Ответы (4)


Хотя у 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

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

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

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

person PleaseStand    schedule 14.11.2010

Хорошо, я признаю поражение.

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

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

Поэтому я откладываю ответ на idealmachine, но я решил опубликовать это чтобы уберечь других от совершения тех же ошибок. :)

person pfctdayelise    schedule 14.11.2010

Как упоминалось ранее, содержимое страниц Викисловаря представлено в удобочитаемом формате wikitext, поэтому MediaWiki API не позволяет получить значение слов, поскольку данные не структурированы.

Однако каждая страница следует определенному соглашению, поэтому не так сложно извлечь значения из wikitext. Кроме того, есть несколько API, например Wordnik или Lingua Robot, который анализирует содержимое Викисловаря и предоставляет его в формате JSON.

person Roman Kishchenko    schedule 06.09.2019

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

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

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

person hippietrail    schedule 03.12.2010