深度学习算法在自然语言处理领域的应用一直备受关注,随着技术的不断进步和发展,相关研究也日新月异。本文将深入探讨深度学习算法在自然语言处理领域的最新进展,从各个方面进行详细分析。
深度学习算法在自然语言处理领域取得的进展主要体现在文本分类、情感分析、机器翻译、问答系统等方面。在文本分类领域,深度学习算法能够通过学习大量文本数据,实现对文本内容的准确分类,提高了分类的准确性和效率。在情感分析方面,深度学习算法可以更好地识别文本中的情感色彩,帮助人们更好地理解和分析信息。在机器翻译领域,深度学习算法能够实现更准确、流畅的翻译结果,大大提高了翻译的质量。在问答系统方面,深度学习算法可以更好地理解问题并给出准确的答案,使得问答系统的智能度得到提升。
深度学习算法在自然语言处理领域的最新进展还体现在模型的不断优化和创新上。近年来,研究者们提出了各种各样的深度学习模型,如BERT、GPT等,这些模型在处理自然语言任务时具有更好的效果和性能。其中,BERT模型通过预训练和微调的方式,在多项自然语言处理任务上都取得了令人瞩目的成绩,成为当前自然语言处理领域的研究热点。GPT模型则在生成式任务上表现出色,能够生成更加流畅和连贯的文本内容。这些新型模型的出现,极大地推动了自然语言处理领域的发展。
深度学习算法在自然语言处理领域的最新进展还涉及到跨语言处理、多模态处理等领域。随着全球化进程的加速,跨语言处理成为一个重要的研究方向,通过深度学习算法,可以更好地实现不同语言之间的信息传递和交流。同时,多模态处理也备受关注,深度学习算法可以结合文本、图像、语音等多种信息源,实现更加丰富、全面的信息处理,拓展了自然语言处理的研究范畴。
深度学习算法在自然语言处理领域的最新进展展现了巨大的潜力和活力,不断推动着该领域的发展。随着技术的不断进步,我们可以期待深度学习算法在自然语言处理领域取得更加突出的成就,为人类社会带来更多的便利和创新。
自然语言处理(NLP)在未来发展的趋势是什么?
自然语言处理(NLP)作为人工智能领域的重要分支,正经历着快速发展和不断演进。以下是未来发展中可能出现的趋势:
深度学习在自然语言处理方面的运用有哪些?
深度学习在自然语言处理中的应用已经非常广泛,可以说横扫自然语言处理的各个应用,从底层的分词、语言模型、句法分析等到高层的语义理解、对话管理、知识问答、聊天、机器翻译等方面都几乎全部都有深度学习的模型,并且取得了不错的效果。
可以参看ACL2017年的accepted papers list。
Accepted Papers, Demonstrations and TACL Articles for ACL 2017。
从这里可以看到大部分论文都使用了深度学习的模型。
那为什么深度学习在自然语言中取得这么大的进步呢。
一、从数据上看,经过前些年互联网的发展,很多应用都积累到了足够量的数据。
当数据量增大,以SVM、CRF等为代表的浅层模型,因为模型较浅,无法对海量数据中的非线性关系进行建模,所以不能带来性能的提升。
相反,以CNN、RNN为代表的深度模型,能够随着模型复杂性的增加,对数据进行更精准的建模,从而得到更好的效果。
二、从算法上看,深度学习也给自然语言处理的任务带来了很多好处。
首先,word2vec的出现,使得我们可以将word高效的表示为低维稠密的向量(distributed representation),相比于独热表示表示(one-hot-representation),这一方面一定程度上缓解了独热表示所带来的语义鸿沟的问题,另一方面降低了输入特征的维度,从而降低了输入层的复杂性。
其次,由于深度学习模型的灵活性,使得之前比较复杂的包含多流程的任务,可以使用end to end方法进行解决。
比如机器翻译任务,如果用传统的方法,需要分词模块、对齐模块、翻译模块、语言模型模块等多个模块相互配合,每个模块产生的误差都有可能对其他模块产生影响,这使得原来的传统方法的构建复杂度很大。
在机器翻译使用encoder-decoder架构后,我们可以将源语言直接映射到目标语言,从而可以从整体上优化,避免了误差传递的问题,而且极大的降低了系统的复杂性。
深度学习虽然是把利器,但是并不能完全解决自然语言中的所有问题,这主要是由于不同于语音和图像这种自然界的信号,自然语言是人类知识的抽象浓缩表示。
人在表达的过程中,由于背景知识的存在会省略很多的东西,使得自然语言的表达更加简洁,但这也给自然语言的处理带来很大的挑战。
比如短文本分类问题,由于文本比较简短,文本所携带的信息有限,因此比较困难。
像这样的问题,当样本量不够时,如何将深度学习方法和知识信息进行融合来提升系统的性能,将是未来一段时间内自然语言处理领域研究的主要问题。
深度学习被应用于自然语言处理任务的困难是什么
深度学习被应用于自然语言处理任务的困难是什么如下:
深度学习在自然语言处理任务中面临一些挑战和困难,包括以下几点:
数据稀疏性:自然语言处理任务需要大量的数据来训练模型,但往往只有少量的标注数据可用于训练,这导致了数据稀疏性问题。深度学习模型需要大量的数据来学习复杂的模式,而自然语言处理中的很多任务,如情感分析、语义理解等,标注数据集相对较少,这限制了深度学习模型的应用。
语义理解:自然语言处理的本质是理解语义,但语义理解是一个非常复杂的问题。同一个单词或短语在不同的上下文中可能有不同的含义,而不同的单词或短语可能在某些上下文中具有相似的含义。深度学习模型需要能够捕捉到这种语义上的差异,这需要大量的数据和计算资源。
上下文信息:自然语言处理任务通常需要考虑上下文信息。例如,在句子中,“John”是谁,需要依赖于前面的文本信息。深度学习模型需要能够捕捉到这种上下文信息,而这需要使用更复杂的网络结构和训练方法。
模型可解释性:深度学习模型是黑箱模型,模型做出的决策往往不透明,这使得人们难以理解和信任模型的决策。在自然语言处理任务中,这种问题更加突出,因为模型的决策往往涉及到人类的价值观和文化背景。
计算资源:深度学习模型需要大量的计算资源来训练和推断。对于大型的自然语言处理任务,需要使用高性能计算机和大量的存储设备,这使得深度学习模型的成本较高。
尽管存在这些困难,但深度学习在自然语言处理领域仍然取得了很大的进展。随着技术的不断发展,我们有理由相信这些问题会逐渐得到解决。
自然语言处理综述
title: 自然语言处理综述 date: 2021-11-18 11:03:11 自然语言是指人类日常使用的语言,比如:中文、英语、日语等。
自然语言灵活多变,是人类社会的重要组成部分,但它却不能被计算机很好地理解。
为了实现用自然语言在人与计算机之间进行沟通,自然语言处理诞生了。
自然语言处理(Natural Language Processing, NLP)是一个融合了语言学、计算机科学、数学等学科的领域,它不仅研究语言学,更研究如何让计算机处理这些语言。
它主要分为两大方向:自然语言理解(Natural language Understanding, NLU)和自然语言生成(Natural language Generation, NLG),前者是听读,后者是说写。
本文将从自然语言处理的历史与发展讲起,进而分析目前深度学习在自然语言处理领域的研究进展,最后讨论自然语言处理的未来发展方向。
1950年,计算机科学之父图灵提出了“图灵测试”,标志着人工智能领域的开端。
而此时,正值苏美冷战,美国政府为了更方便地破译苏联相关文件,大力投入机器翻译的研究,自然语言处理从此兴起。
从这之后的一段时期内,自然语言处理主要采用基于规则的方法,这种方法依赖于语言学,它通过分析词法、语法等信息,总结这些信息之间的规则,从而达到翻译的效果。
这种类似于专家系统的方法,泛化性差、不便于优化,最终进展缓慢,未能达到预期效果。
到了20世纪80、90年代,互联网飞速发展,计算机硬件也有了显著提升。
同时,自然语言处理引入了统计机器学习算法,基于规则的方法逐渐被基于统计的方法所取代。
在这一阶段,自然语言处理取得了实质性突破,并走向了实际应用。
而从2008年左右开始,随着深度学习神经网络在图像处理、语音识别等领域取得了显著的成果,它也开始被应用到自然语言处理领域。
从最开始的词嵌入、word2vec,到RNN、GRU、LSTM等神经网络模型,再到最近的注意力机制、预训练语言模型等等。
伴随着深度学习的加持,自然语言处理也迎来了突飞猛进。
接下来,我将介绍自然语言处理与深度学习结合后的相关进展。
在自然语言中,词是最基本的单元。
为了让计算机理解并处理自然语言,我们首先就要对词进行编码。
由于自然语言中词的数量是有限的,那就可以对每个词指定一个唯一序号,比如:英文单词word的序号可以是1156。
而为了方便计算,通常会将序号转换成统一的向量。
简单做法是对单词序号进行one-hot编码,每个单词都对应一个长度为N(单词总数)的向量(一维数组),向量中只有该单词序号对应位置的元素值为1,其它都为0。
虽然使用one-hot编码构造词向量十分容易,但并不是一个较好的方法。
主要原因是无法很好地表示词的语义,比如苹果和橘子是相似单词(都是水果),但one-hot向量就无法体现这种相似关系。
为了解决上述问题,Google的Mikolov等人于2013年发表了两篇与word2vec相关的原始论文[1][2]。
word2vec将词表示成一个定长的向量,并通过上下文学习词的语义信息,使得这些向量能表达词特征、词之间关系等语义信息。
word2vec包含两个模型:跳字模型(Skip-gram)[1] 和连续词袋模型(continuous bag of words,CBOW)[2],它们的作用分别是:通过某个中心词预测上下文、通过上下文预测某个中心词。
比如,有一句话I drink apple juice,Skip-gram模型是用apple预测其它词,CBOW模型则是用其它词预测出apple。
首先介绍CBOW模型,它是一个三层神经网络,通过上下文预测中心词。
以某个训练数据I drink apple juice为例,可以把apple作为标签值先剔除,将I drink juice作为输入,apple作为待预测的中心词。
Skip-gram模型与CBOW类似,也是一个三层神经网络模型。
不同在于,它是通过中心词预测上下文,即通过apple预测出I drink juice。
接下来简单介绍Skip-gram模型中各层: 两种模型训练结束后,会取作为词向量矩阵,第i行就代表词库中第i个词的词向量。
词向量可用来计算词之间的相似度(词向量点乘)。
比如,输入 I drink _ juice 上下文,预测出中心词为apple、orange的概率可能都很高,原因就是在中apple和orange对应的词向量十分相似,即相似度高。
词向量还可以用于机器翻译、命名实体识别、关系抽取等等。
其实这两种模型的原型在2003年就已出现[3],而Mikolov在13年的论文中主要是简化了模型,且提出了负采样与层序softmax方法,使得训练更加高效。
词向量提出的同时,深度学习RNN框架也被应用到NLP中,并结合词向量取得了巨大成效。
但是,RNN网络也存在一些问题,比如:难以并行化、难以建立长距离和层级化的依赖关系。
而这些问题都在2017年发表的论文《Attention Is All You Need》[4]中得到有效解决。
正是在这篇论文中,提出了Transformer模型。
Transformer中抛弃了传统的复杂的CNN和RNN,整个网络结构完全由注意力机制组成。
Transformer最核心的内容是自注意力机制(Self-Attention),它是注意力机制(Attention)的变体。
注意力的作用是从大量信息中筛选出少量重要信息,并聚焦在这些信息上,比如:人在看一幅图像时,会重点关注较为吸引的部分,而忽略其它信息,这就是注意力的体现。
但注意力机制会关注全局信息,即关注输入数据与输出数据以及中间产物的相关性。
而自注意力机制则减少了对外部其它数据的关注,只关注输入数据本身,更擅长捕捉数据内部的相关性。
自注意力机制的算法过程如下: 自注意力机制不仅建立了输入数据中词与词之间的关系,还能并行地高效地计算出每个词的输出。
Transformer的总体架构如下: 它分为两部分:编码器(Encoder)和解码器(Decoder)。
编码器的输入是词向量加上位置编码(表明这个词是在哪个位置),再通过多头自注意力操作(Multi-Head Attention)、全连接网络(Feed Forward)两部分得到输出。
其中,多头自注意力就是输入的每个词对应多组q、k、v,每组之间互不影响,最终每个词产生多个输出b值,组成一个向量。
编码器是transformer的核心,它通常会有多层,前一层的输出会作为下一层的输入,最后一层的输出会作为解码器的一部分输入。
解码器包含两个不同的多头自注意力操作(Masked Multi-Head Attention和Multi-Head Attention)、全连接网络(Feed Forward)三部分。
解码器会运行多次,每次只输出一个单词,直到输出完整的目标文本。
已输出的部分会组合起来,作为下一次解码器的输入。
其中,Masked Multi-Head Attention是将输入中未得到的部分遮掩起来,再进行多头自注意力操作。
比如原有5个输入,但某次只有2个输入,那么q1和q2只会与k1、k2相乘,。
如果深度学习的应用,让NLP有了第一次飞跃。
那预训练模型的出现,让NLP有了第二次的飞跃。
预训练通过自监督学习(不需要标注)从大规模语料数据中学习出一个强大的语言模型,再通过微调迁移到具体任务,最终达成显著效果。
预训练模型的优势如下: 预训练模型的关键技术有三个: 关于预训练模型的架构,以Bert为例:输入是词的one-hot编码向量,乘上词向量矩阵后,再经过多层transformer中的Encoder模块,最终得到输出。
本文介绍了NLP领域的流行研究进展,其中transformer和预训练模型的出现,具有划时代的意义。
但随着预训练模型越来越庞大,也将触及硬件瓶颈。
另外,NLP在一些阅读理解、文本推理等任务上的表示,也差强人意。
总而言之,NLP领域依旧存在着巨大的前景与挑战,仍然需要大家的长期努力。
[1]Mikolov, T., Sutskever, I., Chen, K., Corrado, G. S., & Dean, J. (2013). Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems (pp. 3111-3119). [2]Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781. [3]Yoshua Bengio, R´ejean Ducharme, Pascal Vincent, and Christian Janvin. A neural probabilistic language model. The Journal of Machine Learning Research, 3:1137–1155, 2003. [4]Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008. [5]Peters M E, Neumann M, Iyyer M, et al. Deep contextualized word representations[J]. arXiv preprint arXiv:1802., 2018. [6]Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pre-training[J]. 2018. [7]Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810., 2018. [8]Houlsby N, Giurgiu A, Jastrzebski S, et al. Parameter-efficient transfer learning for NLP[C]//International Conference on Machine Learning. PMLR, 2019: 2790-2799.
人工智能在近年来取得了哪些令人瞩目的成果?
人工智能近年来在科技领域取得了许多令人瞩目的成果。以下是其中一些值得关注的主要成就:
1. 深度学习:深度学习是人工智能中的一个重要领域,通过构建深层神经网络,我们能够利用大量数据进行模式识别和预测。深度学习技术的发展已经取得了巨大进展,广泛应用于图像识别、语音识别、自然语言处理等领域,如图像分类、人脸识别、语音助手等。
2. 自然语言处理(NLP):NLP是指使计算机能够理解和处理人类语言的技术。近年来,NLP在机器翻译、情感分析、智能问答和文本生成等任务上取得了显著突破。例如,谷歌的BERT模型推动了自然语言理解的发展,使得机器能够更好地理解和表达语言。
3. 强化学习:强化学习是指通过试错和奖励来训练智能系统做出决策。近年来,通过深度强化学习,人工智能在游戏领域取得了巨大突破。例如,DeepMind的AlphaGo战胜了世界围棋冠军,并在围棋、扑克和电子游戏等领域展现了出色的表现。
4. 自动驾驶技术:人工智能在自动驾驶领域的发展也备受瞩目。通过使用传感器、计算机视觉、深度学习技术和强化学习等方法,部分车辆已经具备了辅助驾驶和自动驾驶的能力。特斯拉、Waymo等公司的自动驾驶系统已经在公开道路上进行了测试,并展示了令人印象深刻的成果。
5. 医疗诊断:人工智能在医疗领域的应用也取得了重要突破。通过结合深度学习和医学图像分析,人工智能已经能够帮助医生进行疾病的早期检测和诊断,如乳腺癌、早期糖尿病视网膜病变等。
综上所述,人工智能近年来在深度学习、自然语言处理、强化学习、自动驾驶和医疗诊断等领域取得了显著进展,为各行各业带来了巨大的潜力和变革。
句子成分分析器
摘要: 自然语言处理(NLP)是计算机科学领域和人工智能领域中的一个分支句子成分分析器,它与计算机和人类之间使用自然语言进行互动密切相关。在这篇文章中句子成分分析器,你将学习到自然语言处理的基础知识,深入了解到它的一些技术,了解到NLP如何从深度学习的最新进展。
自然语言处理(NLP)是计算机科学领域和人工智能领域中的一个分支,它与计算机 和 人类之间使用自然语言进行互动密切相关。NLP的最终目标是使计算机能够像人类一样理解语言。它是虚拟助手、语音识别、情感分析、自动文本摘要、机器翻译等的驱动力。在这篇文章中,你将学习到自然语言处理的基础知识,深入了解到它的一些技术,了解到NLP如何从深度学习的最新进展。
1.简介
自然语言处理(NLP)是计算机科学、语言学和机器学习的交叉点,它关注计算机与人类之间使用自然语言中的沟通交流。总之,NLP致力于让计算机能够理解和生成人类语言。NLP技术应用于多个领域,比如天猫精灵和Siri这样的语音助手,还有机器翻译和文本过滤等。机器学习是受NLP影响最深远的领域之一,尤为突出的是深度学习技术。该领域分为以下三个部分:
1.语音识别:将口语翻译成文本。
2.自然语言理解:计算机理解人类的能力。
3.自然语言生成:计算机生成自然语言。
2.为什么NLP很难
人类语言有其特殊性。人类语言专门用于传达讲话者和写作者的意思,即使小孩子能够很快学会,它依然是一个复杂的系统。它的另一个显著之处在于它完全与符号有关。Chris Manning(斯坦福教授)表示,它是一个离散的、象征性的、绝对的信号系统,这意味着人们可以通过使用不同的方式传达相同的含义,比如演说,手势,信号等。人类大脑对这些符号的编码是持续的激活模式,在这个模式中,符号通过声音和视觉的连续信号实现传输。
由于其复杂性,理解人类语言被认为是一项艰巨的任务。例如,在句子中排列单词有无数种不同的方法。此外,一个单词可以有多种含义,并且正确解释句子需要恰当的语境信息。每种语言或多或少都是独特且含糊的。比如:“The Pope’s baby steps on gays”,这句话显然有两种截然不同的解释,这是反映NLP中的困难之处的一个很好的例子。
随着计算机对语言的理解愈渐完美,将会产生可以处理互联网上全部信息的人工智能(AI),继而产生强人工智能(AGI)。
3.句法和语义分析
句法分析和语义分析是理解自然语言的两种主要方法。语言是一组意义的语句,但是什么使语句有意义呢句子成分分析器?实际上,你可以将有效性分为两类:句法和语义。术语“句法”是指文本的语法结构,而术语“语义”是指由它表达的含义。但是,句法上正确的语句不必在语义上正确。只需看看下面的例子。语句“cow kow supremely”在语法上是有效的(主语-动词-副词),但没有任何意义。
句法分析:
句法分析,也称为语法分析或解析,是通过遵循正式语法规则来分析自然语言的过程。语法规则适用于单词和词组,而不是单个单词。语法分析主要为文本分配语义结构。
语义分析:
我们理解他人的语言是一种无意识的过程,依赖于直觉和对语言本身的认识。因此,我们理解语言的方式很大程度上取决于意义和语境。计算机却不能依赖上述方法,需要采用不同的途径。 “语义”这个词是一个语言术语,意思与意义或逻辑相近。
因此,语义分析是理解单词、符号和语句结构的含义和解释的过程,这使计算机能够以人类的方式理解部分涉及意义和语境的自然语言。为什么说只能部分理解呢?是因为语义分析是NLP中最棘手的部分之一,仍未完全解决。例如,语音识别技术已非常成熟,并且工作近乎完美,但仍然缺乏在自然语言理解(例如语义)中的熟练程度。手机基本上可以理解我们所说的内容,但通常无法用它做任何事情,因为它不了解其背后意义。
4.理解文本的技巧
下面我们将讨论多种用于自然语言处理的现行技术。
什么是解析?首先,让我们看一下词典释义:
解析—“将句子分解为其组成部分,并阐述各部分的句法角色。”
实际上解释的已经非常到位,但它可以更全面一些。解析是指计算机对句子的形式分析,其结果是一个解析树,这个解析树可以可视化地显示句子成分之间的句法关系,用于进一步处理和理解。
在下面你可以看到句子“The thief robbed the apartment”的解析树,以及由它传达的三种不同信息类型的描述。
我先看单个单词正上方的字母,它们用于显示每个单词的词性(名词-N,动词-V和限定词-DT)。我们再看解析树中更高的层级,一些单词进行层次分组组成短语。例如,“the thief”是一个名词短语(NP),“robbed the apartment”是一个动词短语(VP),这些短语一起形成一个句子(S),在树中标记在更高的层级。
这些短语以名词为主体,包含一个或多个单词,可能还包含描述性词语、动词或副词,简言之,就是把把名词和与其相关的单词组合在一起。
从解析树中还能看出,单词的表述结构影响其在句中的语法关系。例如,在此结构中,“thief”是“robbed”的主语。
结合结构来看,动词“robbed”,上方标有“V”,更上一级标有“VP”句子成分分析器;主语“thief”,上方标有N和“NP”,通过“S”联系在一起。这就像主语—动词关系的模板,同样还有许多其他类型的关系。
词干提取:
词干提取是一种来自形态学和信息检索的技术,在NLP中用于预处理和效率提升。但是,我们首先看一下词典中的释义:词干 — “起源于或由其引起。”
基本上,“词干提取”是将单词进行缩减得到词干的过程,而“词干”的实际意义是是在删除单词的所有的前缀后缀之后保留的一部分。例如,“touched”,它的词干是“touch”,同时“touch”也是“touching”等词的词干。
为什么需要词干?因为我们会遇到不同的词汇变形,而实际上它们具有相同的词干和意义。举例来说:
# I was taking a ride in the car
# I was riding in the car.
这两个句子意思是一致的,ride和riding的用法也是相同的。
词汇表中所有的单词有不同的注释,其中还包括大量实际意义相同的单词,要存储它们,需要一个庞大数据库,但是通过词干提取,仅关注单词的词干,可以很好地解决这个问题。现行的通用算法之一是1979年的“Porter Stemming Algorithm”(波特词干算法),非常使用便捷。
文字分割:
NLP中的文本分割是将文本转换为有意义的单元的过程,可以是单词、句子、也可以是不同的主题或潜在的意图等。在文本分割中,文本根据不同语种被分割为成份单词,由于人类语言的复杂性,通常比较难。举个例子,在英语中利用空格来分隔单词,相对高效实用,但是也有像“ice box”这类词语的例外,ice和box这两个由空格隔开的词合并一起使用才有原本含义的,所以人们有时把它写作“ice-box”,那么就给文字分割带来了难题。
命名实体识别:
命名实体识别(NER)用于确定文本中哪些词条属于命名实体,这些词条可以被定位并归入预定义的类别,类别的范围包括人名,组织,地点,还有货币价值和百分比。
看下面的例子:
NER之前:Martin bought 300 shares of SAP in 2016.
NER之后:[Martin]Person bought 300 shares of [SAP]Organization in [2016]Time.
关系抽取:
关系提取采用“命名实体识别(NER)”的命名实体,并识别它们之间的语义关系。这可能意味着它能够发现文本中词语之间的关联性,例如谁与谁结婚,某人在哪个公司工作等。这个问题也可以转换为分类问题,然后为每种关系类型训练机器学习模型。
情感分析:
通过情感分析,我们想要确定例如说话者或作者关于文档,互动或事件的态度(例如情绪)。因此,需要理解文本以预测潜在意图是一种自然语言处理问题。情绪主要分为积极,消极和中性两类。通过使用情感分析,我们希望根据他撰写的关于产品的评论来预测客户对产品的看法和态度。因此,情感分析广泛应用于评论,调查,文档等等
如果你对使用Python中的某些技术感兴趣,可以查看我创建的Python的自然语言工具包(NLTK)的Jupyter Notebook。你还可以查看我的博客文章,了解如何使用Keras构建神经网络,我将训练神经网络进行情感分析。
5.深度学习和NLP
深度学习和自然语言的核心是“词义”,在这里,单词用一个实数向量来表示。因此,通过向量来代表单词单词,我们可以将单词置于高维度的空间中,由向量表示的单词起到语义空间的作用。这仅仅意味着在该高维向量空间中,形近意近的单词倾向于聚集在一起。下图中,可以看到单词含义的直观展示:
在此空间中,如果想要知道某一组聚集成类的单词的含义,可以通过使用主成分分析法(PCA),也可以使用降维法。但这些方法太简单并且会遗漏了周边的大量信息,因而产生误差。在研究的初始阶段,这些方法很好用,(如数据科学中的逻辑或线性回归)但并不是前沿技术。
我们还可以将单词的一部分当作向量,这些向量可以代表单词的含义。想象一下“undesirability”这个词。使用“形态学方法”,它涉及一个词所具有的不同部分,我们认为它由词素(单词部分)构成:“Un + desire + able + ity”。每个语素都有自己的向量。这允许我们构建一个神经网络,它可以构成一个更大的单位的意义,而更大的单位又由所有这些语素组成。
深度学习还可以通过创建句法分析器来理解句子的结构,谷歌正在使用这样的依赖解析技术,在他们的“McParseface”和“SyntaxNet”(两种语言解析器),不过更加宏大,更加复杂。
通过分析句子结构,我们开始理解句子的意义,可以从单词的含义开始,也可以从整个短语和句子开始,无论单词的意义、短语还是句子,都用向量来表示。如果想知道句子之间的关系,我们可以创建神经网络来帮助分析。
深度学习也适用于情感分析。请看这个电影评论:“这部电影不在乎是不是巧妙,也不在乎幽默与否”。传统的机器学习算法会认为这是一个积极的评论,因为“聪明”和“幽默”是积极的词汇,但是神经网络能够识别出它的真正含义。
另外,深度学习算法实现的机器翻译中,它从句子开始翻译,并生成一个向量,然后用另外一种语言生成所需要的信息。
总而言之,NLP与深度学习相结合,就是表示单词、短语的向量,以及它们的含义。
阿里云云栖社区组织翻译。
文章原标题《Introduction Into Semantic Modeling for Natural Language Processing》
作者:Aaron Radzinski
译者:Mags,审校:袁虎。