点击上方关注句子成分分析器,All in AI中国
作者句子成分分析器:Niklas Donges
自然语言处理(NLP)是计算机科学和人工智能的一个领域,涉及自然语言中计算机与人类之间的相互作用。NLP的最终目标是使计算机能够像我们一样理解语言。它是虚拟助手、语音识别、情绪分析、自动文本摘要、机器翻译等内容背后的驱动力。在这篇文章中,你将学习自然语言处理的基础知识,深入了解其中的一些技巧,并了解NLP如何从深度学习的最新进展中受益。
目录:
简介为什么NLP很困难语法和语义分析NLP技术深度学习和NLP总结一 、简介
自然语言处理(NLP)是计算机科学、语言学和机器学习的交叉学科,它致力于让计算机理解并生成人类语言。NLP技术的应用包括Alexa和Siri这样的语音助手,还有机器翻译和文本过滤等。NLP是从机器学习(尤其是深度学习技术)的最新进展中受益匪浅的领域之一。该领域分为以下三个部分:
语音识别 - 将口语翻译成文本。自然语言理解 - 计算机理解我们所说内容的能力。自然语言生成 - 计算机生成自然语言。二 、为什么NLP很困难
人类语言之所以特殊是由于几个原因。它是专门用于传达说话者/作者的意思。这是一个复杂的系统,虽然小孩子可以很快学会它。关于人类语言的另一个显著之处在于它与符号有关。据Chris Manning(斯坦福大学的机器学习教授)表示,它是一个离散的、象征性的、绝对的信号系统。这意味着你可以通过使用不同的方式传达相同的含义,例如语音、手势、符号等。人类大脑的这些编码是连续的激活模式,通过声音和视觉的连续信号传递这些符号。
由于其复杂性,理解人类语言被认为是一项艰巨的任务。例如,句子中单词的排列有无数种不同的可能。此外,单词可以有多种含义,正确解释句子需要有具体的语境信息。每种语言或多或少都是独特和含糊的。看看下面的报纸标题"The Pope's baby steps on gays"。这句话显然有两种截然不同的解释(可以理解为"教皇的孩子踩了同性恋(人群)",也可以理解为"教皇在同性恋的问题上裹足不前"),这是NLP挑战的一个很好的例子。
请注意,通过计算机对语言的完美理解将导致AI可以处理互联网上可用的所有信息,然而这反过来可能会导致人为干预的智能出现。
三 语法和语义分析
语法分析语法和语义是理解自然语言的两种主要技术。语言是一组有效的句子,但是什么使句子变得有效呢?实际上,你可以将有效性分为两类:语法和语义。术语上,语法是指文本的语法结构,语义是指由它传达的含义。但是,语法上正确的句子不必在语义上正确。只需看看下面的例子。句子"cows flow supremely"(奶牛的流动是至高无上的)在语法上是有效的(主语 - 动词 - 副词),但没有任何意义。
语法分析:
(https://pixabay.com/de/grammatik-lupe-lupen-buch-389907/)
语法分析,也称为语法分析或解析,是分析符合正式语法规则的自然语言的过程。语法规则适用于单词组,而不是单个单词。语法分析基本上为文本分配语义结构。
例如,句子包括主语和谓语,其中主语是名词短语而谓词是动词短语。看看下面这句话:"the dog(名词短语)went away(动词短语)"。请注意,我们可以将每个名词短语与动词短语结合起来。就像我已经提到过的那样,尽管它们在语法上是正确的,但是形成的句子并没有真正有意义。
语义分析:
对于我们人类而言,我们理解某人所说的话的方式是一种无意识的过程,它依赖于我们的直觉和我们对语言本身的认识。因此,我们理解语言的方式很大程度上取决于语义和语境。由于计算机不能依赖这些技术,因此需要采用不同的方法。"语义"这个词是一个语言术语,意思是与意义或逻辑相关的东西。
(https://pixabay.com/de/sinn-download-begriff-blickwinkel-2470745/)
因此,语义分析是理解单词、符号和句子结构的含义和解释的过程。这使计算机能够以人类的方式部分理解自然语言,包括意义和语境。我之所以这么说,是因为语义分析是NLP中最棘手的部分之一,而且至今还没有很好的解决方案。例如,语音识别已经变得非常好并且几乎完美无缺,但我们对自然语言理解(语义)的能力还不足。你的手机基本上了解你所说的内容但通常无法用它做任何事情,因为它无法理解背后的意义。另外,请注意,有些技术只会让你认为他们理解了文本的含义。一种基于关键词或统计学甚至纯粹机器学习的方法可以使用匹配或频率技术来获取关于文本"是关于什么的"的线索。这些方法是有条件的,虽然看起来它们理解到了真正的潜在含义。
四 理解文本的技巧
在下面,我们将讨论许多用于自然语言处理的最流行的技术。请注意,其中一些是紧密交织在一起的,只是作为用来解决更大的问题的子任务而出现。
解析:
什么是解析?首先,让我们看一下字典:
解析——"将句子分解为其组成部分,并描述它们的语法角色。"
解释的很好,但它可以更全面一些。解析是指计算机对句子的正式分析,从而形成一个解析树,以视觉形式显示彼此的语法关系,可用于进一步处理和理解。
在下面你可以看到句子"小偷抢劫公寓"的解析树,以及由它传达的三种不同信息类型的描述。
如果我们查看单个单词正上方的字母,我们可以看到它们显示每个单词的词性(名词,动词和限定词)。如果我们再往上看一层,我们会看到一些单词被分成短语的层次结构。例如,"小偷"是一个名词短语,"抢劫公寓"是一个动词短语,结合在一起它们形成了一个句子,这标志着一个更高的水平。
但名词或动词短语的实际含义是什么?让我们用"名词短语"的例子解释一下。这些是包含名词的一个或多个单词的短语,可能包含描述性词语,动词或副词。我们的想法是用与它们相关的单词对名词进行分组。
解析树还为我们提供了关于单词语法关系的信息,这些语法关系是由它们表示的结构决定的。例如,我们可以在结构中看到"小偷"是"抢劫"的主语。
结构意味着我们有动词("robbed"),它上方标有"V",再上面标有"VP",与主语"小偷"的"S"相关联,"V"旁边有一个"NP"。这就像主语 - 动词关系的模板,还有许多其他类型的关系。
词干:
词干提取是一种来自形态学和信息检索的技术,其在NLP中主要用于预处理和提高效率。但是,让我们首先看一下它实际上意味着什么:
词干——"起源于或由其引起。"
基本上,词干是将单词减少到单词词干的过程,但实际上它的真正含义是什么?"词干"是删除所有词缀后剩下的词的一部分。
你可能会问自己,为什么我们甚至需要词干?词干是必需的,因为你会遇到实际上具有相同词干和相同含义的不同语句。我们来看看两个句子的例子:
#我正在开车(I was taking a ride in the car)
#我正在开车(I was riding in the car)
这两个句子意思完全相同,这个词的用法也是相同的。
现在,想象一下词汇表中的所有英语单词,以及它们末尾的所有不同的注释。要存储它们,所有这些都需要一个包含许多实际意义相同的单词的庞大数据库。这可以仅通过关注单词的词干来解决。这里(推荐)的算法是1979年的"Porter Stemming Algorithm",其效果非常好。
文本分割:
NLP中的文本分割是将文本转换为有意义的单元的过程,这些单元可以是单词,句子,不同主题,潜在的意图等等。大多数情况下,文本被分段为其组成单词,这可能是一项艰巨的任务,具体取决于语言难易程度。例如,在英语中一般用空格分隔单词,除了像"ice box"这样的单词,它是一个词但由空格分隔。但是人们有时也把它写成"ice-box"。
命名实体识别
命名实体识别(NER)集中于确定文本中的哪些项目("命名实体")可以被定位并分类为预定义的类别。这些类别的范围可以是人员名称、组织、地点、货币价值和百分比。
只需看看以下示例:
在NER之前:"Martin在2016年购买了300股SAP。"
在NER之后:"[Martin] Person在[2016] Time购买了300股[SAP]组织。"
关系提取
关系提取采用"命名实体识别"的命名实体,并尝试识别它们之间的语义关系。常见的用例有找出谁与谁结婚,一个人为特定公司工作等等。此问题也可以转换为分类问题,你可以在其中为每种关系类型训练机器学习模型。
情绪分析:
通过情绪分析,我们想要确定态度,例如,演讲家或作者关于一个文章,互动或事件的态度(情绪)。因此,需要理解文本以预测潜在意图是一种自然语言处理问题。情绪主要分为积极,消极和中性情绪。通过使用情绪分析,我们希望根据他撰写的关于产品的评论来预测客户对产品的看法和态度。因此,情绪分析广泛应用于评论,调查,文章等等。
如果你对使用Python中的某些技术感兴趣,可以查看我创建的Python的自然语言工具包(NLTK)的Jupyter笔记本。你还可以查看我的博客文章,了解如何使用Keras构建神经网络,我将训练神经网络进行情感分析。(https://towardsdatascience.com/how-to-build-a-neural-network-with-keras-e8faa33d0ae4)
五 深度学习和NLP
现在我们对自然语言处理有了更多了解,但问题是,我们如何在NLP中使用深度学习。
深度学习和自然语言的核心是"词义",一个词,特别是它的意义被表示为实数的向量。因此,使用代表单词的这些向量,我们将单词放在高维空间中。有趣的是,这些由向量表示的单词将充当语义空间。这仅仅意味着具有相似含义的词倾向于在高维向量空间中聚集在一起。你可以在下面看到单词含义的直观表示:
你可以通过使用主成分分析(PCA)或使用T-SNE进行降维来找出一组聚类词的含义,但这有时会产生误导,因为它们过于简单并且具备大量信息。因此,这是一个很好的开始方式(如数据科学中的逻辑或线性回归)。
我们还可以将单词的一部分视为代表其含义的向量。想象一下"不受欢迎(undesirability)"这个词。使用"形态学方法",它涉及一个单词所具有的不同部分,我们会认为它是由以下语素(单词部分)构成的:"Un + desire + able + ity"。每个语素都有自己的向量。这允许我们构建一个神经网络,它可以构成一个更大的单位,而更大的单位又由所有这些语素组成。
深度学习还可以通过创建可以识别句子结构的语法分析器来理解句子的结构。谷歌使用这样的解析技术在他们的"McParseface"和"SyntaxNet"中。
了解句子的结构后,我们可以开始尝试理解句子的意义。就像我们已经讨论过的那样,我们从单词作为向量的含义开始,但我们也可以用整个短语和句子来做,其中它们的含义也表示为向量。如果我们想知道句子之间的关系,我们可以考虑训练一个神经网络。
深度学习也擅长情绪分析。看看下面的电影评论:这部电影并不关心技巧,也不关心其他任何形式的智慧幽默的传统方法,这会会令人陷入思考。这是一个积极的评论的陷阱,因为技巧或任何其他一种智慧幽默听起来像一个积极的评论,但神经网络会认识到它的真正潜在含义。其他应用程序像是Chatbots、机器翻译、Siri、谷歌收件箱的建议回复等。
通过回归神经网络的兴起,机器翻译也取得了巨大的进步,我也写了一篇博文。(https://towardsdatascience.com/recurrent-neural-networks-and-lstm-4b601dd822a5)
在由深度学习算法完成的机器翻译中,语言的翻译是从句子开始,然后生成表示它的向量。然后它开始用另一种语言生成包含相同信息的单词。
总而言之,NLP与深度学习相结合的是所有关于表示单词、短语等的向量,以及在某种程度上代表它们的含义。
六 总结
在这篇文章中,你已经学到了很多关于自然语言处理的知识。现在你知道为什么NLP是如此困难的事情。我们已经讨论了语法和语义分析之间的区别,并了解了一些使我们能够分析和生成语言的NLP技术。总而言之,我们讨论的技术包括解析、词干分析、文本分割、命名实体识别、关系提取和情绪分析。最重要的是,我们通过将单词,短语,句子等表示为数字向量的概念,讨论了深度学习如何加速NLP。
参考
·https://machinelearningmastery.com/natural-language-processing/
·https://www.youtube.com/watch V = 8S3qHHUKqYk
·https://en.wikipedia.org/wiki/Natural_language_processing
·https://www.youtube.com/watch V = TbrlRei_0h8
·https://www.youtube.com/watch V = OQQ-W_63UgQ&名单= PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6?
·https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-864-advanced-natural-language-processing-fall-2005/lecture-notes/lec2.pdf
注:本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即后台留言通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意
发表评论