什么是自然语言处理 (NLP)?

自然语言处理的定义

自然语言处理 (NLP) 是人工智能 (AI) 的一种形式,专注于计算机和人类通过人类语言进行交互的方式。NLP 技巧能够帮助计算机使用我们的自然沟通方式(对话和书面文本)分析、理解我们并做出回应。

自然语言处理是计算机语言学的一个子专业。计算机语言学是一个交叉学科领域,将计算机科学、语言学和人工智能结合起来研究人类语言的计算机方面。

自然语言处理 (NLP) 的历史

自然语言处理的历史可以追溯至上个世纪 50 年代,那时计算机科学家刚开始探索如何教会机器理解并产生人类语言。在 1950 年,数学家艾伦·图灵提出了他著名的图灵测试,也就是将人类对话和机器生成的对话放在一起进行对比,看看哪一个听起来更贴近生活。也正是在这时候研究人员开始探索是否有可能使用计算机来翻译人类语言。

在这一研究的前十年,NLP 依赖的是基于规则的处理。到了上个世纪 60 年代,科学家开发出了新方法来分析人类语言,即使用语义分析、词性标注以及语法分析。他们同时还开发了第一个语料库,即大型的机器可读文档,而且这些文档备注了用来训练 NLP 算法的语言学信息。

到了上个世纪 70 年代,科学家开始使用统计学 NLP,这一方法会使用统计模型作为基于规则的方法的备选方案来分析和生成自然语言文本。

到了上个世纪 80 年代,专注点开始转移到开发更高效的算法来训练模型和提高模型的准确性。这推动了 Machine Learning 算法在 NLP 领域的崛起。Machine learning 是使用大量数据来识别模式的过程,通常用来进行预测。

深入学习、神经网络和转换器模型从根本上改变了 NLP 研究。深入神经网络的兴起,再加上转换器模型以及“注意力机制”的发明,催生了诸如 BERT 和 ChatGPT 等技术。注意力机制走得更远了一步,举例来说,它会查找与您的查询相似的关键词。它会基于词语的相关性确定每个互联词语的比重。正是这些技术在幕后推动着目前所使用的某些最令人兴奋的 NLP 技术。

自然语言处理的工作原理是什么?

自然语言处理会通过多种不同方式工作。基于 AI 的 NLP 涉及使用 Machine Learning 算法和技巧来处理、理解和生成人类语言。基于规则的 NLP 涉及创建一个可用来分析和生成语言数据的规则或模式的集合。统计学 NLP 涉及使用从大型数据集中获得的统计模型来分析语言并做出语言方面的预测。混合 NLP 将上述三种方法结合到一起。

基于 AI 的 NLP 方法当今最为热门。与任何其他数据驱动型学习方法一样,开发 NLP 模型需要对文本数据进行预处理并精心选择学习算法。

第 1 步:数据预处理
这是指清理并准备文本的过程,以便 NLP 算法能够对其进行分析。部分常见的数据预处理技巧包括文本挖掘(指使用大量文本并将文本拆分为数据)或词汇切分(指将文本拆分成单独的单元)。这些单独的单元可以是标点、单词或词组。停用词删除是一项工具,可移除对话中通常不太有助于分析的常用词和冠词。词干提取和词形还原会将单词拆分成其基本词根形式,以便更轻松地识别它们的意思。词性标注可识别一句话中的名词、动词、形容词和其他词性的词。语法分析会分析句子结构以及不同单词之间的关系。

第 2 步:算法开发
这是向预处理数据应用 NLP 算法的过程。它会从文本中提取有用信息。下面是一些最常见的自然语言处理任务:

  • 情感分析确定一段文本中的情绪基调或者情感。情感分析会将单词、词组和表达标注为积极、消极或中立。
  • 命名实体识别会识别命名实体并对其进行分类,例如人、位置、日期和组织。
  • 主题建模会将相似的单词和词组分组到一起,以识别一系列文档或文本的主要话题或主题。
  • 机器翻译会使用 Machine Learning 将文本自动从一种语言翻译成另一种语言。语言建模会预测特定上下文中单词序列的可能性。
  • 语言建模用于自动完成、自动更正应用程序,还用于语音转文本系统。

需要注意的两个 NLP 分支是自然语言理解 (NLU)自然语言生成 (NLG)。NLU 专注于让计算机使用与人类所用工具类似的工具来理解人类语言。它的目的是让计算机理解人类语言的细微之处,包括上下文、意向、情感和模糊性。NLG 专注于基于数据库或规则集创建与人类语言类似的语言。NLG 的目标是生成可被人类轻松理解的文本。

