文字和语言VS数字和信息
不同的文字系统在记录信息上的能力是等价的。文字只是信息的载体,而非信息本身
罗塞塔石碑
双语对照的指导意义
1.信息的冗余是信息安全的保障
2语言的数据,也就是语料,尤其是双语或者多语的对照语料对翻译至关重要,是机器翻译研究的基础
包括0在内的10个阿拉伯数字是印度人发明。
西方的拼音文字称为罗马式的语言,罗马体系的文字中,总体来讲,常用字短,生僻字长。汉语(意型文字),也是类似。
自然语言处理---从规则到统计
验证机器是否有智能的方法---图灵测试:让人和机器进行交流,如果人无法判断自己交流的对象是人还是机器时,就说明这个机器有智能了。
自然语言的文法是上下文有关文法,人为设计的程序语言是便于计算机解码的上下文无关文法。
自然语言的处理经过几十年的认识,从单纯的句法分析和语义理解发展成基于统计的自然语言处理方法。
推动技术路线转变的关键人物:弗里德里克-贾里尼克
统计语言模型
使用马尔可夫假设使条件概率的计算变的简单,因此出现了二元模型,三元模型。。。
实际运用中一般使用三元模型,因为阶数越高时间复杂度和空间复杂度呈指数上升,而且当阶数达到3以后,再提高阶数,模型的效果提升不是很明显
Google的罗塞塔翻译系统和语言搜索系统使用的是四元模型。
统计中的零概率解决方法:
1.增加数据量
2.古德-图灵估计,平滑方法---卡茨退避法
数学的魅力在于将复杂的问题简单化
中文分词
词是利用统计语言模型进行自然语言处理的基础。
西方拼音语言的词之间有明确的分解符,而像中、日、韩、泰等词之间没有明确的分界符。
中分分词最早的方法---查字典法,由北京航空航天大学的梁南元教授提出。
接着由哈尔滨工业大学的王晓龙博士把查字典的方法理论化,发展成最少词数的分词理论。
清华的郭进博士使用统计语言模型成功解决分词二义性问题。
分词的不一致性分为:错误和颗粒度不一致。近年来中文分词的主要精力在于通过数据挖掘不断完善复合词的词典。
隐马尔可夫模型
通信的本质就是一个编解码和传输的过程。
隐马尔科夫模型的三个基本问题:
1.概率计算问题:给定一个模型,如何计算摸个特定的输出序列的概率----Forward-Backward算法
2.预测问题:给定一个模型和某个特定的输出序列,如何找到最可能产生这个输出的状态序列(即解码问题)----- 维比特算法,类似于动态规划
3.学习问题:给定足够量的观测数据,如何估计隐马尔科夫模型的参数,也就是模型训练问题----- 鲍姆-韦尔奇算法(EM算法)
信息的度量和作用
信息的作用在于消除不确定性,自然语言处理的大量问题就是找相关的信息。相关的信息能够消除不确定,比如条件熵不大于信息熵,H(X|Y,Z)<=H(X | Y) <= H(X),当X,Y,Z不相关时取得等号。
信息量的比特数和所有可能情况的对数函数log有关,由此香农提出了熵公式的定义
信息熵的物理含义:对一个物理系统不确定性的度量。
互信息 是对两个随机事件“相关性”的量化度量,可用它消除词义的二义性,比如Bush可以是布什或者灌木丛
相对熵 也叫交叉熵 用来衡量两个取值为正数的函数的相似性。
相对熵的结论:
1.对于两个完全相同的函数,它们的相对熵等于零
2.相对熵越大,两个函数差异越大;反之,相对熵越小,两个函数差异越小
3.对于概率分布或者概率密度函数,如果取值均大于零,相对熵可以度量两个随机分布的差异性
贾里尼克和现代语言处理
很多历史偶然性背后有着它必然的原因
学习是一辈子的事
布尔代数和搜索引擎的索引
一个搜索引擎三种基本服务:
1.下载---自动下载尽可能多的网页
2.索引---建立快速有效的索引
3.排序---根据相关性对网页进行公平准确的排序
现代物理研究成果表明:我们的世界实实在在是量子化的而不是连续的。
搜索引擎之所以能够在零点零几秒找到成千上万的搜索结果是因为建立了索引,好比拿着图书馆的索引卡片去图书馆找一本书
数据库的检索是基于布尔运算的
为了范姐数据压力,需要根据网页的重要性、质量和访问的频率建立常用和非常用等不同级别的索引,常用的索引要求访问速度快,附加的信息多,更新也要快。
图论和网络爬虫
图的遍历方法:深度优先遍历和广度优先遍历
在网络爬虫中使用哈希表记录网页是否下载过的信息
网络爬虫的工程实现上需要解决的三大细节问题:
1.用BFS和DFS
下载完第一个网站后再下载第二个,是DFS,下载同一个网站中所有的子网页需要用到BFS,网络爬虫对网页遍历的次序不是简单的BFS或者DFS,而是一个相对复杂的下载优先级排序的方法。
2.页面的分析和URL的提取
若一些网页存在,但搜索引擎没有收录,可能的原因就是网络爬虫中的解析程序没有成功解析网页中不规范的脚本程序
3.记录哪些网页已经下载过---URL表
使用哈希表记录哪些网页已经被下载过,使用哈希表的好处是判断一个网页是否在哈希表中平均只需要一次(或者略多的)查找。
由于同时存在上千台服务器一起下载网页,维护一张统一的哈希表就是整个爬虫系统的瓶颈,好的解决办法一般用以下两个技术:
1)明确每台下载服务器的分工,也就是说在调度室一看到某个URL就知道交给哪台服务器去下载,避免了很多服务器对同一个URL做是否需要下载的判断
2)在明确分工的基础上,判断URL是否下载就可以批处理了,比如每次向哈希表所在的独立服务器发送一大批询问,或者每次更新一大批哈希表的内容,这样通信次数大大减少
PageRank---Google的民主表决式网页排名技术
对于一个特定的查询,搜索结果的排名取决于两组信息:1.网页的质量信息;2.这个查询与每个网页的相关性信息
PageRank的网页排名算法是Google革命性的发明
PageRank的核心思想:一个网页被很多其他网页链接,说明它受到普遍的承认和信赖,那么它的排名就高。一个网页的排名应该来自于所有指向这个网页的其他网页的权重之和,而每个网页的权重又与网页的自身的排名有关