《数学之美(第二版)》(五)

来源:互联网 发布:c语言基础教程电子书 编辑:程序博客网 时间:2024/04/29 12:08

二十一、拼音输入法的数学原理

       输入法输入汉字的快慢取决于汉字编码的平均长度,即用击键次数乘以寻找这个键所需时间。提升输入法效率在于同时优化这两点。

       首先谈了输入法与编码。对汉字的编码分为两部分:对拼音的编码和消除歧义性的编码。早期的输入法常常只注重第一部分。早期是采用的双拼输入法,但它一方面增加了编码上的歧义性,另一方面也增加了每一次击键的时间,此外它的容错性也不好。随后又出现了大批的输入法,如王永民的五笔输入法等。这一代输入法的问题在于减少了每个汉字击键的次数,而忽略了找到每个键的时间。最终,用户还是选择了拼音输入法中的全拼输入法。它有三个优点:一是不需要专门学习,二是输入自然,不会中断思维,找每个键的时间非常短。三是编码长,容错性好。目前各种拼音输入法做的主要工作是排除一音多字的歧义性。

       接下来谈了输入一个汉字需要敲多少个键——谈谈香农第一定理。香农第一定理指出,任何编码的长度都不小于它的信息熵。平均编码长度(p1L1+p2L2+...+pnLn)的最小值就是汉字的信息熵(-p1logp1-....-p6700logp6700),如何输入法都不可能突破信息熵给定的极限。如果利用上下文相关性,全品输入法的平均击键次数应该小于3。对于如何利用上下文,刚开始的时候是建立大词库,随后又是把常见的词组和词的组合放到词典中去,但效果都不是太好。最好的办法是借助语言模型,这也是将来技术上进一步提升的关键。

       然后便谈到了拼音转汉字的算法。如同导航一样,这也是一个动态规划,可将一个拼音串对应的汉字从左到右连起来形成一张有向图,被称为网格图或篱笆图。然后就是要寻找从起点到终点的一条最短路径。为此还要定于图中两个节点之间的距离。

       最后是延伸阅读:个性化的语言模型。个性化就是不同的人各自应该有各自的语言模型。这里有两个问题:一是如何训练一个个性化的语言模型。好的办法是找到大量符合用户经常输入的内容和用语习惯的语料,训练一个用户特定的语言模型。那如何找到这些符合条件的语料又要用到余弦定理和文本分类技术。二是怎样处理好个性化语言模型和通用语言模型的关系。如果采用最大熵模型成本较高,可考虑采用一个简单的模型即线性插值模型。

二十二、自然语言处理的教父马库斯和他的优秀弟子们

       首先谈到了教父马库斯。将自然语言处理从基于规则的研究方法转到基于统计的研究方法上,贡献最大的一是开创性人物贾里尼克,二是推广人物米奇·马库斯。马库斯毕业于MIT,他更早地发现了建立标准语言库在自然语言处理研究中的重要性。于是他建立了数百个标准的语料库组织(LDC)。另外,他的影响力很大程度上是靠他的弟子传播出去的。他放手让博士生研究自己感兴趣的课题,并且在宾夕法尼亚大学担任计算机系主任期间在专业设置方面表现出远见卓识。

        然后又谈到了从宾夕法尼亚大学走出的精英们。这里种地啊你介绍了两位,一是迈克尔·柯林斯,二是艾里克·布莱尔,他们代表两种截然不同的风格。先是柯林斯:追求完美。他在博士期间写了一个后来以他名字命名的自然语言文法分析器。然后是布莱尔:简单才美。他总是试图寻找非常简单的方法。他的成名作是基于变换规则的机器学习方法。

