[编辑]简而言之:您将如何编写自动拼写检查器?这个想法是检查器从已知的良好来源(字典)构建一个单词列表,并在足够频繁使用时自动添加新单词。一段时间未使用的词应逐步淘汰。因此,如果我删除包含“Mungrohyperiofier”的场景的一部分,检查器应该记住它一段时间,当我在另一个场景中输入“Mung<Ctrl+Space>”时,它应该再次提供它。如果我不使用这个词,比如说,几天,它应该忘记它。
同时,我想避免在字典中添加拼写错误。[/EDIT]
我想为科幻故事写一个文本编辑器。编辑应该为当前故事中任何地方使用的任何单词提供单词补全。它只会提供故事的单个场景进行编辑(因此您可以轻松地移动场景)。
这意味着我有三套:
- 所有其他场景中所有单词的集合
- 在我开始编辑之前当前场景中的一组词
- 当前编辑器中的单词集
我需要将这些集合存储在某个地方,因为每次都从头开始构建列表太昂贵了。我认为一个每行一个单词的简单纯文本文件就足够了。
当用户编辑场景时,我们有这些情况:
- 她删了一个字。这个词在当前场景中的其他任何地方都没有使用。
- 她打出一个新词
- 她输入了一个已经存在的单词
- 她输入了一个已经存在但打错字的单词
- 她更正了第 2 组中一个单词的错字。
- 她更正了第 1 组单词中的错字(即错字也在别处)。
- 她删除了一个她打算再次使用的词。但是,删除后,该单词不再位于集合#1 和#3 中。
显而易见的策略是在保存场景时重建单词集,并从每个场景的单词列表文件中构建集#1。
所以我的问题是:是否有一个聪明的策略来保留不再使用的单词但仍然能够逐步淘汰拼写错误?如果可能的话,这个策略应该在后台运行,用户甚至不会注意到发生了什么(即我想避免必须抓住鼠标从菜单中选择“将单词添加到字典”)。
[编辑] 基于悲伤的评论