中科院ICTCLAS词典解析
2007-02-05 10:23
246 查看
中科院ICTCLAS词典解析程序 C# 代码
作者: 宁夏大学 张冬 2006.12.29
中科院ICTCLAS词典 采取了2进制的存储方式
对其它开发者使用造成了一些困扰 我写了一个解析程序 希望对大家有所帮助 可以在 http://gforge.osdn.net.cn/projects/xunlong/ 下载
1 解析ICTCLAS的词典 首先要建立一个 字符对照表
因为词典中是按照每个字的顺序来存放词条 但词典中没有提供字的直接信息 但是经过研
究我们可以发现 6768 正好是 gb2312 中 汉字的个数
经过验证 发现词典的字 出现的位置 对应于 从 1 ---6768 汉字出现的位置
2 数据存储的结构
使用UltraEdit 打开 词典 我们可以看到
1F 00 00 00 04 00 00 00 03 00 00 00 03 00 00 00 40 A1 A2
它的标志的数据 每4个字节存放
其中iF 00 00 00 代表此字后面 所拥有的词条的数量
其后是词条信息
04 00 00 00 代表 出现频率
03 00 00 00 词长 按找所拥有的字节数计算
03 00 00 00 代表词性
40 A1 A2 这个是中文的 GB2312 编码 容易解析
没有出现词条的字 使用 00 00 00 00 来占位 (和汉字对照表相关)
3 对字符标志的解析
直接的像 iF 00 00 00 这样的 是不能使用的 它的存储过程是采取了反向排序
存放
iF 00 00 00
[1] [2] [3] [4]
重新合成16进制的时候 是
[4][3][2][1]
然后把得到的16进制表达串 转换成为 int 就 可以得到具体数值了
4 操作的时候 顺次读取
a 记录 一个标志 每处理完一个字 +1 然后这个标志 直接在汉字对照表中得出对
应的中文
b 先读取4位 得到 此字所含有的词条个数
c 如果是 00 00 00 00 则返回 步骤a
d 按照 b 得到的词条个数 建立一个循环 来处理每个词条
e 读取4位 得到 频率
f 读取4位 得到词长
g 读取4位 得到词性
h 根据 f 得到的词长 读取 词长的长度 得到 词条
g 把得到词条的字符 还原为 中文字符串
I 返回 a
5 要对修改过的数据进行保存 反向执行 步骤4就可以了
作者: 宁夏大学 张冬 2006.12.29
中科院ICTCLAS词典 采取了2进制的存储方式
对其它开发者使用造成了一些困扰 我写了一个解析程序 希望对大家有所帮助 可以在 http://gforge.osdn.net.cn/projects/xunlong/ 下载
1 解析ICTCLAS的词典 首先要建立一个 字符对照表
因为词典中是按照每个字的顺序来存放词条 但词典中没有提供字的直接信息 但是经过研
究我们可以发现 6768 正好是 gb2312 中 汉字的个数
经过验证 发现词典的字 出现的位置 对应于 从 1 ---6768 汉字出现的位置
2 数据存储的结构
使用UltraEdit 打开 词典 我们可以看到
1F 00 00 00 04 00 00 00 03 00 00 00 03 00 00 00 40 A1 A2
它的标志的数据 每4个字节存放
其中iF 00 00 00 代表此字后面 所拥有的词条的数量
其后是词条信息
04 00 00 00 代表 出现频率
03 00 00 00 词长 按找所拥有的字节数计算
03 00 00 00 代表词性
40 A1 A2 这个是中文的 GB2312 编码 容易解析
没有出现词条的字 使用 00 00 00 00 来占位 (和汉字对照表相关)
3 对字符标志的解析
直接的像 iF 00 00 00 这样的 是不能使用的 它的存储过程是采取了反向排序
存放
iF 00 00 00
[1] [2] [3] [4]
重新合成16进制的时候 是
[4][3][2][1]
然后把得到的16进制表达串 转换成为 int 就 可以得到具体数值了
4 操作的时候 顺次读取
a 记录 一个标志 每处理完一个字 +1 然后这个标志 直接在汉字对照表中得出对
应的中文
b 先读取4位 得到 此字所含有的词条个数
c 如果是 00 00 00 00 则返回 步骤a
d 按照 b 得到的词条个数 建立一个循环 来处理每个词条
e 读取4位 得到 频率
f 读取4位 得到词长
g 读取4位 得到词性
h 根据 f 得到的词长 读取 词长的长度 得到 词条
g 把得到词条的字符 还原为 中文字符串
I 返回 a
5 要对修改过的数据进行保存 反向执行 步骤4就可以了
相关文章推荐
- 中科院ICTCLAS词典解析程序 C# 代码
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- 中科院分词ICTCLAS导入用户词典后分词结果一样?
- ICTCLAS 中科院分词系统 代码 注释 中文分词 词性标注(2009-06-18 更新 可下载)
- 中科院分词ICTCLAS汉语分词系统简单配置
- JAVA WEB 中添加中科院分词系统ICTCLAS
- NLPIR(ICTCLAS2016)分词系统添加用户词典功能
- 中科院中文分词系统ICTCLAS之CSegment的GenerateWord()详细分析
- 中科院ICTCLAS系统,ICTCLAS.dll的函数调用示例(C语言)
- 中科院ICTCLAS2013(或者NLPIR)运行报错java.lang.UnsatisfiedLinkError: ictclas.NLPIR.NLPIR_Init([BI)Z
- SharpICTCLAS分词系统简介(1)读取词典库
- SharpICTCLAS分词系统简介(1)读取词典库
- 中科院ICTCLAS的调用示例
- 中科院分词ICTCLAS5.0_JNI 使用方法
- 中科院ICTCLAS工具
- ICTCLAS 汉语词性标注集 中科院