随字符串\(s\)的长度增加,其对应的统计频次\(f\)将最终收敛至1。
\[ \mathop {\lim }\limits_{N \to \infty } f = 1 \]
字符串\(s\)由子字符串\(\{s_1,s_2,…..,s_N\}\)顺序拼接而成。因此,字符串\(s\)的概率链式法则如下:
\[P(s_1s_2…s_N)=P(s_1)P(s_2|s_1)P(s_3|s_1s_2)⋅⋅⋅P(s_N|s_1s_2…s_{N−1}) \]
实际情况下,每一个概率因子\(P_i<1\),所以\(P(s_1s_2…s_N)\)随\(N\)增大将趋近于0,但始终大于0。由于\(P=\frac {f}{T}\) ,所以\(f\)也应当趋近于0。考虑到“人择原理”:字符串\(s\)要么在语料中出现至少1次;要么在脑海中至少出现1次。所以,这个频次\(f\)最终趋近于1。
若要\(P(s_1s_2…s_N)\)不收敛至0,则只能每一个概率因子\(P_i=1\)。那么就意味着子字符串\(\{s_1,s_2,…..,s_N\}\)将完全相关(即同时出现,同时消失)。这种情况在字符串长度为2时,还比较常见。当字符串长度为4时,可以归结其为“成语”。超过长度4以后,这种同时出现的情况就非常罕见了。只能是某些特定名称,才会遇到这样的情况。
字符集中所有字符串的相关系数下限是多少?
相关系数的理论下限值是零。排除这个零值之后,还有一个非零下限值。
根据相关系数的公式:
\[\gamma (s|s_1s_2…s_n) = \frac {f}{N} \sum \limits_{i=1}^N \frac {1}{f_i}\]
设所有字符串的最大频次为\(f_{max}\) ,这个值也不会超过统计总次数\(T\) 。
所以可以得到:
\[\gamma_{min}= \frac {f}{N} \sum \limits_{i=1}^N \frac {1}{f_i} \ge \frac {f}{N} \sum \limits_{i=1}^N \frac {1}{f_{max}} = \frac {f}{f_{max}} \ge \frac {1}{f_{max}} \gg \frac {1}{T}\]
因此可以大致通过实际计算出的最小非零相关系数\(\gamma\),估计出\(T\)。或者换个角度说,语料长度决定了相关系数的非零下限。
实际上最小非零相关系数:\(\gamma_{min}∼\frac {1}{f_{max}}=\frac {1}{f_{的}}=\frac {1}{30888903}≃3.2374×10^{−8} \)。
最大匹配法为什么特别适合做分词算法?
最大匹配法包括:正向最大匹配法,逆向最大匹配法,双向最大匹配法。这些分词算法,是初期最适合分词的算法。这其中蕴涵的原理是什么?
我们知道字符串\(\{s_1,s_2,…..,s_N\}\)的相关系数公式如下:
\[\gamma (s|s_1s_2…s_n) = \frac {f}{N} \sum \limits_{i=1}^N \frac {1}{f_i}\]
采用最大匹配法做分词算法时,对公式里面的两个参数有影响:
(1) \(N\)值降低。
字符串越长,所需要分成的份数就越少。因此\(N\)值降低。
(2)\(f_i\)值降低
由前面的性质可以知道:字符串越长,其对应的频次会降低。
两个因素叠加起来,会使得相关系数\(\gamma\)的数值提高。某种意义上:最大分词算法是一种相关系数\(\gamma\)速升的方法。这里的证明是不完备的,只能做出简单的定性分析结论。
不过根据“人择原理”:\(N\)值和\(f_i\) 能降低到何种程度,完全受制于语料库。如果语料库中不存在某个字符拼接组合,就需要回归到按单字进行分析和计算。这点上也与最大分词算法的具体步骤相吻合。
相关系数\(\gamma\)与信息熵\(H\)的关系如何?
相关系数\(\gamma\)衡量的是子字符串之间的关联程度;信息熵\(H\)衡量的是子字符串所包含的信息量。从基本定义上,就可以知道两者之间并无关系。
另外根据信息熵的公式:
\[H=-\sum \limits_{i=1}^N P_i{log}_2 P_i = – \sum \limits_{i=1}^N P(s_i) {log}_2 P(s_i) = – \sum \limits_{i=1}^N \frac {f_i}{T} {log}_2 \frac {f_i}{T}\]
信息熵的具体计算中还与统计数量\(T\)相关,而相关系数\(\gamma\)的具体计算则与统计数量\(T\)无关。
根据前面的讨论结果可以了解到:一个字符串集合的最小非零相关系数\(\gamma_{min}\)与\(\frac {1}{T}\)存在一个固定的正比关系。因此,可以利用这个\(\gamma_{min}\)替代\(\frac {1}{T}\)进行信息熵的数值估算。
也可以选择一个合适的词汇(例如:“垃圾”),将其信息熵规定为1。通过解方程获得\(T\)的数值。然后再用这个\(T\)值去计算其他字符串的熵。不过,总体来说,基本与词汇频次比成反比例。
两者在其中一个方面具有一致性的取向:发生频次低的字符串对数值的贡献比较大。发生频次低的字符串对于信息熵\(H\)而言,是因为其所包含的信息量大;对于相关系数\(\gamma\)而言,则是字符串较长,能显著提升实际数值。