
本文共 1417 字,大约阅读时间需要 4 分钟。
前言
最近在读《数学之美》这本书,做点笔记;
这里送个自己一句话:在傻逼的情况下,也要让自己开心点;
语言之语法
语法 就是对语言进行编解码;
早期人类,因为干的事情很简单,几句叫声就满足日常需求;
后来,比如需要储备食物,种庄稼了,需要记录的事情多了,就不得不用一些符号来记录,比如食物的数量,一、二、三来记录;
再后来,人类有文艺,歌曲,简单的几个符号也满足不了日常生活了;
这个时候就需要文字来记录;可是文字多了,该怎么理解呢?
这个时候,就需要一套规则;而这个规则就是语法;
在计数方面,早起人类都是习惯用手指头进行计算,可是当手指头不够用的情况下,该怎么办呢?
我们的祖先发明了进位制,也就是逢十进一;
我个人认为,这是将数学从语言中分离的开始;到了后来的阿拉伯数字,则是数字和文字的彻底分离;
书中强调:1、2。。。10这种数字是印度人发明的,只是阿拉伯人传入了欧洲,欧洲人以为是阿拉伯人发明的;
识别语言 到 分词
如何更好的识别?
正常人的想法,就是让计算机先理解我们人类的语法,然后再去理解语言;
后来证实,是不现实的事情;人类语言的丰富性,二义性等问题;都得靠上下文去理解;
而计算机是无法理解上下文的;
经过前辈天才门的努力,终于发现了语言统计模型可以解决这些问题;
简单的理解,就是对一段话,怎么去分词,以前是通过语法,现在通过概率;
即:如果这样分词后,这个词的频率高,就这么分;那么我们也可以说这其实就是大众想法
或多数句子用法
但是在特定情况下,可能是错的:比如对联:此地安能居住,其人好不悲伤;
理解一: 此地-安能-居住,其人-好不-悲伤
理解二:此地安-能居住,其人好-不悲伤
两种理解刚好相反
而通过语言统计模型又无法消除二义性;
好在这种情况,几乎不会发生
隐马尔可夫模型
为什么前面要加个
隐
呢?
因为它隐含了一条马尔可夫链。
那什么是马尔可夫链呢?
状态st可能和之前的状态都有关系,那么在研究随机过程就会有很多的不确定性;
为了简化,马尔可夫这个人,提出了一个假设;
假设:随机过程中各个状态st的概率分布,只与它的前一个状态st-1有关。
这个假设称为
马尔可夫
假设;
这个随机过程,称为
马尔可夫链
;
马尔可夫链如下图(
我用markdown画的
):
A --> B --> C --> D
隐马尔可夫模型:
A --> B --> C --> D
可以看出S1,S2,S3,S4是就是一条马尔可夫链。因为其隐含在这个模型里,所以叫做
隐马尔可夫模型
。
马尔可夫链是需要一个时间段来产生一个状态序列:s1,s2,s3,st
但是任一时刻t的状态St是不可见的。所以观察者没法通过观察到一个状态序列s1,s2,s3,st来推测转移概率等参数。但是,隐马尔可夫模型在每个时刻t会输出一个符号Ot,而且这个Ot跟St相关且仅跟St,这个称之为独立输出假设。
信息
信息的作用就是消除不确定性;
自然语言处理的大量问题就是寻找相关的信息。
今天读到第六章,书中讲到一本50万字的中文书平均有多少信息量。书中的答案是13比特。
一开始,我看懵了;这13比特是怎么算来的?
后来想明白了;信息量其实就是概率;
一本50万字的数据,常用字(一级、二级国标)大约7000字。那么也就是每个字都有这7000个可能。
那么一个汉字的信息量就是7000,其需要的比特就是2^13等于8192。(2^12等于4096)。