Как использовать API Викисловаря, чтобы определить, существует ли слово?
Викисловарь API можно использовать для запроса, существует ли слово.
Примеры существующих и несуществующих страниц:
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 выше не будет различать перенаправление и статью: 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)
Если они не включены в то, что вы хотите, вам придется загружать и анализировать сам wikitext, что не является тривиальной задачей.
&prop=info
к запросу и проверьте ответ для атрибута redirect
.
Вы можете загрузить дамп Вики-данных. Там больше информации в FAQ. Для ваших целей определения dump, вероятно, лучший выбор, чем дамп xml.
Чтобы это было действительно просто, извлеките слова из дампа следующим образом:
bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*:\1:' > words
LANGwiktionary-DATE-pages-articles.xml.bz2
. Перейдите по ссылке , затем нажмите LANGwiktionary
(LANG, например, 'en', 'de' ...).
Возможно, вы захотите попробовать JWKTL. Я только что узнал об этом;)
http://en.wikipedia.org/wiki/Ubiquitous_Knowledge_Processing_Lab#Wiktionary_API