自然语言处理的优点

自然语言处理的部分优点包括:

  • 改善沟通:NLP 允许人们与搜索应用更自然地进行沟通。NLP 可以适应不同的风格和情感,打造更加便捷的客户体验。
  • 效率:NLP 可自动完成很多通常需要人类完成的任务。一些示例包括文本摘要、社交媒体和电子邮件监测、垃圾邮件检测和语言翻译。
  • 内容策划:NLP 可基于用户喜好为个体用户识别最相关的信息。理解上下文和关键字有助于提高客户满意度。提高数据的可搜索性能够提升搜索工具的效能。

自然语言处理面临哪些挑战?

NLP 仍然面临着很多挑战。人类对话并不规则而且经常充满歧义,基于上下文可能会有多个意思。然而,编程人员需要从一开始就教给应用程序这些复杂的知识。

同音异义字和语法可能会让数据集不知所措。而且即使最出色的情感分析有时也不能识别出反讽和嘲笑。人类需要很多年才能学会这些细微之处——举个例子,即使学了这么多年,人们也很难从短信或电子邮件中读出语气。

文本会以各种语言发布,但 NLP 模型是使用特定语言进行训练的。在向 NLP 输入内容之前,您必须应用语言识别功能以按语言对数据进行排序。

不具体或过于笼统的数据会限制 NLP 准确理解和传达文本意思的能力。对于具体领域,需要比大部分 NLP 系统已有数据更多的数据量才能做出实质性宣称。对于依赖最新且高度具体信息的行业而言,则更是如此。新研究(例如 ELSER – Elastic Learned Sparse Encoder)正在努力解决这一问题来生成更相关的结果。

处理人们的个人数据还会引发一些隐私顾虑。在诸如医疗保健等领域,NLP 可能会从患者文件中提取信息来填写表格并识别健康问题。这些类型的隐私顾虑、数据安全问题以及潜在偏见都使得 NLP 难以在敏感领域得到实施。

自然语言处理的业务应用是什么?

NLP 有广泛的业务应用:

  • 聊天机器人和虚拟助手:用户可以与您的系统进行对话。这些是常见的客户服务工具。它们还能引导用户完成复杂的工作流,或者帮助用户在网上或解决方案中导航。
  • 语义搜索:通常应用在电商领域,以生成产品推荐。它会分析搜索引擎并使用基于知识的搜索,以对关键词的上下文进行解码。它会解读用户意向,从而提供更相关的建议。
  • NER:识别文本中的信息以填写表格或者提高文本的可搜索性。教育机构可以使用它来分析学生习作并自动打分。不仅如此,文本转语音和语音转文本功能会提高信息的可访问性,让残障人士更轻松地进行沟通。
  • 文本摘要:跨行业研究员能够将大型文档快速汇总成精简且便于理解的文本。金融行业可使用此技术来分析新闻和社交媒体内容,以帮助预测市场趋势。政府和法律行业使用此技术来从文档中提取关键信息。

NLP 的未来会怎样?

ChatGPT 和生成性 AI 有可能会带来转型。随着 ChatGPT 等技术进入市场,NLP 的新应用可能很快就会出现。我们很可能会看到与诸如语音识别、计算机视觉和机器人学等其他技术的集成,这会催生更加先进和复杂的系统。

NLP 也会变得更加个性化,允许机器更好地理解个体用户并相应调整其回复和建议。能够理解和生成多种语言的 NLP 系统是国际商务领域的一个主要增长点。最重要的是,NLP 系统在生成更加自然的语言方面正在不断变得越来越好:听起来一天比一天更像人类讲的话。

借助 Elastic 开始使用 NLP

随着 Elastic Stack 8.0 的发布,您能够将 PyTorch 模型上传到 Elasticsearch,从而在 Elastic Stack 中实现现代 NLP,包括诸如命名实体识别和情感分析等功能。

Elastic Stack 目前支持符合标准 BERT 模型接口并使用 WordPiece 词汇切分算法的转换器模型。

下面是目前与 Elastic 兼容的架构

  • BERT
  • BART
  • DPR 双编码器
  • DistilBERT
  • ELECTRA
  • MobileBERT
  • RoBERTa
  • RetriBERT
  • MPNet
  • 采用上述转换器架构的 SentenceTransformers 双编码器

Elastic 能够让您利用 NLP 提取信息、对文本分类,并针对您的业务提高搜索相关性。借助 Elastic 开始使用 NLP