[EDIT] Короче: как бы вы написали автоматическую проверку орфографии? Идея состоит в том, что контролер строит список слов из известного хорошего источника (словаря) и автоматически добавляет новые слова, когда они используются достаточно часто. Слова, которые не использовались в то время, должны быть постепенно прекращены. Поэтому, если я удаляю часть сцены, содержащую «Mungrohyperiofier», контролер должен помнить об этом некоторое время, и когда я набираю «Mung < Ctrl + Space >» в другой сцене, он должен предложить его снова. Если я не буду использовать это слово, скажем, через несколько дней, он должен забыть об этом.Автоматическая проверка орфографии слов в тексте
В то же время, я хотел бы, чтобы избежать добавления опечаток в словарь. [/ EDIT]
Я хочу написать текстовый редактор для SciFi историй. Редактор должен предлагать слово для любого слова, используемого где угодно в текущей истории. Он будет предлагать только одну сцену истории для редактирования (так что вы можете легко перемещать сцены вокруг).
Это означает, что у меня есть три набора:
- Множество всех слов во всех остальных сценах
- Множество слов в текущей сцене перед тем я начал редактировать его
- Множество слова в текущем редакторе
Мне нужно хранить комплекты где-то, поскольку было бы слишком дорого строить список с нуля каждый раз. Я думаю, для этого достаточно простого текстового файла с одним словом для каждой строки.
Когда пользователь редактирует сцену, у нас есть такие ситуации:
- Она удаляет слово. Это слово не используется нигде в текущей сцене.
- типы Она слово, которое является новым
- типов Она слово, которое уже существует
- типа She слово, которое уже существует, но делает опечатку
- Она исправляет опечатку в слове, которое находится в наборе # 2 ,
- Она исправляет опечатку словом, которое находится в наборе №1 (т. Е. Опечатка находится в другом месте).
- Она удаляет слово, которое она планирует использовать снова. Однако после удаления слово больше не находится в наборах # 1 и # 3.
Очевидной стратегией было бы перестроить наборы слов при сохранении сцены и построить набор # 1 из файла списка слов на сцену.
Итак, мой вопрос: есть ли умная стратегия держать слова, которые больше нигде не используются, но все же быть в состоянии поэтапно отказаться от опечаток? Если это возможно, эта стратегия должна работать в фоновом режиме, даже если пользователь не замечает, что происходит (т. Е. Я хочу избегать захвата мыши, чтобы выбрать «добавить слово в словарь» в меню).
[EDIT] На основе комментарий от grieve
Аарон, я пробовал думать об этом, но я смутился. Что вы ожидаете в случае 6? Если кто-то пишет: «Микель и Алекс встретились на день рождения Мишеля», и они редактируют второй «Мишель» на «Майкл», что происходит? Если они отредактируют его на «Алекс», что произойдет? Как вы понимаете разницу? – Oddthinking 2008-12-03 02:23:17