检索Wiktionary API中的翻译部分

时间:2011-08-23 19:08:16

标签: web-scraping wiktionary

我有兴趣将英语单词翻译成特定语言(例如俄语)。我已经阅读了整个维基词典API手册,但我还没有找到一个好方法。对于单词“dog”,我可以通过以下方式使用维基词典API获取包含其他语言翻译的整个部分:

http://en.wiktionary.org/w/api.php?action=query&titles=dog&prop=revisions&rvprop=content&rvsection=11

翻译部分编号不是常数,并且对于各种单词而言是不同的。对于“dog”,翻译部分编号为11,但对于“cat”,我需要rvsection=7。是否可以在不下载整个翻译部分的情况下获得任何英语单词的特定语言的翻译?

4 个答案:

答案 0 :(得分:5)

通过从API请求interwiki链接,您可以获得相当多的翻译。我使用这种方法编写了一个简单的JS应用程序:http://jsfiddle.net/karlb/PxfrJ/11/

答案 1 :(得分:2)

您可以将此功能用于帮助将“狗”从英语翻译成俄语。此网址查找标题为“dog”的网页以“ru”开头的内部链接:https://en.wiktionary.org/w/api.php?action=query&prop=iwlinks&titles=dog&iwprop=url&iwprefix=ru&format=json&continue=

我强调帮助,因为您会得到许多含糊不清的翻译,您可能希望使用类别和其他内容消除歧义。

该网址为“iwprop = url”,因此您可以轻松点击链接,但在您的应用中,我建议您使用此链接: https://en.wiktionary.org/w/api.php?action=query&prop=iwlinks&titles=dog&iwprefix=ru&format=json&continue= 并自己建立链接。

答案 2 :(得分:1)

维基词典不会对两种语言之间的单词进行特定翻译。你不可能做你想做的事情。

但是,谷歌翻译确实有an API可以做你想要的。

答案 3 :(得分:0)

dbpediaDbnary项目将维基词典中的翻译数据提取为RDF,并提供SPARQL端点,您无需下载大型数据集即可查询翻译。

以下是Dbnary的查询示例:

SELECT DISTINCT ?written_trans AS ?translations
WHERE {
    ?lexform lemon:writtenRep "dog"@en .
    ?lexentry lemon:canonicalForm ?lexform ;
              lemon:sense ?sense .

    ?trans dbnary:isTranslationOf ?lexentry ;
           dbnary:targetLanguage lexvo:rus ;
           dbnary:writtenForm ?written_trans .
}

这导致these结果。