我正在开发一个Windows Phone应用程序,要求用户输入标准英语词典中的有效单词。然而,关于如何检查单词是否真实,我有点困惑。有没有人知道要与之交互的好词典API,还是需要将单词列表作为文本文件添加到我的应用程序中?
答案 0 :(得分:2)
This link似乎表明拼写检查API没有向开发人员公开,尽管至少有one third party product声称它提供了基于API的解决方案(其中也有评估)你可以测试它是如何工作的。)
如果你不能使用第三方产品,你如何实现这个功能,英语的问题是所有其他语言:-)我的意思是,它不一定是一致的开始,它有从许多其他语言中“解除”了这些词语。
因此,没有真正合适的规则可以告诉你一个单词是否有效。
你需要维护一本字典,并且考虑到语言的奇怪角落,你可能不得不将它限制为常用词(如果空间有问题,也可以将其限制为短词)。
顺便说一句,如果你做去自编的基于字典的方法,你可以使用我多年前学过许多的小技巧。
您可以将每个单词编码为:
所以单词列表
HERE would encode as THIS
------------- ----
sanctimonious 0,sanctimonious
sanction 6,on
sanguine 3,guine
trivial 0,trivial
你在那里直接保存了7个字节(19%),我怀疑由于相邻单词之间的最小距离(即公共前缀),对于20,000字的字典保存是相似的。
为了加快查询速度,您还可以在内存中维护一个26条目表,其中包含以a
,b
,c
,...,{开头的单词的起始偏移量{1}}。这些偏移处的字总是会自动将0作为第一个字节,因为它们没有与前一个字相同的字母。