自然语言处理(NLP) - 数学基础(1) - 总述

正如我在<2019年总结>里说提到的, 我将开始一系列自然语言处理(NLP)的笔记.

很多人都说, AI并不难啊, 调现有库和云的API就可以啦.

然而实际上并不是这样的.

首先, AI这个领域十分十分大, 而且从1950年图灵提出图灵测试, 1956年达特茅斯会议开始, AI已经发展了五十多年了, 学术界有的认为有六个时期, 有的认为有三起二落.

所以Ai发展到今天, 已经有相当的规模了, 不可能有一个人熟悉AI的所有领域, 最多也就是熟悉相关联的几个领域, 比如NLP和OCR以及知识图谱相关联, 这已经顶天了.

所以我不敢说我会AI, 我只敢说我做过自然语言处理(NLP)项目.

换种我们所熟知的方式表达, AI就相当于.NET, .NET有七龙珠, 遍及web, 桌面, 移动端, 手游端等等, 一个人不可能熟悉所有领域, 能够熟悉web和桌面端两三个领域已经很顶天了.

当一个做惯了web和桌面端的程序员突然去做移动端和手游端, 因为缺乏对应领域的基础知识, 是不能马上上手的, 也是通不过面试的, 也就是为什么很少.NET程序员能够从web和桌面端转型做手游端一样. 最典型一个问题, 让一个做web的.NET程序员去做手游客户端的自动寻路功能, 并不容易, 并不是调API就能解决的.

所以虽然我做过NLP项目, 现在让我突然去做阿拉法狗, 我也是不行的.

我接触到不少人做过NLP项目, 因为只会调现有库和云的API, 最终效果不佳, 不得不回退到用正则表达式处理的方式, 甚至乎类似于"价值一个亿的AI核心代码". 或者采取人工+智能的方式.

在此我并没有嘲笑以上各种方法的意思, 毕竟第一我的水平也不怎么样嘛, 第二正则表达式和人工+智能的方式的确临时解决了部分问题.

但是人总是要有追求的, 就像Eric说的, 就算做咸鱼都要做一条有理想的咸鱼, 而且从长远的角度来说还是要靠数学才能根本性的解决问题.

数学和AI一样五花八门种类繁杂, 同样是研究数学, 研究计算共形几何和研究范畴论的两个人是很难沟通的.

自然语言处理(NLP)对应的数学分支是概率论. 而概率论中又会用到微分和积分, 合称微积分.

然而概率论子分类也很多, 这里就简单列一下NLP所用到的概率论知识点吧:

  1. 概率(probability)
  2. 最大似然估计(maximum likelihood estimation)
  3. 条件概率(conditional probability)
  4. 全概率公式(full probability)
  5. 贝叶斯决策理论(Bayesian decision theory)
  6. 贝叶斯法则(Bayes‘ theorem)
  7. 二项式分布(binomial distribution)
  8. 期望(expectation)
  9. 方差(variance)

然而要弄懂上面9点, 还需要理解以下概念:

  1. 排列组合
  2. 频率与概率
  3. 古典概型与几何概型
  4. 条件概率
  5. 全概率公式
  6. 一维和二维离散型随机变量
  7. 一维和二维连续随机变量
  8. 协方差和相关系数
  9. 大数定律及中心极限定理
  10. 样本与抽样分布
  11. 点估计

后面我会对具体每个概念写心得.

原文地址:https://www.cnblogs.com/adalovelacer/p/NLP-Math-1-summary.html

时间: 2024-11-05 13:42:29

自然语言处理(NLP) - 数学基础(1) - 总述的相关文章

自然语言处理(NLP) - 数学基础(1) - 排列组合

正如我在<自然语言处理(NLP) - 数学基础(1) - 总述>一文中所提到的NLP所关联的概率论(Probability Theory)知识点是如此的多, 饭只能一口一口地吃了, 我们先开始最为大家熟知和最基础的知识点吧, 排列组合. 虽然排列组合这个知识点大家是相当地熟知, 也是相当地基础, 但是却是十分十分十分地重要. NLP届掌门人斯坦福大学的Daniel Jurafsky(D. 朱夫斯凯)和科罗拉多大学James H. Martin(J. H. 马丁)在其NLP巨作<自然语言处

