我有文本文件格式的原始数据,其中包含大量重复标记(~25%)。我想知道是否有任何算法可以帮助:(A)以紧凑的形式存储数据(B),但允许在运行时重新构成原始文件。
有任何想法吗?
更多细节:
- 原始数据在纯 html+javascript 应用程序中使用,用于使用正则表达式进行即时搜索。
- 数据由包含(区分大小写)字母字符和少量标点符号的标记组成。
- 标记用空格、换行符分隔。
迄今为止最有前途的算法:下面讨论的简洁数据结构,但重构看起来很困难。
http://stevehanov.ca/blog/index.php?id=120
http://ejohn.org/blog/dictionary-lookups-in-javascript/
http://ejohn.org/blog/revised-javascript-dictionary-search/
PS:服务器端 gzip 目前正在使用,但它只是一个传输层优化,并无助于最大限度地利用离线存储。鉴于 25% 的大量重复性,应该可以以更紧凑的方式存储,不是吗?