У меня есть список из ~ 354 000 действительных английских слов, которые я могу сравнить свое сканированное слово с. < /P>
< P> Поскольку мое приложение непрерывно обнаруживает текст, мне нужно, чтобы эта функция была очень очень быстрой. Я применил технику расстояния Levenshtein. Для каждого слова я: < /p>
[*] Сохраните содержимое текстового файла в ArrayList < /code> с использованием сканера < /код >
[*] Рассчитайте расстояние от слова Levenshtein с каждым из 354K слов
[*] вернуть слово, соответствующее минимальному значению расстояния
< /ol>
Проблема в том, что она очень очень медленная. Не применяя это, моему приложению удается OCR более 20 слов примерно в 70-100 миллисекунд. Когда я включаю эту процедуру исправления, мое приложение занимает больше 1 полную минуту (60000 мс) для одного слова. случай. Если нет, с каким еще протестированным способом мне следует пойти? Любая помощь будет очень оценена. Я знаю, что это возможно, глядя на то, как клавиатуры Android могут мгновенно исправить наши неправильно напечатанные слова. />
- Расстояние Джаро. (аналогично)
- Android Internal Spellchersession служба. (не соответствует моему случаю. Квитанция о результате с помощью вызовов - проблема)
Подробнее здесь: https://stackoverflow.com/questions/383 ... in-real-ti
Мобильная версия