【问题标题】:How can I use the Wiktionary API for getting pronunciation data? [closed]如何使用维基词典 API 获取发音数据? [关闭]
【发布时间】:2011-03-21 13:19:28
【问题描述】:

我一直在寻找一种方法,通过查询某种 API 来获取任何给定单词的发音。由于Wiktionary 可以方便地查找单词的发音,我试图使用他们的 API,但是如何获得特定单词的发音?

他们的 API 似乎只允许获取整个 Wiki 文章。

【问题讨论】:

    标签: php api mediawiki mediawiki-api wiktionary


    【解决方案1】:

    维基词典没有自己的 API。 MediaWiki,运行维基词典的软件确实有一个 API,但它完全不知道维基词典的结构和内容。

    您可以做的最好的事情是使用MediaWiki API 找到您想要的单词的wiki 页面,然后查看目录。如果目录中有一个您想要的语言的语言部分,并且其中有一个 Pronunciation 部分,那么使用另一个 API 调用来获取您必须自己解析的该部分的 wikitext。由于维基词典在不断发展,它可能会在不同的词上使用或不使用不同的模板。

    还有WiktionaryMediaWiki API 的邮件列表。

    【讨论】:

    • 感谢该 API;我一直在我的应用程序中对字典条目页面进行 XML 解析。
    • @Tortoise:不客气。如果有一种方法可以在 HTML 上执行 jQuery 样式的选择器,这些天可能会更容易。您可以使用一些 URL 参数或通过 API 获取整个页面或单个部分的 HTML,减去大部分样板文件。
    • “jQuery 风格”只是针对mess with me,对吧? ;)
    • @Tortoise:不是这样。我知道there are implementations of the DOM API in languages other than JavaScript 并且我知道jQuery 的选择来自一个名为Sizzle 的单独项目。因此,在不了解更多信息的情况下,我只是不排除有人可能已经将这些东西的某些子集移植到 PHP,或者以类似的方式制作了一些不同的东西。另一种可能性是 PHP 和 node.js 之间是否存在某种接口...
    • 你的意思是,比如 SimpleXML?我不关注。
    【解决方案2】:

    您可以在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 .
    }
    

    【讨论】:

    • 该 SPARQL 端点当前是一个断开的链接。你知道这只是暂时的还是你有备用链接?我在其他地方尝试了这个查询,但没有结果。我是 DBpedia 的粉丝,但不是很了解。
    • @hippietrail:端点对我来说很好。
    • 好的,我已经从首尔搬到了悉尼,要么它在那个时候得到了修复,要么我的位置由于某种原因而有所不同。我注意到第一个发音的第一个字母始终丢失:“work” -> "ɜː(r)k"@en; “猪肉” -> "ɔː(r)k"@en
    • @hippietrail:我得到了四个工作结果。三个是不同的发音,其中一个是来自维基词典的“押韵”条目,由于显而易见的原因,它“缺少”了第一个字母。我不知道将押韵列为 hasPronunciation 是错误还是 dbpedia 的人真的认为它是发音,但我希望是前者。
    • 此 API 是否有文档?例如,我想定位带发音的音频文件。
    【解决方案3】:

    这是我针对类似情况所做的。

    1. 访问Scraping Links With PHP。它将教您如何使用 PHP 抓取链接。请勿复制粘贴,请尝试学习。
    2. 现在我们有了链接,我们需要将音频 (*.ogg) 链接与普通链接分开。我们需要在 PHP 中使用pathinfo 函数。 The officual documentation for pathinfo 应该是一个好的开始。
    3. 根据结果创建一个 XML。
    4. 使用 Ajax 或任何其他首选方式交付内容。

    或者你可以试试“http://api.forvo.com/demo”。看起来很有希望。

    我不会给你完整的答案!因为它不会再有趣了。我希望它有所帮助。

    【讨论】:

    • 您的解决方案不使用 API,而是手动报废。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 2012-10-18
    • 1970-01-01
    • 2013-03-15
    • 2017-01-21
    相关资源
    最近更新 更多