【问题标题】:wikionary API - meaning of wordswikionary API - 单词的含义
【发布时间】:2010-11-14 00:42:43
【问题描述】:

我想使用 wikionary API 获取所选单词的含义。 内容检索数据应与“今日词汇”中呈现的相同,只有基本含义,没有词源、同义词等。 例如

"邮差 任何戴在头上或脸上的假头发,例如假胡须或假发。”

我尝试使用文档,但我可以找到类似的示例,有人可以帮助解决这个问题吗?

【问题讨论】:

  • 我相信主页上的“每日词汇”框的内容是手动编辑的,以保持简洁。打开单词文章时,您会看到该单词的更多含义。

标签: javascript api wiki mediawiki-api wiktionary


【解决方案1】:

虽然 MediaWiki 有一个 API (api.php),但如果您只想检索一个修订版的源代码(不包含在 XML 、JSON 等,而不是 API)。

例如,这是 11 月 14 日当天页面的原始单词:

http://en.wiktionary.org/w/index.php?title=Wiktionary:Word_of_the_day/November_14&action=raw

不幸的是,wiki 页面的格式侧重于表示(对于人类读者)而不是语义(对于机器),因此您不应该对没有“获取单词定义”API 命令感到惊讶。相反,您的脚本必须理解维基词典编辑器创建和使用的众多文本格式模板,以及复杂的表示格式语法,包括标题、无序列表等。例如,这里是页面“溢出”的源代码:

http://en.wiktionary.org/w/index.php?title=overflow&action=raw

API 中有一个“生成 XML 分析树”选项,但它不会将大部分表示格式分解为 XML。自己看看吧:

http://en.wiktionary.org/w/api.php?action=query&titles=overflow&prop=revisions&rvprop=content&rvgeneratexml=&format=jsonfm

如果您想知道是否存在除 MediaWiki 之外的 MediaWiki 格式页面的解析器,不,没有。至少不是当前维护的用 JavaScript 编写的任何东西(请参阅list of alternative parsers,并检查列出的两个网站)。即便如此,支持大多数/所有通用模板将是一个巨大的挑战。祝你好运。

【讨论】:

    【解决方案2】:

    好吧,我认输。

    Pywikipediabot 中有与维基词典相关的 some files,我查看了代码,看起来您确实应该能够让它为您解析含义/定义字段。

    但是最后半小时让我相信了。代码写得不好,不知道有没有用过。

    所以我遵从idealmachine's answer,但我想我会发布这个来避免其他人犯同样的错误。 :)

    【讨论】:

      【解决方案3】:

      如前所述,维基词典页面的内容是人类可读的格式,wikitext,因此 MediaWiki API 不允许获取词义,因为数据不是结构化的。

      但是,每个页面都遵循特定的convention,因此从wikitext 中提取含义并不难。此外,还有一些 API,例如 WordnikLingua Robot,可以解析维基词典内容并以 JSON 格式提供。

      【讨论】:

        【解决方案4】:

        MediaWiki 确实有一个 API,但它是低级的,不支持任何特定于每个 wiki 的内容。例如,它没有对 Wikipedia 的百科全书支持,也没有对 Wiktionary 的字典支持。您可以使用 API 检索页面或部分的原始 wikitext 标记,但您必须自己解析。

        第一个警告是每个维基词典都有自己的格式,但我假设您只对英语维基词典感兴趣。许多工具使用的一个廉价技巧是获取以“#”字符开头的第一行。这通常是第一个谐音的第一义定义的文本。

        另一个需要注意的是,每个维基词典都使用许多 wiki 模板,因此如果您查看原始文本,您会看到很多这样的模板。可靠地扩展这些模板的唯一方法是使用 action=parse 调用 API。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-01
          相关资源
          最近更新 更多