二十三、布隆过滤器

        首先谈到了布隆过滤器的原理。这是由伯顿·布隆在1970年提出的,实际上是一个很长的二进制向量和一系列随机映射函数。假定存储一亿个电子邮件地址,先建立一个16亿个比特位的向量,全部清零。对每一个电子邮件地址X,用8个不同的随机数产生器(F1,...F8)产生8个信息指纹(f1,...,f8)。再用一个随机数产生器G把这8个信息指纹映射到1-16亿中的8个自然数g1...g8。把这8个位置的比特位全部设置为1。对这一亿个电子邮件地址都进行这样的处理。接下来对于一个可疑的电子邮件Y用布隆过滤器检测其是否在黑名单中。用想用的8个随机数产生器(F1,...,F8)对这个地址产生8个信息指纹s1,...,s8。然后将这8个指纹对应到布隆过滤器的8个比特位上。如果Y在黑名单中,则对应的这8个比特位一定是1。布隆过滤器的好处在于快速,省空间,但有一定的识别率即有极小的可能将一个不在黑名单中的电子邮件地址也判定在黑名单中,这在检验上称为“假阳性”。补救的方法就是建立一个白名单。

        最后是延伸阅读:布隆过滤器的误时别问题。根据数学推导,得出结论是假定一个元素用16比特,每个元素对应8个信息指纹,那么假阳性的概率是万分之五。

二十四、马尔可夫链的扩展

        首先讲了贝叶斯网络。如果每一个状态只跟与其直接相连的状态有关,而跟与它间接相连的状态没有直接关系,那么这个图就是贝叶斯网络。贝叶斯网络的弧上可以有附加的权重。网络中的每个节点概率可以用贝叶斯公式来计算,因此叫做贝叶斯网络。网络中的每个弧都有一个可信度,因此也被称作信念网络。然后通过一个疾病的示例来讲解了贝叶斯网络的应用。可以讲,马尔可夫链是贝叶斯网络的特例,贝叶斯网络是马尔可夫链的推广。使用贝叶斯网络必须先确定这个网络的拓扑结构,然后还要知道各个状态之间相关的概率。得到拓扑结构和这些参数的过程分别叫做结构训练和参数训练,统称训练。训练贝叶斯网络要用一些已知的数据。从理论上讲是一个NP完备问题。

        接下来讲了贝叶斯网络在词分类中的应用。用贝叶斯网络建立一个文章、概念(对词的一个分类)和关键词之间的联系。Google对应的项目产品是Rephil。

        最后是延伸阅读:贝叶斯网络的训练。确定贝叶斯网络结构的最新方法是利用信息论,计算节点之间两两的互信息,只保留互信息较大的节点直接的连接,然后再对简化了的网络进行完备的搜索,找到全局化的结构。确定贝叶斯网络节点之间弧的权重需要一些训练数据,优化贝叶斯网络的参数使得观察到的这些数据的概率(后验概率)达到最大,即EM过程。

二十五、条件随机场、文法分析及其他

        首先谈了文法分析—计算机算法的演变。对于句子的文法分析,以前是采用基于规则的方法。但有个问题是选择规则时不可能一次选对,一旦在某一步走岔路了,需要回溯很多步。查尼阿克提出了在选择文法规则时应坚持一个原则即让被分析的句子的语法树概率达到最大。后来拉纳帕提又提出了一个括括号的统计模型,整个算法和句子长度成正比。最新的研究室采用一种新的数学模型—条件随机场,大大提高了句子浅层分析的正确率。

        随后介绍了条件随机场的概念。条件随机场是隐马尔可夫模型的扩展,也是一种特殊的概率图模型(无向图)。在大部分应用中,条件随机场的节点分为状态节点的集合Y和观察变量的节点集合X。整个条件随机场的量化模型就是这两个集合的联合概率分布。根据最大熵原则,希望找到一个符合所有其边缘分布并使熵达到最大的模型,即指数函数。每一个边缘分布,对应指数模型中的一个特征。如果某个特征函数对应一些变量的取值是零,说明这些特征函数对这些变量不起作用。随后又根据一个例子说明了它的具体应用。

        最后介绍了条件随机场在其他领域的应用。典型的一个例子就是预防犯罪,但这个和《大数据时代》中的观点有些不符。

1 0