检查一个单词是否真实

时间:2012-02-04 03:26:49

标签: windows-phone-7 dictionary

我正在开发一个Windows Phone应用程序,要求用户输入标准英语词典中的有效单词。然而,关于如何检查单词是否真实,我有点困惑。有没有人知道要与之交互的好词典API,还是需要将单词列表作为文本文件添加到我的应用程序中?

1 个答案:

答案 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条目表,其中包含以abc,...,{开头的单词的起始偏移量{1}}。这些偏移处的字总是会自动将0作为第一个字节,因为它们没有与前一个字相同的字母。

相关问题