我正在尝试使用仅允许 30kb 数据的微 Controller 来实现文字游戏。为此,我需要从允许单词的特定字典中查找单词,该字典在未压缩时大小几乎为 4 MB。
我不需要每次都给出正确答案,因此我可以在准确性上做出妥协。有没有一种方法可以在 30kb 空间中容纳 4MB 字典,同时将准确性损失降到最低?
我已经按照建议尝试使用优化的“trie”数据结构 here ,使用压缩特里树生成器 here这将大小从 4 MB 减少到 740 KB,但我想不出一种方法可以在不丢弃大量单词的情况下使其更小。
“trie”总是会给我正确的答案。有没有一种方法可以通过权衡准确性来减小尺寸并制定出一种在大多数情况下都可以给我正确答案的结构? 也许我可以使用机器学习模型或与之相关的东西?
我知道这几乎是不可能的。但游戏的设计目的是让你不需要准确的答案。即使准确度约为 25% 仍然是合理的。
我可能会省略最长的单词,直到字典适合这个大小。但在这种情况下,这可能不是最好的方法。
最佳答案
fit a 4MB dictionary in a 30kb space with minimum loss of accuracy?
字典文件很可能是每行一个单词的格式,对吗?这是一种非常有效的存储单词列表的方法。
所以我想说,不,4MB 的数据永远无法容纳在 30kb 的空间中。没有压缩,没有有效存储,现在不行,永远也不会。
想一想:4MB 实际上比 30kb 限制的100 倍还要大。显然,您必须迭代磁盘上的字典,并可能缓存结果。
关于dictionary - 如何在较小的空间内容纳较大的单词词典,同时对准确性的影响最小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011529/