导航:首页 > 源码编译 > nlp算法面试

nlp算法面试

发布时间:2023-03-26 12:19:39

A. NLP算法工程师面试笔记

batchsize

learning rate

k-means 中消森的k

隐层单元数

dropout值

编码器和解拿握亩码器各6层

15%的进行【mask】处理,其中有三种处理方式:

1)其中80%替换为【mask】

2)10%随机替换

3)10%保持不变

根据词共出现来计算

遗忘门

输入门

输出门

门控机制是非0即1的,当门为1时, 梯度能够很好的在LSTM中传递,很大程度上减轻了梯度消失发生的概率, 当门为0时,说明上一时刻的信息对当前时刻没有影响, 我们也就没有必要传递梯度回去来更新参数了。所以, 这就是为什么通过门机制就能够解决梯度的原因。

编辑距离(出门问问)

火锅问题(华为)

gdbc

常见排序算法的时间复杂度和空间复杂度

快排

"""
def quick_sort(data):

    """quick_sort"""

    if len(data) >= 2:

        mid = data[len(data)//2]

        left,right = [], []

        data.remove(mid)

       皮猛 for num in data:

            if num >= mid:

                right.append(num)

            else:

                left.append(num)

        return quick_sort(left) + [mid] + quick_sort(right)

    else:

        return data

B. AI面试现在很火吗用这个做面试招聘真的靠谱吗

根据以往求职者在桂聘网分享的求职经历看,

从去年开始,许多校招季的金字招牌也都纷纷在面试环节中增加了AI面试/Digital Interview。不少招聘平台更是以智能面试系统为业务增长点,扮演起了技术传火者的角色。

目前看来,让AI分析招聘面试过程中的复杂要素,还是一个争议中前行的未来。

不过,技术的车轮正在加速。IBM就宣布要使用Watson(沃森)主动搜索内部培训系统的数据,了解员工培训以及学习情况,判断他们是否具备升职潜力,以此进行内部考核。而从这样相对结构化的数据中推倒到面试招聘环节,或许也在向广大求职者们走来。

可以说,过去我们看到一些机械化程度高、数据结构化的领域,文书、翻译、识别等被AI取代。如今,面试这样充满交流的感性色彩的领域也未能幸免。所幸的是,技术的魔法正在褪去,手握知识之剑的人类,终将找到自己与AI“共事”的最佳方式。在一次次较量与交锋中去迭代和优化它,最终走出人机磨合的阵痛。

C. cv和nlp需求量

在说需求量大小之前我们先来理一理这三个方向之间的关系吧。
深度学习是指通过神经网络模型(Neural Network)来解决问题的一门技术手段,深度学习更像是解决问题的一种技术方法,而自然语言处理(以下简称NLP)和强化学习(RL)更像是一种具体的问题。打个比方吧,深度学习就像是大学里学到的高等数学(解决问题的基础知识),而RL和NLP像是大学里的金融投资专业和大学里的会计专业(两个待解决的不同实际问题)。解决投资问题和会计问题会用到很多种不同方法,而高等数学就是解决这些实际问题的方法之一。
现在我们已经理解了深度学习(DL)和自然语言处理(NLP)和强化学习(RL)之间的关系,即DL是解决NLP和RL问题的一种技术手段,不论你未来选择研究NLP还是DRL都需要学习DL的相关知识。
那么现在剩下的就是NLP和DRL之间的对比了,先说结论吧,个人认为NLP的需求量比RL大不少(至少今年是这样)。我研究的就是RL方向,今年秋招的时候看了不少招聘,总的来讲需求量就是:CV > NLP > RL。计算机视觉无疑是所有Deep Learning下需求量最大的一个分支了,很多公司都会贴出一个专门职位叫“计算机视觉工程师”,视觉应用是最为广泛的(比如大疆、字节、快手、BAT等等大厂)都会有相关的视觉岗,视觉可以用来解决各种各样的问题,从人脸识别到特效算法等等,毕竟cv是所有深度学习技术中目前发展最为成熟的方向之一了。NLP的需求量要稍微小一点,但也有不少公司开设了专门的自然语言处理岗,例如网络,我记得之前面试过网络的一个部门,好像是做翻译的,面试官问到有没有接触过NLP相关的领域,所以NLP大多会被用于翻译、文本分析等等方向吧(具体细节我也不是很清楚这里就不误导楼主了,但可以保证的是很多公司招聘信息上都会有NLP岗位)。
最后就是DRL方向了,这个深坑,我来总结一下吧,DRL目前的应用方向有两个:
1. 推荐算法。
2. Game AI。
将RL应用到推荐上的厂少之又少,因为强化学习做推荐现在还并不成熟,只有一些大厂才养得起这些研究部门,我所知道这么做的厂有快手、阿里、美团。第二个方向就是Game AI,这个方向做的比推荐稍微多一些,毕竟Alpha Go开了一个很好的头、随即腾讯、网易也陆陆续续有了一些自己的成果。看出来了吗?研究RL的厂大多都是游戏厂,没错,RL目前的发展方向就是做游戏,因此如果你选择研究DRL那么将来你有很大概率加入一个游戏厂——但,不是每个游戏厂都养得起RL工程师,能愿意花钱养RL的团队资金都相当雄厚,例如腾讯、例如网易。这些大厂愿意花钱招RL工程师不等于能够温暖所有研究RL的学子们,讲个鬼故事给你听:网易今年招游戏研发工程师700人,强化学习工程师15人。这意味着什么呢,你要在好几百人中脱颖而出,冲到前15名才能被录取。可怕吧?这个差距就大nm的离谱,我之前写过一个回答,总结过为什么RL在市面上的需求量少的可怜,有兴趣的话可以瞄一眼:

为什么说强化学习在近年不会被广泛应用?
所以,强化学习在工程界内应该是最难找工作的一个方向了吧(毕竟需求量还是太少),但如果想在学术界内混一混的话,RL还是可以强推一波的,感觉强化学习现在还在发展和进化的过程当中的。

D. 自然语言处理方向研究生好找工作吗

现在国内IT互联网公司大部分NLP和IR人才被BAT公司垄断,导致市面上的优秀NLP人才极少,因此很多创业公司紧缺这方面的人才。从人工智能发展的趋势来看,我认为这是一个不错的领域,可以为之奋斗一生。NLP几乎是互联网机器学习业务的必备技能。因为互联网内容最大比例的是文本。NLP挺好找工作的,但是最好机器学习的内容学全一点,毕竟实际工作内容是很多类型的,所以NLP是比较必要但不充分。我读研时好多年前就觉得自然语言是个很有前途的方向。所以想如果我读博就念这个方向。结果我找来书看过后。深深觉得自己不行。因为我念的是纯文科的语言学。

E. nlp算法是什么呢

1、nlp算法是自然语言处理算法。自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。

2、自然语言处理(nlp)是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。

3、自然语言处理(nlp)并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。

4、自然语言处理(nlp)主要应用于机器翻译、舆情监测、自动摘要、观点提取、文本分类、问题回答、文本语义对比、语音识别、中文OCR等方面。

5、自然语言(nlp)的形式(字符串)与其意义之间是一种多对多的关系。其实这也正是自然语言的魅力所在。但从计算机处理的角度看,我们必须消除歧义,而且有人认为它正是自然语言理解中的中心问题,即要把带有潜在歧义的自然语言输入转换成某种无歧义的计算机内部表示。

F. nlp实习面试算法题不会能过嘛

不能过
nlp算法
人工智能算法大体上来说可以分类两类:基于统计的机器学习算法(MachineLearning)和深度学习算法(DeepLearning)
总的来说,在sklearn中机器学习
算法大概的分类如下:
1.纯算法类
(1).回归算法
(2).分类算法
(3).聚类算法
(4)降维算法
(5)概率图模型算法
(6)文本挖掘算法
(7)优化算法
(8)深度学习算法
2.建模方面
(1).模型优化
(2).数据预处理觉得有用点个赞吧

G. 算法岗面试都会考代码吗

会。
算法岗面试的第一关,手撕代码环节,主要考察你对数据结构和一般算法的掌握,以及作为码农最基本的编程能力。二至三道编程题写完之后,就进入到了面试的第二关,算法基础知识考察环节,这里的算法指的是机器学习、深度学习以及细分方向上,比如CV、NLP相关的算法知识。

H. AI常见面试35题

交叉熵做损失函数,训练时传播的梯度和训练误差是成正比的(单调),而当采用均方误差做损失函数时,训练时传播的梯度和训练误差不是成正比的(非单调),具体表现是,训练误差从0开始增大,梯度增大(这游码点与我们预期相符),但训练误差继续增大,梯度开始下降(这点就与我们的预期不符了),这样就显得,模型在训练误差大的时候,根本不愿意继续学习,模型显得“自暴自弃”不肯学习。

决在低维空间 线性 不可分的问题,通过核函数把低维映射到高维,实现线性可分。

常见 核函数 有线性核函数,多项式核函数,高斯核函数,sigmoid 核函数

Adaboost用错分数据点来识别问题,通过调整错分数据点的权重来改进模型。GBDT通过负梯度来识别问题,通过计算负梯度来改进模型。

1.样本选择:bagging训练集是在原始集有放回的选取,每次选取训练集都是独立的.boosting:每一轮的训练集的数量不变,但是训练集里的样例比重根据上一轮的分类结果进行调整
2.样本权重:bagging:均匀取样,每个样例的权重都相等。boosting:根据您错误率不断调整样例的权值,错误率越大的则权重越大
3.预测函数:bagging每个基分类器投票,权重比例都是一样的,boosting每个分类器的权重是不一样的
4.运行规律:bagging:各个预测函数可以并行生成 boosting:每个基分类器都都是根据前一个分类器的结果调整过来的

之所以被称为“朴素”, 是因为它假定所有的特征在数据集中的作用是同样重要和独立的,正如我们所知,这个假设在现实世界中是很不真实的,因此,说是很“朴素的”。

1.线性回归
2.逻辑回归
3.岭回归
4.多项式回归

顺序关系,先求出特征值再来求SVD

PCA: 无监督学习,找到最优重构子空间,使主成分能刻画样本绝大部分的方差。
应用:数据降维、Eigenfaces、PCA-SIFT

CCA(Canonical Correlation Analysis): 无监督学习,对两组变量降维,找到一个最优相关子空间进行相关性分析。
应用:问卷调查中变量的相关性分析、跨模态轮御学习。

LDA: 有监督学习,学习一个可分性最好的投影方向。相当于是白化(whitening) + PCA,得到的是假设条件下的最优分类子空间(假设每个类都是单模态高斯分布、每个类协方差矩阵相同)。
应用:数据降维、模式分类

ICA: 无监督学习,各个分量之间相互独立,利用数据的高阶统计信息而不是二阶信息得到用于信号分离的独立子空间。
应用:语音信号分离

随机森林中树的选择是随机选择的,生成每棵树的样本也是随机采样有放回产生的

预训练初始化:一般是在大规模数据上已经训练过的模型可以提供一个较好的参数初始值,并能提升模型的泛化能力(一种解释是预训练任务起到一定的正则化作用)。
随机初始化:如果全部初始化为0,在神经网络第一遍前向传播所有隐层神经网络激活值相同,反向传播权重更新也相同,导致隐层神经元没有区分性,称为“对称权重”现象。为打破这个平衡,比较好的方式是对每个参数进行随机初始化。
固定值初始化:比如对于偏置(bias)通常用0初始化,LSTM遗忘门偏置通常为1或2,使时序上的梯度变大,对于ReLU神经元,偏置设为0.01,使得训练初期更容易激活。

1.dropout
L2正则化方法就是通过使参数变小,进而使模型变得简单的方法。dropout方法原理类似,只不过它不是减少权值,而是随机的删除某些节点,使得模型的网络结构变得简单,起到正则化的效果。
直接限制模型参数的方法:

从数据集入手的方法:

集成化方法(通过训练多个不同的模型,并让所有模型一起表决测试集的输出):
baggingdropout
其他:
early stop交叉验证(bagging为又放回采样,而交叉验证可以理解为无放回模型平均)

self-attention:attention(q,t,v) = softmax(qk.T/根号DK)*v
多头的本质是多个独立的attention计算,作为一个集成的腊磨岩作用,不同的权重矩阵映射到不同的空间

RNN:输入与输出长度相等,很多时候机器翻译的输入跟输出是不等的
seq2seq:encoder+decoder 所有输入的信息都保存在隐藏层的最后一个印象里,作为解码器的初始隐向量,银项链称之为上下文向量,长度固定,当输入句子很长的时候,上下文向量会丢失相关信息,效果很差
seq2seq+attention:seq2seq忽略了输入跟输出之间的对应关系,利用attention来寻求输入跟输出之间的对应关系
tranfarmer:解决了翻译中网络训练时间过长,难以并行计算的问题,利用self-attention代替RNN实现并行计算,用postion embedding记录位置信息

类似cnn的多个卷积核,不同卷积核提取不同方面的特征,不同head关注不同的表示子控件,总和利用各方面的信息,获得更丰富的特征

由两个线性层组成,两个线性层直接具有relu激活函数

点乘注意力可以用高度优化的矩阵乘法来实现
速度更快,空间效率更高

概率密度函数:由已知计算未知
似然函数:对于不同的模型参数,出现已知的概率是多少

将各个特征分布调整到标准正态分布,若某些特征方差很大,会主导目标函数从而使得模型无法正确学习其他特征

将数据划分成K份,留作一份作为测试集,其他作为训练集
重复K次得到K个测试结果,取平均

进程是火车,线程是车厢

复杂的模型占用大量内存,且具有庞大的计算开销,导致模型难以被部署在手机等计算能力较差的设备上,抑或是时延要求较高的应用中。
模型压缩的主要方法可以分为:

1.系统级优化,包括单设备优化和多设备优化。比如ZeRO-Offload,就设计了精细的策略来安排CPU内存和GPU内存之间的交换,以便内存交换和设备计算能够尽可能多地重叠。
2.探索更高效的预训练方法和模型架构,以降低方案的成本。
3.模型压缩策略,包括参数共享、模型剪枝、知识蒸馏和模型量化。

深度学习时代,为了充分训练深层模型参数并防止过拟合,通常需要更多标注数据喂养。在NLP领域,标注数据更是一个昂贵资源。PTMs从大量无标注数据中进行预训练使许多NLP任务获得显着的性能提升。总的来看,预训练模型PTMs的优势包括:

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量,这也是分布式表示:向量的每一维度都没有实际意义,而整体代表一个具体概念。

分布式表示相较于传统的独热编码(one-hot)表示具备更强的表示能力,而独热编码存在维度灾难和语义鸿沟(不能进行相似度计算)等问题。传统的分布式表示方法,如矩阵分解(SVD/LSA)、LDA等均是根据全局语料进行训练,是机器学习时代的产物。

PTMs的发展经历从浅层的词嵌入到深层编码两个阶段,按照这两个主要的发展阶段,我们归纳出PTMs两大范式:“浅层词嵌入”和“预训练编码器”。
浅层词嵌入的主要缺陷为:

PTMs范式为预训练编码器,主要目的是通过一个预训练的编码器能够输出上下文相关的词向量,解决一词多义的问题。这一类预训练编码器输出的向量称之为“上下文相关的词嵌入”

随着网络层数的增加,从前面的层传递到后面的层的梯度会越来越小,进而就梯度消失了
梯度消失和梯度爆炸,简单来说,就是因为激活函数sigmoid导致的,输入值过大或过小导致sigmoid函数趋于0和1,对应的求导趋近于0,而且sigmoid的导数在(0,1/4)之间,这就导致如果初始化W为0-1之间的比较小的值,通过过多的层数之后,梯度下降的时候,慢慢就会出现梯度消失。如果W初始化为较大的值,通过多层之后,梯度下降会导致梯度越来越大,产生爆炸。

当w越大,其wx+b很可能变的很大,而根据上面 sigmoid 函数导数的图像可以看到,wx+b越大,导数的值也会变的很小。因此,若要出现梯度爆炸,其w既要大还要保证激活函数的导数不要太小。
下面说下解决办法:

在数学上是一个函数,,意思就从高纬抽象空间映射到低纬具象空间
抽象-具象
词-语义
为什么要做embedding?
1.抽象的事物都应该有一个低纬的表示
2.计算机善于处理低纬度信息
3.解决one-hot编码带来的纬度爆炸问题
嵌入的好处?
1.计算词向量的相似度,扩充标签
2.累加得到一个文本向量
3.用于聚类会比词聚类有更好的聚类效果

1.输入层:前者用N-GRAM模型,后者是CBOW
2.输入到投影层的操作:前者是拼接,后者是累加求和
3.隐藏层:前者有,后者无
4.输出层:前者线性结构,后者是树形结构

1.导致全连接层爆炸
2.样本数量少于特征数会造成模型过拟合

饱和:sigmoid,tanh
缺点:出现梯度消失问题
非饱和:relu及其变体
优点:解决梯度消失问题
加快收敛速度
计算速度快

NLP网络第一层参数使用其他任务训练的word embedding ,高层参数仍然随机初始化
为什么可行?
因为网络底层提取出的特征是基础特征,跟具体任务相关性不大,具备任务的通用性,而网络高层提取出的特征跟具体任务密切相关

设有一个多层感知机模型,假设输出层只保留一个输出单元 ,且隐藏层使用相同的激活函数。如果将每个隐藏单元的参数都初始化为相等的值,那么在正向传播时每个隐藏单元将根据相同的输入计算出相同的值,并传递至输出层。
在反向传播中,每个隐藏单元的参数梯度值相等。因此,这些参数在使用基于梯度的优化算法迭代后值依然相等。之后的迭代也是如此。在这种情况下,无论隐藏单元有多少,隐藏层本质上只有一个隐藏单元在发挥作用。
因此,通常对神经网络的模型参数,特别是权重参数进行随机初始化。随机初始化模型参数的方法有很多,可以使用正态分布的随机初始化方式。

1.赛题理解

2.数据探索跟预处理

3.特征工程

4.算法尝试

5 算法选择

1.随机欠采样:
优点:平衡数据的同事减小了数据量
缺点:数据减少会影响模型的特征学习能力跟泛化能力
2.随机过采样:
优点:没有导致数据信息的丢失
缺点:增加了过拟合的可能性

类别特征常用的处理方法:
1.序号编码:成绩的高中低,转成3,2,1
2.独热编码:比如血性中的a=[1,0,0,0],b = [0,1,0,0]
3.二进制编码:跟独热类似

把一阶离散特征两两组合,就构成高阶组合特征
中文 - 电影 = 中文电影,中文电视剧
英文-电视剧 = 英文电影,英文电视剧,
一般当引入id类型的特征,通常需要降维
组合特征
利用决策树方法来组合特征

朴素贝叶斯,逻辑回归,sVM,感知机,最大熵模型,em算法,决策树,主成分分析
感知机:是二类分类的线性分类模型,输入为实例的特征向量,输出是正负1
K近邻算法:是一种基本分类跟回归算法,算法步骤是,计算当前数据跟其他数据距离最近的K个数据点,然后查看他们的类,类最多的就是数据的分类类别
朴素贝叶斯:是一种基于贝叶斯定力跟条件独立假设的分类算法
决策树:是一种基本的分类跟回归方法,呈现树形结构,基于树的特征依次对实例进行分类
逻辑回归:对数线性模型分类回归方法

主要是为了加速,因为反向传播求导一次就可以求出所有的偏导数,反之前向传播因为数据的输入入口会变慢很多倍

pytorch是一个动态的框架,而TensorFlow是一个静态的框架。何为静态的框架呢?我们知道,TensorFlow的尿性是,我们需要先构建一个TensorFlow的计算图,构建好了之后,这样一个计算图是不能够变的了,然后我们再传入不同的数据进去,进行计算。这就带来一个问题,就是固定了计算的流程,势必带来了不灵活性,如果我们要改变计算的逻辑,或者随着时间变化的计算逻辑,这样的动态计算TensorFlow是实现不了的,或者是很麻烦

K折交叉法,留一法,留P法

网格搜索,也就是一种穷举的方法,划定一个范围,不断的尝试,所有的可能性,选出表现最好的参数

1.直接删除2.平均值填充,中值填充,众数填充3.预测模型填充

isnull:返回是否空值
notnull:isnull的否定
统计量填充:连续值
特殊值填充:比如0
不处理:xgb跟LGB会自动处理

主要是特征降维
1.过滤法:按照发散性跟相关性对各个特征进行评分,通过设定阈值或者带选择阈值的个数来选择特征
(代表:相关系数,互信息,卡方检验,信息增益)
2.包装法:根据预测效果得分,每次选择若干特征,或者排除若干特征
(代表:遗传算法,模拟退火算法)
3.嵌入发:使用机器学习算法进行训练,得到每个特征的权值系数,并根据系数从大到小选择特征
(代表:决策树-熵,信息增益,正则化)

1.第一,根据电化学模型进行温度修正,兼顾不同场景
2.电化学模型的RUL结果会作为LSTM的一个新特征输入

1.bagging,boosting
2.投票法,平均法,权重法,

1.网格搜索
2.随机森林

1.查看训练集特征变量信息
2.查看数据统计信息
3.查看数据字段信息
4.画箱线图探索数据
5.查看数据分布图
6.可视化线性回归关系
7.查看特征变量的相关性(画出相关性热力图,找出特征变量和target变量相关系数大于0.5的特征变量)
8.查看特征变量跟target变量的

1.删除异常值
2.最大最小值归一化
3.查看训练集数据和测试集数据分布情况
4.特征降维
5相关性初筛
6.多重共线性筛选降维
7.pca主成分降维
8.决策树构建新特征

1.平均绝对值误差:MAE是预测值跟真实值的绝对值
2.均方误差:mse指参数估计值跟参数真实值之差的平方
3.均方根误差:均方误差的平方根
4.R2:反映了回归模型在多大程度上解释了因变量的变化,换句话就是模型对观测值的拟合程度如何

个体学习模型的准确性越高,多样性越大,模型融合的提升效果越好

如果需要稀疏性就⽤l1,因为l1的梯度是1或-1,所以每次更新都稳步向0趋近。
⼀般多⽤l2因为计算⽅便“求导置零解⽅程”,l2只有最好的⼀条预测线⽽l1可能有多个最优解。
l1鲁棒性更强对异常值不敏感

归⼀化:对不同特征维度的伸缩变换的⽬的是使各个特征维度对⽬标函数的影响权᯿是⼀致的,即使得那些扁平分
布的数据伸缩变换成类圆形。这也就改变了原始数据的⼀个分布。
好处:
1 提⾼迭代求解的收敛速度,不归⼀化梯度可能会震荡
2 提⾼迭代求解的精度

标准化:对不同特征维度的伸缩变换的⽬的是使得不同度ᰁ之间的特征具有可⽐性。同时不改变原始数据的分布。
好处
1 使得不同度ᰁ之间的特征具有可⽐性,对⽬标函数的影响体现在⼏何分布上,⽽不是数值上
2 不改变原始数据的分布

I. NLP方向,收到一家叫暗物智能的公司的面试邀请,在考虑要不要去。有人了解这家公司吗

听说过这家公司,创始人据说是睁如业界大牛。最近有看到完悉镇启成A轮融资的消息,说不定现在进去还能拿到期权,不过旅山创业公司都有风险,楼主可以衡量下。

J. 产品经理如何入门自然语言处理(NLP)

自然语言处理,顾名思义即自然语言处理的技术,通常用缩写NLP指代。各类产品经理日常的工作中,会遇到大量自然语言处理的应用场景。以智能推荐为例,在待推荐物文本分类、主题分类等场景中都会用到。本篇以产品经理的视角,谈谈如何入门自然语言处理。

统计模型

很多大牛对人工智能的抨击在于,认为人工智能只是统计学,并不是真正的具有“智能”。在当前“弱人工智能”的时代背景下,学习统计模型仍然有非常重要的价值。

拿经常用于分类场景的贝叶斯模型为例,在已经拿到用于训练集的语料中,可以通过统计得出A出现的概率、B出现的概率、在A出现的前提下B出现的概率,计算如果B出现同时A出现的概率(即给定B样本计算出现A的概率),就可以直接从前面三个统计概率计算得出。

当然以上贝叶斯模型成立并且表现良好的前提是 数据量足够大,满足大数定律 。不难发现统计模型的精髓在于,假设数据量足够大后,可以用已有样本的统计情况,来做判别或预测。

闭环流程

NLP技术应用场景广泛且松散,且在很多情况下,作为中间处理技术流程,不被最终用户所感知。再加上近些年新的自然语言处理技术不断出现,给想入门自然语言处理的产品经理眼花缭乱,不知如何入手的困惑。

入门自然语言处理也需要讲究MVP,以最小可行性的闭环,建立起初步认知,再不断扩展和丰富NLP的知识体系,逐步建立大的框架和认知。

通常的自然语言处理任务可从“分词”—>“构建特征”—>“训练模型”—>“分类或预测应用”。

以上流程中,除了分词外,与机器学习通常流程一样。英文一个个单词本身就是分开的,是不需要分词的。但对于中文来讲,词与词之间是连接在一起的,需要将文本内容,切分成一个个词再处理。

完成分词后,计算机无法直接理解汉字,需要通过将一个个词,编码成计算机可以理解的数字再做处理,这个阶段即构建特征阶段。

特征完成后,再根据自然语言处理任务类型,决定采用哪种算法训练模型,最后将训练好的模型应用于特定的分类或预测任务上。一个自然语言处理任务就完成了。

标注与预处理

前几年从事的智能推荐产品中,推荐系统本身以CTR作为优化目标,实际是将点击与否作为label,相当于用户帮着做了分布式的标注工作。

传统基于统计的自然语言处理任务中,大部分任务类型是有监督学习,需要人在已有语料上做大量的标注工作,才能保证任务的正常进行。

例如情感识别是否为正向情感,就需要人在语料上,将一条条信息标出是否为正向情感。再将此语料作为训练集训练模型,生成情感识别的分类模型用于情感识别。

文档的预处理通常是将拿到的语料做去除标点符号、停用词、数字等处理,去除自然语言无关内容,加快计算机计算和模型生成速度。

在完成以上处理后,可将文档做分词处理,再将词作编码处理即可。

常见任务及算法原理

自然语言处理通常有以下应用场景:分词、词性标注、主题识别、情感识别、文本分类、机器翻译等。下面将主要应用及背后算法原理作简要介绍。

有监督的分类问题。 无论情感识别还是垃圾邮件分类,本质上都可以转化为几个目标类型的分类问题。按照贝叶斯公式的逻辑,将已有语料数据进行类型标注,基于统计模型的逻辑,训练得到分类模型,将待识别内容通过模型计算打分,根据阈值即可完成识别。例如二分类的情感识别,可以将0-0.5区间归为消极情感,0.5-1区间归为积极情感。多分类则是计算待分类样本离哪个区间更近,即识别为哪种类型。

无监督的分类问题 。自然语言处理中,经常会有主题识别任务,这类任务通常是采用LDA主题模型,核心逻辑是将文章划分为“文档”—“主题”—“词”的三层逻辑,以无监督学习自动完成按照主题的词聚类。由于是无监督学习,需要根据实际情况指定学习出的主题个数,最终选择主题个数最合理的结果。依赖人的主观判断和理解一系列词背后组成的主题。

生成问题 。生成问题常见的有文本纠错、词生成、句子生成、机器翻译等。生成问题从统计学逻辑上讲,是基于已有语料的统计,计算出接下来要生成内容的概率。拿机器翻译举例,需要事先准备好中英文对照的大量语料,基于语料,机器学习到中英文词对照、短语对照的知识,最终在翻译场景下,输出中文或英文相应的翻译内容。

再拿隐马尔可夫模型做词性标注举例,基于已经标注的语料,隐马尔可夫模型可以学习到词与词之间词性的状态转移概率,基于这个概率可以计算出一个词属于哪种词性。

深度学习的应用。 CNN构建的神经网络,比较适合解决NLP分类问题,但由于没有记忆,无法解决生成问题。RNN相较于CNN可以解决一定长度记忆问题,适合解决NLP领域一定长度的生成问题,例如词生成,但无法保留长期记忆。LSTM具有长期记忆的手段,可以做生成句子的任务。

NLP 应用价值

文本是最常见的生产资料,产品经理学习NLP的原理及应用,可以开阔解决问题的视野。

拿在线教育行业举例,利用自然语言处理能力,可以自动识别出学生评论的情感倾向,可以辅助老师进行作文批改、自动出题、自动解题。

不难看出,自然语言处理的应用场景,并非人做不了,而是可以替代人类的手工劳动,大大提升任务的效率,将人解放出来,做更有价值的工作。

小乐帝,一线AI产品经理、科技优秀作者、产品经理读书会创始人。

“产品经理读书会”

专注于爱读书爱思考的产品人提供读书推荐、产品思考、以书会友的环境

阅读全文

与nlp算法面试相关的资料

热点内容
多店铺阿里云服务器教程 浏览:378
单片机求初值 浏览:420
安卓机如何在电脑备份图片 浏览:925
ca证书加密机价格 浏览:798
天干地支年份算法 浏览:796
程序员打造的视频 浏览:7
java和php通信 浏览:680
为什么黑程序员 浏览:163
程序员男生 浏览:456
戴尔文件夹内文件怎么置顶 浏览:582
云服务器6m网速 浏览:722
vivo手机中国联通服务器地址 浏览:862
工程总控编译失败 浏览:707
燕赵红枫app如何下载 浏览:867
php查杀软件 浏览:878
教育管理学pdf 浏览:547
服务器均衡怎么使用 浏览:626
linux中jps 浏览:954
单片机实验感想 浏览:561
程序员级别数学算法逻辑 浏览:900