Как можно использовать API Wiktionary, чтобы определить, существует ли слово?
api
dictionary
mediawiki-api
wiktionary
Арментаж
источник
источник
Ответы:
Wiktionary API может быть использован для запроса , существует ли или нет слова.
Примеры существующих и несуществующих страниц:
Первая ссылка содержит примеры других типов форматов, которые может быть проще проанализировать.
Чтобы получить данные слова в небольшом формате XHTML (если требуется более чем существование), запросите версию страницы для печати:
Затем их можно проанализировать с помощью любого стандартного анализатора XML.
источник
Есть несколько предостережений, если просто проверить, есть ли в Викисловаре страница с тем именем, которое вы ищете:
Предостережение №1 : все викисловари, включая английский викисловарь, на самом деле имеют цель включить каждое слово на всех языках, поэтому, если вы просто используете вышеуказанный вызов API, вы будете знать, что слово, о котором вы спрашиваете, является словом хотя бы на одном языке, но не обязательно на английском: http://en.wiktionary.org/w/api.php?action=query&titles=dicare
Предостережение №2 : возможно, существует перенаправление с одного слова на другое. Это могло быть из-за альтернативного написания, но могло быть из-за какой-то ошибки. Приведенный выше вызов API не делает различий между перенаправлением и статьей: http://en.wiktionary.org/w/api.php?action=query&titles=profilemetry
Предостережение № 3 : некоторые Викисловарь, включая английский Викисловарь, содержат «типичные орфографические ошибки»: http://en.wiktionary.org/w/api.php?action=query&titles=fourty
Предостережение №4 : Некоторые Викисловари допускают вводы-заглушки, в которых мало или совсем нет информации о термине. Раньше это было распространено в нескольких Викисловарях, но не в английском Викисловаре. Но, похоже, теперь это распространилось также на английский Викисловарь: https://en.wiktionary.org/wiki/%E6%99%B6%E7%90%83 (постоянная ссылка, когда заглушка заполнена, чтобы вы все еще могли видеть как выглядит заглушка: https://en.wiktionary.org/w/index.php?title=%E6%99%B6%E7%90%83&oldid=39757161 )
Если они не включены в то, что вы хотите, вам придется загрузить и проанализировать сам вики-текст, что является нетривиальной задачей.
источник
&prop=info
в запрос и проверьте ответ наredirect
атрибут.Вы можете скачать дамп данных Викисловаря . Больше информации можно найти в FAQ . Для ваших целей дамп определений, вероятно, лучше, чем дамп xml.
источник
Чтобы не усложнять задачу, извлеките слова из дампа следующим образом:
источник
LANGwiktionary-DATE-pages-articles.xml.bz2
. Перейдите по ссылке , затем щелкнитеLANGwiktionary
(LANG, например, «en», «de» ...).Если вы используете Python, вы можете использовать WiktionaryParser от Suyash Behera.
Вы можете установить его
Пример использования:
источник
Возможно, вы захотите попробовать JWKTL. Я только что узнал об этом;)
http://en.wikipedia.org/wiki/Ubiquitous_Knowledge_Processing_Lab#Wiktionary_API
http://www.ukp.tu-darmstadt.de/software/jwktl/
источник
Как упоминалось ранее, проблема этого подхода заключается в том, что Викисловарь предоставляет информацию обо всех словах всех языков . Таким образом, подход к проверке существования страницы с использованием Wikipedia API не сработает, потому что существует много страниц для неанглийских слов. Чтобы преодолеть это, вам нужно проанализировать каждую страницу, чтобы выяснить, есть ли раздел, описывающий английское слово . Разбор викитекста - нетривиальная задача, хотя в вашем случае это не так уж и плохо. Чтобы охватить почти все случаи, вам нужно просто проверить, содержит ли викитекст
English
заголовок. В зависимости от того, какой язык программирования вы используете, вы можете найти некоторые инструменты для создания AST. из викитекста. Это будет охватывать большинство случаев, но не все из них, потому что Викисловарь содержит некоторые распространенные орфографические ошибки.В качестве альтернативы вы можете попробовать использовать Lingua Robot или что-то подобное. Lingua Robot анализирует содержимое Викисловаря и предоставляет его как REST API. Непустой ответ означает, что слово существует. Обратите внимание, что, в отличие от Викисловаря, сам API не содержит орфографических ошибок (по крайней мере, на момент написания этого ответа). Также обратите внимание, что Викисловарь содержит не только слова, но и многословные выражения.
источник
Вы можете использовать Revisions API:
https://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=test&rvslots=*&rvprop=content&formatversion=2
или API Parse:
https://en.wiktionary.org/w/api.php?action=parse&page=test&prop=wikitext&formatversion=2
Дополнительные примеры приведены в документации .
источник
Вот начало анализа этимологии и данных произношения:
Обновление : вот суть с более конкретным изложением.
источник
langs
?langs
это несколько тысяч строк, слишком много для SO.