自然语言处理已经进入大模型时代,然而从业人员必须了解整个知识体系、发展过程、知识结构,应用范围等一系列知识。本篇将报道此类概况。
自然语言处理,或简称NLP,是处理和转换文本的计算机科学学科。它由几个任务组成,这些任务从标记化开始,将文本分成单独的意义单位,应用句法和语义分析来生成抽象的知识表示,然后再次将该表示转换为文本,用于翻译、问答或对话等目的。
本文简要介绍了自然语言处理。它首先简要介绍了科学学科的历史概述,解释了所使用的不同时期和方法,然后解释了各种NLP任务,分为连贯的兴趣领域,然后概述了当前的NLP程序。在接下来的几周里,其他文章将研究 Python 库和 NLP 的具体项目。
来源:自然语言处理、语言学、机器学习、人工智能
自然语言处理是一门计算机科学学科,可追溯到1950年。它是几个科学领域的综合,目标、范式和方法从中协同并具体化。这些领域是语言学、机器学习和人工智能。对这些领域的简要概述有助于理解NLP如何处理语言,以及该学科如何在不同的亿万年中发展,在此期间,其他学科的进步和见解被合并。
语言学是对语言及其不同方面的经典研究,如句法、语义、形态学和音韵学。它试图创建一个通用的框架,语言是如何被创造和工作的。特别是在理论语言学中,引入和研究了不同类型的逻辑,以反映信息是如何从表达中表示和推断的。
机器学习涉及设计处理结构化或非结构化数据的算法,以识别模式并评估与这些模式相关的其他或更新数据。数据以数字表示或转换为数字表示,然后应用不同的数学模型和算法。机器学习还具有几个目标:聚类、检测单独的相关数据组、异常检测、查找不属于已知模式的数据或回归,创建近似复杂输入以生成输出值的函数。
人工智能关注的是机器如何构建或表示智能的一般问题。这是一门跨越数学算法、计算机程序、数据结构、电子学和机器人技术的学科。它制定了以下研究领域,这些领域本身代表了一个单独的目标。在推理和问题解决中,程序应该处理概念的符号表示,并执行支持程序目标或议程的计算。通过知识表示,程序需要能够表示有关其应用领域的知识,例如使用本体,连接概念并表达其关系的类似网络的数据结构。最后,自动和自主数据处理需要学习和感知,以提高知识和推理能力,特别是通过处理来自文本、图片、视频和声音等许多不同领域的数据
如果把所有这些学科放在一起,这幅图景就会演变。人工智能的牵强附会目标塑造了NLP研究的视野:创建理解,处理和推理语言的程序,与人类交谈或形成有关文档的知识。机器学习为其处理数值数据的算法提供了数学基础。通过将文本表示为数字数据,可以对文本进行分类、分类和比较。在某种程度上,从文本的数字表示中,事实和三段论可能会受到干扰。最后,语言学塑造了语言基础结构的遗产,将语言分为句法、语义等。这种分离极大地形成了早期的NLP方法,因为程序被设计为通过创建句法模型,将启发式应用于令牌,使用最终转换为知识表示的语义表示来逐步处理文本。
来源:自然语言处理
NLP在三个不同的时代发展:符号,统计和神经。通过遵循上述考虑,很明显,每个时代的目标和方法都反映了继承人相邻学科的知识体系。
第一个时代被称为符号NLP。语言是通过其语法和语义来考虑的。语言表达是单词的有序序列,其中单词代表一个概念,其中细粒度的内部结构和单词关系塑造了整体含义。将一个句子简化为不同的词,将词简化为它们的引理,即它们的屈折词源,表达了表达的内容。然而,只有考虑其句法和语法,单词的高阶关系才会显现出来,句子的真正含义才得以实现。这个时代的NLP系统关注创建复杂的规则,这些规则以句法和语义形式处理和表示语言。直到今天,这些基于规则的系统过去和现在都用于多个NLP任务。
第二个时代称为统计NLP。用于研究和工业的计算机越来越可用,以及计算机可读取的数据量不断增加,导致提出了处理语言的统计方法。通过使用这种先进的处理能力,可以并行处理多个文本和文档,然后应用先进的机器学习算法来检测语言模式。这个时代的典型机器学习模型是贝叶斯网络、隐马尔可夫模型和支持向量机,它们仍然用于 NLP 任务。应用统计学可以带来一些关于语言本质的见解,这些见解甚至反映在理论语言学中。这最终形成了与决策有关的专家系统和涉及符号信息的表示和推理的知识系统。
第三个时代被称为神经NLP,因为它使用了庞大而复杂的神经网络。神经网络是由单个神经元组成的复杂结构,也称为感知器。感知器的概念可以追溯到1950年,当时它被用来对执行简单输入输出转换的函数进行建模。就像在第二个时代一样,计算处理能力的提高,特别是能够对大量数据执行数学功能的图形处理单元的提高,导致了越来越复杂。神经网络被用于困难的机器学习任务,因为它们显示出一个有前途的特征:神经网络不是手动创建重要特征,即算法工作的数据输入模式,而是自己学习特征。他们接受训练的数据越多,特征和结果就越强大。当应用于处理文本的数字表示时,考虑了相同的效果。网络学习了语言的结构,并很快在几个NLP任务中超越了既定的基准。如今,基于神经网络的NLP正在成为NLP研究的主要形式。
资料来源:在实践中利用LLM的力量:关于ChatGPT及其他的调查,自然语言处理:最新技术,当前趋势和挑战,3:深度学习在自然语言处理中的用途调查,维基百科自然语言处理
结合科学论文,维基百科和Python中常见的NLP项目,NLP任务列表令人惊讶。以下列表并不详尽,它侧重于Python NLP库支持的任务,并且分组与维基百科的分组不同。
需要将两个主要组分开:核心NLP任务,结构为经典语言学的片段,主要操作在令牌和句子上,以及使用计算机的高级NLP任务及其经典NLP任务的组合技能,顶部操作并生成任意数量的文本。
典型的NLP项目遵循相同的预处理和转换步骤,使文本适用于算法。这些步骤是预处理、统计/语义信息收集、数值表示转换和目标任务应用。
在预处理期间,文本被分成有意义的单元。通常,这些单元也会进一步减少,以减少下游任务处理的信息量。
要应用任何 NLP 算法、机器学习模型或将文本输入神经网络,需要将文本转换为数字表示。通常,这种表示不仅考虑单个文本,还考虑一组作为语料库创造的相关文本。对于文本语料库,可以使用以下技术来生成数字表示:
从这里开始,经典的NLP任务,从语法和语义开始,以及高级NLP任务都是可行的。
自然语言处理是一门计算机科学学科,共享语言学、机器学习和人工智能的传统、目标和方法。通过符号、统计和神经处理的三个时代,创建了一个复杂的理解和广泛的 NLP 任务列表。今天,执行句法和语义分析从显式的笼子规则系统转变为神经网络中学习的特征表示。由此,文本翻译、问答、推理和最终文本生成等高级 NLP 任务变得可行。在本文中,您了解了时代、NLP 任务和典型 NLP 项目的步骤。下一篇文章展示了用于各种NLP任务的具体Python库。