Mic*_*zek 63
在维基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解析器解析这些.
hip*_*ail 25
只需检查一下维基词典中有一个页面,其中包含您要查找的名称:
警告#1:包括英文维基词典在内的所有维基词典实际上都包含了包含每种语言的每个单词的目标,所以如果您只是使用上面的API调用,您就会知道您所询问的单词至少是一种语言,但是不一定是英文:http://en.wiktionary.org/w/api.php?action = query&title = idare
警告#2:也许从一个单词到另一个单词存在重定向.它可能来自另一种拼写,但它可能来自某种错误.上面的API调用不会区分重定向和文章:http://en.wiktionary.org/w/api.php?action = query &titles = profileoftry
警告#3:包括英文维基词典在内的一些维基词典包括"常见拼写错误":http://en.wiktionary.org/w/api.php?action = query&title = 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)
如果这些不包含在您想要的内容中,则必须加载并解析wiki文本本身,这不是一项简单的任务.
为了保持简单,请从转储中提取单词:
bzcat pages-articles.xml.bz2 | grep '<title>[^[:space:][:punct:]]*</title>' | sed 's:.*<title>\(.*\)</title>.*:\1:' > words
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Python,则可以使用Suyash Behera 的WiktionaryParser。
您可以通过以下方式安装它
sudo pip install wiktionaryparser
Run Code Online (Sandbox Code Playgroud)
用法示例:
>>> from wiktionaryparser import WiktionaryParser
>>> parser = WiktionaryParser()
>>> word = parser.fetch('test')
>>> another_word = parser.fetch('test', 'french')
>>> parser.set_default_language('french')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45899 次 |
| 最近记录: |