2012-02-04 108 views
0

我正在开发一个Windows Phone应用程序,要求用户键入将在标准英语字典中的有效单词。但是,我有点困惑,至于如何去检查一个词是否真实。有谁知道一个很好的字典API来进行交互,或者我需要将一个单词列表添加到我的应用程序作为文本文件?检查一个单词是否真实

+0

Mac OS/iOS具有内置的带有公共API的拼写检查程序。也许Windows Phone也有一个? – zneak 2012-02-04 03:32:37

回答

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%)和我怀疑的节省将是20000字字典相似只是由于之间的最小距离(即,相邻单词的共同前缀)。

要查找的速度,也可以保持在内存中的26项表,召开与abc,...,z开头的单词的起始偏移。这些偏移处的单词总是会自动以0作为第一个字节,因为它们与前一个单词没有共同的字母。

相关问题