社区
数据结构与算法
帖子详情
求教电子词典的数据结构和压缩算法
marmoset
2002-03-11 08:41:02
听说某某电子词典(好像是网际金典)能把400M的词典内容压缩到8M,
请问使用什么压缩算法能达到这样高的压缩比率呢?
另外,作为电子词典,必然要求能够根据词条键值马上得到对应的词条信息,
因此所使用的压缩算法必须支持即时检索,而不能先解压,再建立检索。
假如我现在想实现一个电子词典,要求词典的所有信息都放在内存里,而不能使用文件访问,应该如何设计词典的数据结构和压缩算法呢?
...全文
263
19
打赏
收藏
求教电子词典的数据结构和压缩算法
听说某某电子词典(好像是网际金典)能把400M的词典内容压缩到8M, 请问使用什么压缩算法能达到这样高的压缩比率呢? 另外,作为电子词典,必然要求能够根据词条键值马上得到对应的词条信息, 因此所使用的压缩算法必须支持即时检索,而不能先解压,再建立检索。 假如我现在想实现一个电子词典,要求词典的所有信息都放在内存里,而不能使用文件访问,应该如何设计词典的数据结构和压缩算法呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
commercial1
2002-03-16
打赏
举报
回复
大家好!
小生有理了!如何创建软件包!
我想吻一个关于COM+ 和MTS( Microsoft trancation server :微软事务服务器)的问题,我已经通过解决多层数据库的结构,既是COM+的结构。
2. 注册MTS组件
所有运行于服务器端的ActiveX DLL都应在MTS中注册,这是通过Transaction Server Explorer完成的。其过程如下:
(1)创建软件包
软件包是在同一进程中运行的组件集合,不同软件包中的组件以进程隔离的方式运行在隔离的进程中。在创建软件包时,开发者应尽量把共享资源的组件分配在同一软件包内;考虑到软件包中各个组件所共享的资源类型,可以把那些共享“昂贵”资源(如对某个特定数据库的连接)的组件编为一组。
(2)向软件包添加组件
在想安装组件的包中选择Component文件夹,单击Install New Component(s) 按钮,当提示添加文件时找到新生成的MtsDemo.dll文件将其加入。
想问大家,如何实现上面的两步,请写出步骤来,我本来会的但是一时想不出来了,向大家求教!!
Top
hwang824
2002-03-15
打赏
举报
回复
用分类树方法(ID3或CART)都可以,压缩比可以到1:2.6,而且不用解压缩,并且如果单词不在词典里,也可以用这种方法预测(正确率48%),对于人名的发音很有效。如果采用多变量决策树,应该可以更好(估计可以达到1:3.5)
Brand1
2002-03-15
打赏
举报
回复
存放的时候按照二叉树的方式对照存存放到文件中,读取得时候查找很方便的
hwang824
2002-03-15
打赏
举报
回复
我在作单词发音预测的项目中(就是一个单词如果不在词典中,使用一定的算法预测它的发音)曾经有一个副产品就是词典的压缩。可以达到1:2.6的压缩比(不是特别高),不过不需要解压缩,而且直接可以查到单词的发音,速度比查词典要快很多。方法是用分类树算法建立一颗词典发音的分类树(ID3或CART都可以),然后将这个分类树转化为一个ASCII码的文本文件即可。由于没有专门去作,我就没有在这上面多花精力。由于我采用的是单变量分类树,如果采用多变量分类树,我认为压缩比一定还可以再提高(至少可以到达1:3),而且这个方法也可以用于单词的预测,即一个单词如果不再词典中,仍然可以计算出它的发音(准确率可以达到48%)
minkerui
2002-03-15
打赏
举报
回复
快速单词定位:
http://eudc.home2.2911.net/list.asp?id=3221
blkant
2002-03-15
打赏
举报
回复
对,看看金山词霸,就是用索引!效果不错!
crycoming
2002-03-15
打赏
举报
回复
315投诉:
自从CSDN采用xml后保存页面不方便,而且像楼上的发言长的部分内容看不见;
强烈要求更换页面!!!!!!!
niry
2002-03-14
打赏
举报
回复
现0内存解压?
bistar
2002-03-14
打赏
举报
回复
g z
jami
2002-03-14
打赏
举报
回复
本人作过六七年的电子字典,统计上可压到20%。算法有些独特之处。合乎满压缩,单字编码,字典编码,字母索引,哈系表都用过。不到1k的解压缓冲。
tom255
2002-03-14
打赏
举报
回复
字典压缩和一般压缩不一样,文字可以压缩到20%,(如果源字典没有tag,全部是实际内容,如果有tag,那就高多了<5%),如果是pda,可以实现0内存解压。不过很复杂。具体技术不是一下能说明白的。
tom255
2002-03-14
打赏
举报
回复
一般我处理的字典的是有版权的,提供的文件类似于xml格式,所以文件包含tag,而且非常大,不过不是内容(如字体,排版等)。
0内存解压不是自适应压缩,中文相关资料好像没有,英文我难得找。
如果还有问题 appleben@msn.com 联系
marmoset
2002-03-14
打赏
举报
回复
to tom255
请问您说的tag是指什么?
所谓0内存解压是否指的是自适应压缩,是否有相关的介绍材料或资源
chenm001
2002-03-13
打赏
举报
回复
同意楼上的说法,我一般使用高阶编码及算术编码混合编码,依据前2~3个字母进行索引(称为一个索引块),然后检索时先将索引块全部解压到内存,在搜索即可,但是压缩比一般就是3~20之间,好象没有你说的那么大!
marmoset
2002-03-13
打赏
举报
回复
各位,
关于400M到8M的压缩,据事后调查,原来说的是音频数据的压缩:-)
关于词典组织结构的问题,我目前的做法也的确是采用索引结构和具体记录分离的做法,其中索引结构用的是二级索引。
我现在想了解的是:
对于一个汉英词典(key为汉语词,value为ASCII编码)来说,
1,哪种索引结构(比如trie树,二叉查找树等等)占用的空间开销最低?
是否能构造出一个空间开销很小的hash索引?
2,使用什么压缩算法压缩词条信息压缩率最高?
(我的词条信息只包括ASCII编码,并且长度很小,就是对应汉语词汇的拼音,
比如——[中国|zhong1guo2]
因为LZW之类的压缩算法对于较大长度的连续文本压缩效果好,但是对于只有十几个字母的文本串似乎不太适用,是这样吗?如果是的话,是否huffman压缩是唯一的选择?
MadLee
2002-03-12
打赏
举报
回复
牛皮算法。
说不定原来的字典里有392M的图片,采用有损压缩,把图片都压没了。这样可以。
kya_2001
2002-03-12
打赏
举报
回复
求教
vbtojava
2002-03-12
打赏
举报
回复
实际上并没有什么数据结构和压缩算法,也不可能一次读入内存,而应采用索引,索引可一次读入内存,在索引中检索词条后再到电子词典数据文件中读取记录。
词典结构
Structure Dic
{ char *strEnglish; //英文词
char *trChina; //中文词
}
索引结构
Structure Index
{ char *strIndexKey; //索引字段的关键码
char *Address; //该索引词在词典数据文件中的地址
}
注意:应该对中英文都做索引,如一级索引不够,可考虑分级索引。
LeeMaRS
2002-03-11
打赏
举报
回复
可能吗?我觉得基本不可信哟.
三年还没看完一部《
数据结构
与算法分析 C描述》
起源:05年底floating师兄打电话给我说来年到公司做毕业设计要熟悉
数据结构
和加密算法的一些知识,让我在学校先了解一下。第二天我就跑去大松书店买了两本书,《
数据结构
与算法分析 C描述》和《密码学原理》。《密码...
C语言高级编程
数据结构
与算法(第一章:绪论)
这是b站
数据结构
的本人自做的笔记,将其发出来督促学习,并用于与广大网友交流辅助学习 因为本人是第一次尝试C语言
数据结构
,如有知识问题,望各位及时指出,本人虚心
求教
,谢谢
案例4_1 病毒感染检测(
数据结构
)
病毒检测。头歌习题,希望有用!新人小白,虚心
求教
!
数据结构
停车场管理系统代码以及实验报告
三、题目分析: 1、
数据结构
定义 根据题目所述,停车场是一个南北方向的狭长通道,门在最南端,车辆在最北端,并且有车辆开走时,其他车辆需要让路。根据以上描述易知停车场满足FILO(先进后出)的特点,故使用栈...
数据结构
开讲啦
数据结构
开讲
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章