Sascha Lefèvre
Вам, очевидно, понадобится словарь слов (словарь не в смысле класса). Я бы предложил OpenOffice-словари (лицензия LGPL):
https://wiki.openoffice.org/wiki/Dictionaries[^]
Чтобы иметь возможность показать те совпадающие слова, которые чаще всего встречаются в языке в верхней части списка предложений, вам также понадобятся данные о частотах слов. Лучший источник для этого, который я знаю, находится здесь:
http://corpora.informatik.uni-leipzig.de/download.html[^]
(Выдержка из условий использования: коммерческое использование данных требует предварительного письменного согласия Департамента обработки естественного языка Лейпцигского университета.)
Причина, по которой списки частот слов не заменяют словаря: слова происходят из интернета. В этих списках довольно много не-слов. Я бы скачал оттуда несколько списков (из разных лет и источников), объединил их, а затем отфильтровал те слова, которые довольно редко встречаются и/или не появляются в словаре (вам, вероятно, придется немного поэкспериментировать).
Тогда вам придется:
- Загрузите эти слова и подсчитайте их частоту.
- Реализовать алгоритм, который как можно быстрее ищет те слова, которые начинаются с уже введенной пользователем подстроки (см. "двоичный поиск").
- Сортируйте совпадающие слова по их частоте и отображайте их для выбора.
Sascha Lefèvre
Пожалуйста! Спасибо за ваши отзывы и за то, что приняли мой ответ, рад, что смог помочь :)