Ben Lutkevich:自然语言处理 NLP
Ben Lutkevich:natural language processing (NLP)
原文链接:What is Natural Language Processing? An Introduction to NLP
自然语言处理是什么?
自然语言处理(NLP)是计算机程序理解人类口语和书写的能力,也称为自然语言。它是人工智能(AI)的一个组成部分。
NLP已经存在了50多年,并且有着语言学领域的根源。它在许多领域中有着各种实际应用,包括医学研究、搜索引擎和业务智能等。
自然语言处理如何工作?
NLP使计算机能够像人类一样理解自然语言。无论语言是口头的还是书面的,自然语言处理使用人工智能来处理真实世界的输入、处理它并以计算机能够理解的方式理解它。就像人类有不同的感官-如耳朵听和眼睛看-计算机也有读取的程序和收集音频的麦克风。就像人类有一个大脑来处理输入,计算机有一个处理它们各自输入的程序。在处理的某个阶段,输入被转换为计算机可以理解的代码。自然语言处理有两个主要阶段:数据预处理和算法开发。
数据预处理涉及准备和“清理”文本数据,使机器能够分析它。预处理将数据放入可处理的形式,并突出文本中算法可以处理的特征。这可以通过以下几种方式来完成:
- 标记化。将文本分解成更小的单位以便处理。
- 停用词去除。从文本中删除常见的单词,以便唯一的单词保留提供有关文本的最多信息。
- 词形还原和词根提取。将单词减少到它们的根形式以进行处理。
- 词性标记。基于它们的词性标记单词的标记,如名词、动词和形容词。
一旦数据被预处理,就会开发算法来处理它。有许多不同的自然语言处理算法,但通常使用两种主要类型:
- 基于规则的系统。该系统使用精心设计的语言规则。这种方法早期用于自然语言处理的开发,并仍在使用。
- 基于机器学习的系统。机器学习算法使用统计方法。他们学习基于他们接受的训练数据执行任务,并随着更多的数据被处理而调整他们的方法。自然语言处理算法通过重复处理和学习结合机器学习、深度学习和神经网络来磨练自己的规则。
自然语言处理为什么重要?
企业使用大量的非结构化、文本密集型数据,并需要一种有效的处理方式。在线创建和存储的许多信息都是自然人类语言,直到最近,企业才能有效地分析这些数据。这就是自然语言处理有用的地方。
自然语言处理的优势可以从下面这两个语句中看到:“云计算保险应该成为每个服务级别协议的一部分”,“一个好的服务级别协议确保在云端也能轻松入睡。”如果用户依赖自然语言处理进行搜索,程序将识别到“云计算”是一个实体,“云”是云计算的缩写,而“SLA”是服务级别协议的行业缩写。
这些是经常出现在人类语言中的模糊元素,机器学习算法过去在解释这些元素方面表现不佳。现在,随着深度学习和机器学习方法的改进,算法可以有效地解释它们。这些改进扩展了可以分析的数据的广度和深度。
自然语言处理的技术和方法
句法分析和语义分析是自然语言处理使用的两种主要技术。
句法是句子中单词的排列,以使语法上有意义。 NLP使用语法根据语法规则从语言中评估意义。句法技术包括:
- 解析。这是对句子的语法分析。例如:将自然语言处理算法输入句子“狗叫了。”解析涉及将此句子分解为词性的部分-即,狗=名词,叫=动词。这对于更复杂的下游处理任务是有用的。
- 单词分割。这是从字符串中获取单词形式的行为。例如:一个人将手写文档扫描到计算机中。算法将能够分析页面并识别单词是由空格分隔的。
- 句子分割。这将句子边界放置在大型文本中。例如:自然语言处理算法输入文本“狗叫了。我醒了。”算法可以使用句子分割来识别分隔句子的句点。
- 词形分割。这将单词分成称为形态素的较小部分。例如:单词不可测试将被分解为[[un[[test]able]]ly],其中算法将“un”、“test”、“able”和“ly”识别为形态素。这在机器翻译和语音识别中非常有用。
- 词干处理。这将具有屈折变化的单词分解为根形式。例如:在句子“The dog barked.”中,算法将能够识别单词“barked”的根是“bark”。如果用户正在分析文本中所有的“bark”实例以及其所有的词形变化,这将非常有用。算法可以看到它们本质上是相同的单词,即使字母不同。
语义涉及单词使用和其背后的含义。自然语言处理应用算法来理解句子的含义和结构。语义技术包括:
- 词义消歧。这根据上下文推断出单词的含义。例如:考虑句子“The pig is in the pen.”单词“pen”有不同的含义。使用此方法的算法可以理解单词“pen”在这里指的是一个有栅栏的区域,而不是写字工具。
- 命名实体识别。这确定可以归类为组的单词。例如:使用此方法的算法可以分析新闻文章并识别所有对某个公司或产品的提及。使用文本的语义,它将能够区分外观相同的实体。例如,在句子“Daniel McDonald的儿子去了麦当劳并点了一个愉快的餐”中,算法可以将“麦当劳”这两个实例识别为两个不同的实体-一个是餐厅,一个是人。
- 自然语言生成。这使用数据库来确定单词背后的语义并生成新的文本。例如:算法可以自动为商业智能平台的研究结果撰写摘要,将某些单词和短语映射到BI平台数据的特征。另一个例子是根据用于培训的某个文本自动生成新闻文章或推文。
目前,自然语言处理的方法基于深度学习,这是一种检查和使用数据中的模式以提高程序理解的人工智能类型。深度学习模型需要大量标记数据,以便自然语言处理算法进行训练并识别相关的相关性,而且组装这种大数据集是自然语言处理的主要障碍之一。
早期的自然语言处理方法涉及更基于规则的方法,其中较简单的机器学习算法被告知在文本中寻找什么单词和短语,并在这些短语出现时给出特定的响应。但是,深度学习是一种更灵活、更直观的方法,在这种方法中,算法从许多示例中学习识别讲话者的意图-几乎像孩子学习人类语言一样。
用于自然语言处理的三个常用工具包括自然语言工具包(NLTK)、Gensim和英特尔自然语言处理架构。NLTK是一个带有数据集和教程的开源Python模块。Gensim是用于主题建模和文档索引的Python库。英特尔NLP架构是另一个用于深度学习拓扑和技术的Python库。
自然语言处理用于什么?
自然语言处理算法执行的一些主要功能包括:
- 文本分类。这涉及将标签分配给文本以将其放入类别中。这对于情感分析很有用,它有助于自然语言处理算法确定文本背后的情感或情绪。例如,当品牌A在X个文本中被提到时,算法可以确定其中有多少是积极的,有多少是消极的。它也可以用于意图检测,这有助于预测讲话者或作者可能根据他们所生成的文本要做什么。
- 文本提取。这涉及自动总结文本并查找重要的数据。其中之一是关键字提取,它从文本中提取最重要的单词,这对于搜索引擎优化很有用。使用自然语言处理进行此操作需要一些编程-它并不完全自动化。但是,有很多简单的关键字提取工具可以自动化大部分过程-用户只需要在程序中设置参数。例如,一个工具可能会提取文本中最常用的单词。另一个例子是命名实体识别,它从文本中提取人名、地名和其他实体的名称。
- 机器翻译。这是一种计算机将文本从一种语言(如英语)翻译成另一种语言(如法语)的过程,而不需要人类干预。
- 自然语言生成。这涉及使用自然语言处理算法分析非结构化数据并根据该数据自动生成内容。其中之一是语言模型(例如GPT3),它能够分析非结构化文本,然后根据该文本生成可信的文章。
上述功能在许多实际应用中使用,包括:
- 客户反馈分析-其中AI分析社交媒体评论;
- 客户服务自动化-使用语音助手在客户服务电话的另一端使用语音