这可能最终成为一个非常普遍的问题,但希望它对其他人也有用。
我希望能够在x。[y]音节上请求一个x个音节的单词。我发现有很多API可以返回这两个,例如Wordnik,但我不确定如何处理搜索方面。获取音节的URL是
GET /word.json/{word}/hyphenation
但是我不会提前知道提出这个请求。他们也有这个:
GET /words.json/randomWords
返回一个列表随机单词。
有没有办法用这个API实现我想要的东西,而不是一遍又一遍地询问随机单词并检查它们是否满足我的需求?这似乎真的很慢,让我超过了我的使用限制。
我是否需要使用单词和音节构建我自己的数据结构以在本地查询?
答案 0 :(得分:1)
我怀疑你会在任何大词典API上找到这种专门的查询。您需要下载英语词典并创建自己的数据结构才能完成此类工作。
The Moby Project有一个带连字符的词典,里面有大约185,000个单词。还有许多其他字典项目可供使用。开始寻找的好地方是http://www.dicts.info/dictionaries.php。
下载完字典后,您需要对其进行预处理以构建数据结构。您应该能够构造一个由(音节,重点)索引的字典或哈希映射,其数据成员是单词列表。所以你有一个像(4, 2)
这样的条目(强调第二个音节的4个音节词),以及所有这些词的列表。
要查询它,您只需将查询打包到一个结构中,然后在哈希映射中查找该键。然后从结果列表中选择一个随机单词。