FreeICTCLAS 词典结构的一些理解与疑问

187 views
Skip to first unread message

容名 zhou

unread,
Sep 27, 2011, 9:43:03 AM9/27/11
to ictclas, danc...@gmail.com
今天仔细阅读了 OpenCLAS 与 FreeICTCLAS 的部分头文件,对字典的结构很头疼。 一一列出来:

T1、 对 *.dct 格式的字典, 我的理解是handle 即GBK编码的汉字的整数值,不知是否正确!
但不明白为什么这样做?
提到handle,随便也提一下POS。POS的值似乎为 'A'+tag_string !
但是,对 handle , POS , tag , 词 四者之间的关系始终理不清,求高手指点!

T2,、对 ctx后缀的字典,我的理解是:注释中提到第一个数指表长度 len ,确不懂具体指什么表(是标注的表吗?) 而且仅仅 核心字典的
len==50, 其他字典的 长度为15/nr , 9/ns , 9/tt 。
后面 len 个数指 symbol table,同样不明白指什么表!
之后的一个数为 key , 而nr.ctx , tr.ctx , ns.ctx 中的key值都为0 ,这是不是表示第一张表?
下一个数为 总的POS 频率。
下一行数据位每个 POS 分别出现的频率。
再下面 len*len 的矩阵的每一行是 每个 symbol 出现的频率。 矩阵中所有元素的和即 总的POS频率。不明白为什么要这个矩阵。

T3、在 OpenCLAS 的serialization.hpp 中有一个函数load_from_dct(***, bool
is_transit )中,参数 is_transit 为true时, 对Bigram 字典中的词进行了拆分,并分别对前后两个词分别求其
backward ,forward 对应的【词,freq】对。没有明白为什么要这样做。

T4、在OpenCLAS 的Dictionary.hpp 中的类 Dictionary, 定义了私有数据成员 vector<int>
m_tag_dict, m_tag_transit_dict 。 这两个数据对象在装载 ctx 后缀的文件时分别用于存放 每个POS的总频
率、 len*len矩阵的值,不明白为什么这样存放?

我现在单枪匹马地看这些源代码,很无助,论坛里有同学遇到类似的疑问吗? 分享一下吧!

Reply all
Reply to author
Forward
0 new messages