Linux makefile教程之总述二[转]

Makefile 总述——————— 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或多的的目标文件.这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令. 2.隐晦规则.由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的. 3.变量的定义.在Makefile中我们要定义一系列的变量,变

设计模式之总述篇

以下是对<Head First 设计模式>中提到的OO原则和设计模式的总结. OO原则和设计模式的联系:模式可以让我们建造出具有良好OO设计质量的系统.模式被认为是历经验证的OO设计经验. OO设计原则: 1.封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起: 2.多用组合,少用继承:良好的OO设计必须具备可复用.可扩充.可维护三个特性. 3.针对接口编程,而不是针对实现编程:"针对接口编程"真正的意思是"针对超类型(sup

暴力枚举总述

暴力枚举总述 暴力枚举就是就是把所有可能的答案一一列举出来再加以判断.虽然方法有些笨,但问题规模不大或者没有好的解法时,这也是一个能用的方法. 问题一:输入1~9范围内的整数n,字典序输出1~n这n个数的全排列. 分析:每个数字都是n位数,可看做由前缀A和后缀B组成.初始时前缀A为空.函数伪代码见下: void f(A,B){ //要求的全排列为:已确定的字符串A加上B集合中数字的全排列 if(B为空)  {输出全排列,return;} for(i=1;i<=n;i++){ 若数字i在B中,f(

Solr4.8.0源码分析(5)之查询流程分析总述

Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilter的dofilter开始.dofilter包含了对http的各个请求的操作.Solr的查询方式有很多,比如q,fq等,本章只关注select和q.页面下发的查询请求如下:http://localhost:8080/solr/test/select?q=code%3A%E8%BE%BD*+AND+l

新浪微博SDK开发(1):总述

花了几天时间,消耗了九牛六虎之力,新浪微博大部分API已经封装,但有部分API实在太难封装. 说起这封装,我必须严重地.从人品和技术层面鄙视一下新浪的程序员,实在太菜了.估计菜鸟都被大企业吸收了,菜到连面向对象都不懂. 同样的内容,返回的JSON对象居然会出现不同结构,更可恶的,像公共API中获取城市列表,国家区域代码列表的返回结果,实在让人不得不发笑.那些JSON用JS读起来都困难,更何况要进行封装呢.根本没法封装,因此在论坛上抱怨的人不少,可是新浪官方呢,置之不管,就当没看见一样,看来,大企

关于大型网站技术演进的思考(九)--网站静态化处理--总述(1)

在存储瓶颈的开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大规模的并发访问量,如果是一个动态的网站,特别是使用到了数据库的网站是很难做到通过增加web服务器数量的方式来有效的增加网站并发访问能力的.但是现实情况是像淘宝.京东这样的大型动态网站在承担高并发的情况下任然能保证快速的响应,这其中有什么样的技术手段可以达到动态网站支撑高并发的场景了,这也许是每个做web开发的朋友都很感兴趣的问题,今天我将写一个新的系列来探讨下这个问题,希望我的经验和研究能给大多数人

多进程编程总述

1.进程创建:fork函数族 fork()和vfork()函数的区别: (1) fork ( ):子进程拷贝父进程的数据段,代码段 vfork( ):子进程与父进程共享数据段 (2) fork( )父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec或exit 之后父进程才可能被调度运行.也就是说父进程在子进程调用exec或exit函数族之前一直保持阻塞. (3) vfork( )保证子进程先运行,在它调用exec 或ex

自然语言理解——NLP中的形式语言自动机

1.形式语言:是用来精确地描述语言(包括人工语言和自然语言)及其结构的手段.形式语言学 也称代数语言学. 2.自动机:识别器是有穷地表示无穷语言的另一种方法.每一个语言的句子都能被一定的识别器所接受. *有限状态转换机(FST) 除了前面提到的单词拼写检查.词法分析.词性标注等工作以外,有限状态自动机还广泛地应用于句法分析.短语识别.机器翻译和语音识别等很多方面. 自然语言理解--NLP中的形式语言自动机,布布扣,bubuko.com