6 ответов:
The Wiktionary API может использоваться для запроса, существует ли слово.
примеры для существующих и несуществующих страниц:
http://en.wiktionary.org/w/api.php?action=query&titles=testhttp://en.wiktionary.org/w/api.php?action=query&titles=testxпервая ссылка содержит примеры других типов форматов, которые могут быть проще для анализа.
чтобы получить данные слова в небольшом формате XHTML (если требуется больше, чем существование), запросите печать версия страницы:
http://en.wiktionary.org/w/index.php?title=test&printable=yeshttp://en.wiktionary.org/w/index.php?title=testx&printable=yesони могут быть проанализированы с помощью любого стандартного синтаксического анализатора XML.
есть несколько предостережений в том, чтобы просто проверить, что Wiktionary имеет страницу с именем, которое вы ищете:
нюанс #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: некоторые Wiktionaries позволяют заглушки записи, которые имеют мало или вообще никакой информации о термине. Раньше это было распространено на нескольких Викисловарях, но не на английском Викисловаре. Но, похоже, теперь он распространился и на английский Викисловарь:https://en.wiktionary.org/wiki/%E6%99%B6%E7%90%83 (Постоянная ссылка на when заглушка заполнена, поэтому вы все еще можете видеть, как выглядит заглушка: https://en.wiktionary.org/w/index.php?title=%E6%99%B6%E7%90%83&oldid=39757161)
Если они не включены в то, что вы хотите, вам придется загрузить и проанализировать сам wikitext, что не является тривиальной задачей.
вы можете скачать дамп Wikitionary data. Там больше информации в FAQ. Для ваших целей определения свалку вероятно, это лучший выбор, чем дамп xml.
чтобы это было действительно просто, извлеките слова из дампа следующим образом:
bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*::' > words
возможно, вы захотите попробовать JWKTL. Я только что узнал об этом ;)
http://en.wikipedia.org/wiki/Ubiquitous_Knowledge_Processing_Lab#Wiktionary_API
Если вы используете Python, вы можете использовать WiktionaryParser Суяш Бехера.
Вы можете установить его с помощью
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')
Comments