NLP(Nature Language Processing)是人工智能的一个子分支,用于理解人类语言和进行处理。它可以由两个分支构成NLU(Nature Language Understanding) + NLG(Nature Language Generation)。
- NLP:自然语言处理
- NLU:自然语言理解
- NLG:自然语言生成
一:为什么要学习NLP
不知道你是否受到如下问题的困扰:
- 工作或者生活中需要对大量的文本数据进行处理;
- 需要将文本数据进行归纳总结;
- 提炼概要;
- 根据文本数据建模,找关系;
- 等等等
如果我们要使用人工来完成上诉的任务的话,可能的情况就是数据量越大,工作量越大,且效率越低。因为,我们很难直接从成千上万的文字中挖掘出我们想要的信息,毕竟,人脑对该类问题的处理速度并不算快。因此,我们能否将这些现实生活中的问题转化为数学问题呢?再利用数学问题进行建模和寻找关系。
二:如何找数学关系
在寻找文本的数学关系之前,让我们先思考一下我们会遇到哪些困难:
- 一词多义,是苍蝇的bug还是有问题的bug?
- 语义的理解,一个单词一个单词的理解固然可以,可是如何连贯清晰的理解句子的意思呢?
- 同一个意思的多种表达方式该怎么办?我喜欢吃葡萄,葡萄是我喜欢吃的水果表达着大致相同的意思,咋区分?
现在我们有了上诉的问题,我们如何解决这些问题呢?
答案就是概率!既然我要寻找数学关系,那当我使用数字特征对该类数据进行表征的时候,自然的能够找到各自含义的概率的大小,哪个概率大就认为代表哪个意思。
从概率寻找看起来是一个解决办法,新的问题出现了:我咋知道你的概率从哪来呢?
为了解决这个概率的来源问题,我们需要一个先验知识库,使用该先验知识库获得各个语句的概率的大小。因此,一个NLP模型的好坏和你使用的先验知识库也有极大关系,万幸的是,NLP领域有许多开源的先验知识库,因此我们不用再去辛辛苦苦跑好多天的先验知识库。
三:那我咋表示数学关系呢
当我们能使用及其可以理解的方式对文本进行表示(借助先验知识库),这时候就需要我们使用算法来进行建模和验证了,咋弄呢?
好问题,看下一篇吧。这里就是说NLP是干嘛的,其余的就等下一篇再说了。
网友评论