我的目标是验证OCR结果。
Android提供了一个SpellCheckerSession界面来检查单词建议。该功能应该由本地化字典备份。有没有办法获得对该词典的访问权限?自己加载一个巨大的UserDictionary并保持其中几十个最新的正确本地化似乎不是一个好主意。
我一遍又一遍地扫描文档,但我必须遗漏一些东西。这是一个理想的场景(遗憾的是不存在):
Dictionary d = SystemDictionary.forLocale("fr-ca");
d.contains(word);
答案 0 :(得分:1)
我正在尝试做类似的事情。我想出的解决方案是使用SpellCheckerSession并检查它是否与onGetSentenceSuggestions完全匹配。
public class SpellChecker implements SpellCheckerSessionListener {
public SpellChecker(Activity a)
{
final TextServicesManager tsm = (TextServicesManager) a.getSystemService(
Context.TEXT_SERVICES_MANAGER_SERVICE);
SpellCheckerSession scs = tsm.newSpellCheckerSession(null, null, this, true);
TextInfo[] tia = {new TextInfo("trewgjj"), new TextInfo("great")};
scs.getSentenceSuggestions(tia, 3);
}
@Override
public void onGetSuggestions(SuggestionsInfo[] results) {
// TODO Auto-generated method stub
}
@Override
public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] results) {
for (int i = 0; i < results.length; ++i) {
// Returned suggestions are contained in SuggestionsInfo
for (int j = 0; j < results[i].getSuggestionsCount(); ++j) {
SuggestionsInfo si = results[i].getSuggestionsInfoAt(j);
if ((si.getSuggestionsAttributes() & SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY) != 0)
Log.d("", "EXACT MATCH FOUND");
}
}
}
}
唯一的问题是,如果您还想根据用户定义的字典验证单词。我不相信这些包含在此拼写检查框架中,因此您可能需要手动检查这些单词。