【发布时间】:2011-03-21 13:19:28
【问题描述】:
我一直在寻找一种方法,通过查询某种 API 来获取任何给定单词的发音。由于Wiktionary 可以方便地查找单词的发音,我试图使用他们的 API,但是如何获得特定单词的发音?
他们的 API 似乎只允许获取整个 Wiki 文章。
【问题讨论】:
标签: php api mediawiki mediawiki-api wiktionary
我一直在寻找一种方法,通过查询某种 API 来获取任何给定单词的发音。由于Wiktionary 可以方便地查找单词的发音,我试图使用他们的 API,但是如何获得特定单词的发音?
他们的 API 似乎只允许获取整个 Wiki 文章。
【问题讨论】:
标签: php api mediawiki mediawiki-api wiktionary
维基词典没有自己的 API。 MediaWiki,运行维基词典的软件确实有一个 API,但它完全不知道维基词典的结构和内容。
您可以做的最好的事情是使用MediaWiki API 找到您想要的单词的wiki 页面,然后查看目录。如果目录中有一个您想要的语言的语言部分,并且其中有一个 Pronunciation 部分,那么使用另一个 API 调用来获取您必须自己解析的该部分的 wikitext。由于维基词典在不断发展,它可能会在不同的词上使用或不使用不同的模板。
还有Wiktionary 和MediaWiki API 的邮件列表。
【讨论】:
您可以在wiktionary dbpedia 的基础上向their SPARQL endpoint 发送类似以下的SPARQL 查询:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wt:<http://wiktionary.dbpedia.org/terms/>
SELECT DISTINCT ?spell ?pronounce
WHERE {
?spell rdfs:label "work"@en ;
wt:hasLangUsage ?use .
?use dc:language wt:English ;
wt:hasPronunciation ?pronounce .
}
在这种情况下,“work”是您要查找拼写的单词。
编辑:
一个类似的项目是dbnary,它更活跃,提供更可靠的结果。您可以将SPARQL endpoint 与以下查询一起使用:
SELECT DISTINCT ?pronun
WHERE {
?form lemon:writtenRep "work"@en ;
lexinfo:pronunciation ?pronun .
}
【讨论】:
"ɜː(r)k"@en; “猪肉” -> "ɔː(r)k"@en
这是我针对类似情况所做的。
pathinfo 函数。 The officual documentation for pathinfo 应该是一个好的开始。或者你可以试试“http://api.forvo.com/demo”。看起来很有希望。
我不会给你完整的答案!因为它不会再有趣了。我希望它有所帮助。
【讨论】: