题库NLP工程师面试题库,NLP精华面试专题介绍及解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NLP 主要研究方向有哪些?
1.信息抽取:从给定文本中抽取重要的信息,比如时间、地点、人
物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。
2.文本生成:机器像人一样使用自然语言进行表达和写作。依据输入
的不同,文本生成技术主要包括数据到文本生成和文本到文本生
成。数据到文本生成是指将包含键值对的数据转化为自然语言文
本;文本到文本生成对输入文本进行转化和处理从而产生新的文
本。
3.问答系统:对一个自然语言表达的问题,由问答系统给出一个精准
的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。
4.对话系统:系统通过一系列的对话,跟用户进行聊天、回答、完成
某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能
力。
5.文本挖掘:包括文本聚类、分类、情感分析以及对挖掘的信息和知
识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。
6.语音识别和生成:语音识别是将输入计算机的语音符号识别转换成
书面语表示。语音生成又称文语转换、语音合成,它是指将书面文本自动转换成对应的语音表征。
7.信息过滤:通过计算机系统自动识别和过滤符合特定条件的文档信
息。通常指网络有害信息的自动识别和过滤,主要用于信息安全和防护,网络内容管理等。
8.舆情分析:是指收集和处理海量信息,自动化地对网络舆情进行分
析,以实现及时应对网络舆情的目的。
9.信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋
之以不同的权重来建立索引,也可建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分
析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。
10.机器翻译:把输入的源语言文本通过自动翻译获得另外一种语言的
文本。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码- 解码)的方法,逐渐形成了一套比较严谨的方法体系。
N LP 四大任务
1.序列标注:分词,词性标注,命名实体识别,语义角色标注。
特点是句子中每个单词要求模型根据上下文都要给出一个分类类别2.分类任务:文本分类,情感分析。特点是不管文章有多长,总体
给出一个分类类别即可。
3.句子关系推断:Entailment,QA,自然语言推理。特点是给定
两个句子,模型判断出两个句子是否具备某种语义关系。
4.生成式任务:机器翻译,文本摘要。特点是输入文本内容后,需
要自主生成另外一段文字。
文本特点
1.输入是一个一维线性序列
2.输入是不定长的,这点对于模型处理起来会比较麻烦
3.单词位置与句子位置的相对位置很重要,互换可能导致完全不同的
意思。
4.句子中的长距离特征对于理解语义也非常关键,特征抽取器能否具
备长距离特征捕获能力这一点对于解决NLP任务来说也是很关键的。
有哪些文本表示模型,它们各有什么优缺点?
(1) 词袋模型
最基本的文本表示模型。将每篇文章看成一袋子词,并忽略每个词出现的顺序。每篇文章对应表示成一个长向量,向量中每一维代表一个单词。权值常用TF-IDF 计算
(2)N-Grams
将连续的N 个词组成的词组,作为一个单独的特征放到向量表示中去。
(3) 主题模型
用于从文本库中发现有代表性的主题(得到每个主题上的词的分布特性), 并且能够计算出每篇文章的主题分布。
(4) 词嵌入与深度学习模型
词嵌入是一类将词向量化的模型的统称,核心思想是将每个单词都映射成地位空间上的一个稠密向量。低维空间上的每一个单词也可以看做是一个隐含的主题,只不过不像主题模型中那么明显。
对有N 个单词的文档,词嵌入用K 维向量映射单词,可以得到一个N*K 的矩阵来表示这篇文档。但是还需要抽象出更高层的特征,通常使用深度学习来得到更高维的特征。
离散表示存在的问题?
对于一般的NLP 问题,是可以使用离散表示文本信息来解决问题的,但对于要求精度较高的场景就不适合了。
•无法衡量词向量之间的关系。
•词表的维度随着语料库的增长而膨胀。
•n-gram 词序列随语料库增长呈指数型膨胀,更加快。
•离散数据来表示文本会带来数据稀疏问题,导致丢失了信息,与我们生活中理解的信息是不一样的。
Word2vec 与LDA 有什么区别和联系?
首先,LDA 是按照文档中单词的共现关系来对单词按照主题聚
类,也可以理解为对“文档- 单词” 矩阵进行分解,得到“文档- 主题” 和“主题- 单词” 两个概率分布。而word2vec 实际上是对“上下文- 单词” 矩阵进行学习,其中上下文由周围几个单词组成,由此学到的词向量更多融入了上下文特征。
主题模型和词嵌入两类方法最大的不同在于模型本身。
主题模型是一种基于概率图模型的生成式模型。其似然函数可以写为若干条件概率连乘的形式,其中包含需要推测的隐含变量(即主题)
词嵌入模型一般表示为神经网络的形式,似然函数定义在网络的输出之上。需要学习网络的权重来得到单词的稠密向量表示。
什么是Word2Vec?
Word2Vec是Google发布的一个工具,用于训练词向量,其提供了两种语言模型来供选择,且Google 基于大规模语料集上训练出了预训练词向量来供开发者或研究者使用。一般情况下,我们是没有必要自己去训练词向量的,但如果要求特殊,且语料集庞大,自己训练也是可以的。
在Word2Vec中,实现了两个模型:CBOW 与Skip-Gram。CBOW的前向传播过程?
输入层: 输入C个单词:$x_{1k}, \cdots, x_{Ck} $,并且每个
$x$ 都是用One-hot 编码表示,每一个$x$ 的维度为V(词表长度)。
输入层到隐层: 共享矩阵为$W_{V \times N}$ ,V表示词表长度,W的每一行表示的就是一个N维的向量(训练结束后,W的每一行就表示一个词的词向量)。在隐藏层中,我们的所有输入的词转化为对应词向量,然后取平均值,这样我们就得到了隐层输出值( 注意,隐层中无激活函数,也就是说这里是线性组合)。其中,隐层输出$h$ 是一个N维的向量。$$ h = \frac{1}{C}
W^T(x_1 + x_2 + \cdots + x_c) $$