0

这可能最终成为一个非常普遍的问题,但希望它对其他人也有用。

我希望能够请求一个带有 x.[y] 音节重音的 x 个音节的单词。我发现了很多返回这两种 API 的 API,例如Wordnik,但我不确定如何处理搜索方面。获取音节的 URL 是

GET /word.json/{word}/hyphenation

但我不会提前知道这个词来提出这个要求。他们也有这个:

GET /words.json/randomWords

它返回一个随机单词列表。

有没有办法用这个 API 实现我想要的,而不是一遍又一遍地询问随机单词并检查它们是否满足我的需求?这似乎真的很慢,并且会超过我的使用限制。

我是否需要用单词和音节构建自己的数据结构以在本地查询?

4

1 回答 1

2

我怀疑你会在任何大型字典 API 上找到这种专门的查询。您需要下载英文词典并创建自己的数据结构来执行此类操作。

Moby 项目有一个连字符字典,里面有大约 185,000 个单词。还有许多其他可用的字典项目。一个开始寻找的好地方是http://www.dicts.info/dictionaries.php

下载字典后,您需要对其进行预处理以构建数据结构。您应该能够构建由(音节,强调)索引的字典或哈希映射,其数据成员是单词列表。所以你会有一个像(4, 2)(4 音节单词,强调第二个音节)这样的条目,以及所有这些单词的列表。

那么,要查询它,您只需将查询打包到一个结构中并在哈希映射中查找该键。然后从结果列表中选择一个随机单词。

于 2016-08-03T14:27:02.413 回答