将语言词表添加到iOS自定义键盘以进行预测(建议)文本。

4

我正在尝试创建一个自定义的iOS键盘。我使用了UILexicon类来提供基本的单词表,requestSupplementaryLexiconWithCompletion:方法提供。

但我也想将预测文本添加到键盘中。

我知道即使你尽全力也不可能创建一个单词数据库。

所以,我相信没有人会用自己的键盘去做这件事。一定有一个预先创建的数据库,我知道这一点。

即使我找到了这些单词的数据库,我也不知道如何根据前一个单词提供建议

是否有人能指向一个好的、可靠的来源,为我提供我想要的结果,并给我一个英语其他语言的词汇表数据库。

请甚至建议在应用程序中使用数据库的方法。

所有回复都将非常有帮助。

1个回答

5
你应该查看 UITextChecker类 来实现高级自动更正。它可以根据用户输入进行预测建议,但不具备上下文感知能力。再加上 UILexicon 就可以得到一个相当不错的基本自动更正。
你还应该查看 这个SO问题

我尝试了UITextChecker类的***completionsForPartialWordRange:inString:language:***方法,文档中提到返回的数组对象应按照它们的顺序使用。但是实际上顺序并不合适。另外,您能否就基于先前单词提供建议,以便我们可以实现下一个单词的建议? - Casper
预测文本必须由您自己构建,因为苹果没有提供API。我认为这个序列是合适的,你确定吗? - donkey
该序列按字母顺序排列,而不是按语言中常用单词的顺序排列。当我阅读UITextChecker类的文档时,我最初想象***completionsForPartialWordRange:inString:language:***方法会按照常用到罕见使用的单词顺序返回序列。然而事实并非如此。 - Casper
你知道任何sqlite数据库或其他API吗?我发现了LexiconText API,但我认为它不太适合这项工作。 - Casper
很遗憾,我不会。 - donkey
我刚刚使用自定义的iOS键盘完成了这个。使用词典和UITextChecker类提供了与原始键盘几乎相同的功能,除了上下文感知部分。那需要自定义逻辑,在我的键盘中没有添加,但是使用TextChecker可以非常快速地捕捉到用户正在输入的单词。 - Jacob Boyd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接