Как получить содержимое словаря Викисловаря?

Как использовать API Викисловаря, чтобы определить, существует ли слово?

API Wiktionary можно использовать для запроса, существует ли слово.

Примеры существующих и несуществующих страниц:

http://en.wiktionary.org/w/api.php?action=query&titles=test http://en.wiktionary.org/w/api.php?action=query&titles=testx

Первая ссылка содержит примеры для других типов форматов, которые могут быть проще проанализировать.

Чтобы получить данные слова в небольшом формате XHTML (требуется больше, чем нужно), запросите версию для печати страницы:

http://en.wiktionary.org/w/index.php?title=test&printable=yes http://en.wiktionary.org/w/index.php?title=testx&printable=yes

Затем они могут быть проанализированы с помощью любого стандартного анализатора XML.

Есть несколько предостережений, просто проверяя, что у Викисловаря есть страница с именем, которое вы ищете:

Caveat # 1 : Все викторины, включая английскую Викисловарь, на самом деле имеют целью включить каждое слово на каждом языке, поэтому, если вы просто используете вышеприведенный API-интерфейс, вы будете знать, что слово, о котором вы спрашиваете, является словом хотя бы на одном языке, но не обязательно английский: http://en.wiktionary.org/w/api.php?action=query&titles=dicare

Оговорка № 2 : Возможно, переадресация существует от одного слова к другому. Это может быть из альтернативной орфографии, но это может быть от какой-либо ошибки. Вызов API выше не будет различать redirect и статью: http://en.wiktionary.org/w/api.php?action=query&titles=profilemetry

Предостережение № 3 : Некоторые викторины, в том числе английская Викисловарь, include «общие орфографические ошибки»: 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 )

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

Вы можете загрузить свалку данных Вики-данных . В FAQ часто появляется дополнительная информация. Для ваших целей дамп определений, вероятно, является лучшим выбором, чем дамп xml.

Чтобы это было очень просто, извлеките слова из дампа:

 bzcat pages-articles.xml.bz2 | grep '[^[:space:][:punct:]]*' | sed 's:.*\(.*\).*:\1:' > words 

Возможно, вы захотите попробовать JWKTL. Я только что узнал об этом;)

http://en.wikipedia.org/wiki/Ubiquitous_Knowledge_Processing_Lab#Wiktionary_API

http://www.ukp.tu-darmstadt.de/software/jwktl/

Если вы используете Python, вы можете использовать WiktionaryParser by Suyash Behera.

Вы можете установить его

 sudo pip install wiktionaryparser 

Пример использования:

 >>> from wiktionaryparser import WiktionaryParser >>> parser = WiktionaryParser() >>> word = parser.fetch('test') >>> another_word = parser.fetch('test', 'french') >>> parser.set_default_language('french') 
  • Структуры данных, которые могут отображать диапазон ключей в значение
  • Класс java.util.Map имеет общие параметры типа, вместо этого используйте GenericTypeIndicator
  • Как преобразовать список корневых ключей в словарь?
  • Итерация через словарь в Swift
  • Доступ к определенному полю в произвольно вложенных данных JSON
  • Пересечение java.util.Map
  • Преобразование строки JSON в HashMap
  • Сортировка std :: map с использованием значения
  • Как проверить, содержит ли карта ключ?
  • Словарь Swift - ключ к значению
  • Hashtable с многомерным ключом в C #
  • Давайте будем гением компьютера.