如何检索维基词典的内容?

如何可能使用维基词典的API来确定一个词是否存在?

Wiktionary API可以用来查询单词是否存在。

现有和不存在页面的示例:

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

第一个链接提供了其他types的格式的例子,可能更容易parsing。

要以小XHTML格式检索单词的数据(不止需要存在),请求可打印版本的页面:

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

这些可以用任何标准的XMLparsing器来parsing。

有几个警告只是检查维基词典有一个网页,你正在寻找的名字:

注意事项#1 :包括英文维基文库在内的所有维基词典实际上都有将每个词语都包含在每一种语言中的目标,所以如果你只是简单地使用上面的API调用,你就会知道你所问的词至less是一种语言的词汇,不一定是英文的: http : //en.wiktionary.org/w/api.php?action=query&titles=dicare

警告#2 :也许redirect从一个字到另一个字存在。 这可能来自另一种拼写,但可能来自某种错误。 上面的API调用不会区分redirect和文章: http : //en.wiktionary.org/w/api.php?action=query&titles=profilemetry

注意事项#3 :包括英语维基百科在内的一些维基百科包括“常见拼写错误”: http : //en.wiktionary.org/w/api.php? action=query&titles=fourty

注意事项#4 :一些维基百科允许存在很less或没有关于该术语信息的存根条目。 过去这在几个维基百科上是常见的,但不是英文维基百科。 但它似乎现在也传播到英文维基词典: https : //en.wiktionary.org/wiki/%E6%99%B6%E7%90%83 (永久链接当存根被填满,所以你仍然可以看到什么是存根: https : //zh.wiktionary.org/w/index.php?title=% E6%99%B6%E7%90%83 &oldid=39757161 )

如果这些不包含在你想要的内容中,你将不得不加载和parsingwiki文本本身,这不是一项简单的任务。

您可以下载一个维基数据转储。 FAQ中有更多的信息。 出于您的目的, 定义转储可能是比xml转储更好的select。

为了保持简单,从转储中提取这样的单词:

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