什么是自然语言处理? 自然语言处理 (NLP) 是计算机程序理解人类语言的能力,因为它被说和写——称为自然语言。它是人工智能 ( AI )的组成部分。 NLP 已经存在了50多年,根植于语言学领域。它在医学研究、搜索引擎和商业智能等多个领域具有多种实际应用。 自然语言处理是如何工作的? NLP 使计算机能够像人类一样理解自然语言。无论语言是口头的还是书面的,自然语言处理都使用人工智能来获取真实世界的输入,对其进行处理,并以计算机可以理解的方式理解它。就像人类有不同的传感器——比如可以听到的耳朵和可以看到的眼睛——计算机也有可以阅读的程序和用于收集音频的麦克风。就像人类有大脑来处理输入一样,计算机也有一个程序来处理它们各自的输入。在处理的某个时刻,输入被转换为计算机可以理解的代码。 自然语言处理有两个主要阶段:数据预处理和算法开发。 数据预处理包括准备和“清理”文本数据,以便机器能够对其进行分析。预处理将数据置于可行的形式中,并突出显示算法可以处理的文本中的特征。有几种方法可以做到这一点,包括: 标记化。这是文本被分解成更小的单元来处理的时候。 停用词移动。这是从文本中删除常用词,以便保留提供有关文本的最多信息的唯一词。 词形还原和词干化。这是单词被简化为其根形式以进行处理的时候。 词性标注。这是根据词性(例如名词、动词和形容词)来标记单词的时候。 一旦数据经过预处理,就会开发一种算法来处理它。有许多不同的自然语言处理算法,但常用的主要有两种: 基于规则的系统。该系统使用精心设计的语言规则。这种方法很早就在自然语言处理的开发中使用,现在仍在使用。 基于机器学习的系统。机器学习算法使用统计方法。他们学习根据输入的训练数据执行任务,并在处理更多数据时调整他们的方法。自然语言处理算法结合机器学习、深度学习和神经网络,通过重复处理和学习来磨练自己的规则。 为什么自然语言处理很重要? 企业使用大量非结构化、大量文本的数据,需要一种有效处理这些数据的方法。许多在线创建并存储在数据库中的信息都是自然人类语言,直到最近,企业还无法有效地分析这些数据。这就是自然语言处理有用的地方。 当考虑以下两个陈述时,可以看出自然语言处理的优势:“云计算保险应该是每个服务级别协议的一部分”,以及“良好的SLA确保更轻松的夜间睡眠——即使在云中也是如此。” 如果用户依赖自然语言处理进行搜索,程序将识别出云计算是一个实体,云是云计算的缩写形式,SLA是服务级别协议的行业首字母缩写词。 这些是人类语言中经常出现的模糊元素类型,而机器学习算法在历史上一直不擅长解释。现在,随着深度学习和机器学习方法的改进,算法可以有效地解释它们。这些改进扩大了可以分析的数据的广度和深度。 自然语言处理技术与方法 语法和语义分析是用于自然语言处理的两种主要技术。句法是为了使句子具有语法意义而对句子中的单词进行排列。NLP 使用语法来评估基于语法规则的语言的含义。语法技术包括: 解析。这是一个句子的语法分析。示例:向自然语言处理算法输入句子“The dog barked”。解析涉及将这个句子分解成词类——即,dog = 名词,barked = 动词。这对于更复杂的下游处理任务很有用。 分词。这是获取一串文本并从中派生单词形式的行为。示例:一个人将手写文档扫描到计算机中。该算法将能够分析页面并识别单词被空格分隔。 断句。这会在大文本中放置句子边界。示例:向自然语言处理算法提供文本“狗吠。我醒了”。该算法可以使用断句识别分割句子的句点。 形态分割。这将单词分成更小的部分,称为词素。示例:单词 untestably 将被分解为 [[un[[test]able]]]ly],其中算法将“un”、“test”、“able”和“ly”识别为词素。这在机器翻译和语音识别中特别有用。 词干。这将带有屈折变化的单词划分为词根形式。示例:在句子“The dog barked”中,算法能够识别出“barked”这个词的词根是“bark”。如果用户正在分析单词 bark的所有实例及其所有变位的文本,这将很有用。即使字母不同,该算法也可以看出它们本质上是同一个词。 语义涉及单词背后的使用和含义。自然语言处理应用算法来理解句子的含义和结构。语义技术包括: 词义消歧。这会根据上下文得出单词的含义。示例:考虑句子“猪在围栏中”。笔这个词有不同的含义。使用这种方法的算法可以理解,这里使用的笔这个词是指一个围栏区域,而不是书写工具。 命名实体识别。这确定了可以分类的单词。示例:使用此方法的算法可以分析新闻文章并识别对某个公司或产品的所有提及。使用文本的语义,它将能够区分视觉上相同的实体。例如,在“Daniel McDonald的儿子去了麦当劳并点了一份 Happy Meal”这句话中,算法可以将“McDonald's”的两个实例识别为两个独立的实体——一个是餐厅,一个是一个人。 自然语言生成。这使用数据库来确定单词背后的语义并生成新文本。示例:算法可以自动编写来自商业智能平台的发现摘要,将某些单词和短语映射到 BI 平台中的数据特征。另一个例子是根据用于训练的特定文本正文自动生成新闻文章或推文。 当前的自然语言处理方法基于深度学习,这是一种人工智能,可以检查和使用数据中的模式来提高程序的理解力。深度学习模型需要大量标记数据供自然语言处理算法训练和识别相关相关性,而组装这种大数据集是自然语言处理的主要障碍之一。 早期的自然语言处理方法涉及更多基于规则的方法,其中更简单的机器学习算法被告知要在文本中查找哪些单词和短语,并在这些短语出现时给出特定的响应。但深度学习是一种更灵活、更直观的方法,算法可以从许多例子中学习识别说话者的意图——就像孩子学习人类语言一样。 自然语言处理常用的三种工具包括自然语言工具包 (NLTK)、Gensim 和英特尔自然语言处理架构师。NLTK 是一个带有数据集和教程的开源Python模块。Gensim 是一个用于主题建模和文档索引的 Python 库。英特尔 NLP Architect 是另一个用于深度学习拓扑和技术的 Python 库。 自然语言处理有什么用? 自然语言处理算法执行的一些主要功能是: 文本分类。这涉及为文本分配标签以将它们分类。这对于情感分析很有用,这有助于自然语言处理算法确定文本背后的情感或情感。例如,当 X 条文本中提到品牌 A 时,算法可以确定这些提及中有多少是正面的,有多少是负面的。它对于意图检测也很有用,这有助于根据说话者或作者所产生的文本来预测他们可能会做什么。 文本提取。这涉及自动总结文本和查找重要的数据。这方面的一个例子是关键字提取,它从文本中提取最重要的单词,这对于搜索引擎优化很有用。用自然语言处理来做这件事需要一些编程——它不是完全自动化的。然而,有很多简单的关键字提取工具可以自动化大部分过程——用户只需在程序中设置参数。例如,一个工具可能会提取文本中最常用的单词。另一个例子是命名实体识别,它从文本中提取人名、地名和其他实体的名称。 机器翻译。这是计算机在没有人工干预的情况下将文本从一种语言(例如英语)翻译成另一种语言(例如法语)的过程。 自然语言生成。这涉及使用自然语言处理算法来分析非结构化数据并根据该数据自动生成内容。这方面的一个例子是诸如GPT3之类的语言模型,它能够分析非结构化文本,然后根据文本生成可信的文章。 上面列出的函数用于各种实际应用,包括: 客户反馈分析——人工智能分析社交媒体评论; 客户服务自动化——客户服务电话线另一端的语音助手能够使用语音识别来理解客户在说什么,以便正确引导呼叫; 自动翻译——使用谷歌翻译、必应翻译和翻译我等工具; 学术研究和分析——人工智能能够分析大量学术材料和研究论文,不仅基于文本的元数据,而且基于文本本身; 医疗记录的分析和分类——人工智能使用洞察力来预测和预防疾病; 用于抄袭和校对的文字处理器——使用 Grammarly 和Microsoft Word 等工具; 股票预测和金融交易洞察——使用人工智能分析市场历史和10-K 文件,其中包含有关公司财务业绩的综合摘要; 人力资源人才招聘 日常诉讼任务的自动化——一个例子是人工智能律师。 自然语言处理的研究围绕着搜索,尤其是企业搜索。这涉及让用户以他们可能向另一个人提出的问题的形式查询数据集。机器解释人类语言句子的重要元素,这些元素对应于数据集中的特定特征,并返回答案。 NLP 可用于解释自由的非结构化文本并使其可分析。有大量信息存储在自由文本文件中,例如患者的医疗记录。在基于深度学习的 NLP 模型之前,计算机辅助分析无法访问这些信息,也无法以任何系统的方式进行分析。借助 NLP,分析师可以筛选大量自由文本以找到相关信息。 情绪分析是 NLP的另一个主要用例。使用情绪分析,数据科学家可以评估社交媒体上的评论,以了解其企业品牌的表现,或查看客户服务团队的笔记,以确定人们希望企业在哪些方面表现更好。 自然语言处理的好处 NLP的主要好处是它改进了人类和计算机相互交流的方式。操作计算机最直接的方法是通过代码——计算机的语言。通过使计算机能够理解人类语言,与计算机的交互对人类来说变得更加直观。 其他好处包括: 提高文件的准确性和效率; 能够自动对更大、更复杂的原始文本进行可读摘要; 通过使其能够理解口语,对 Alexa 等个人助理很有用; 使组织能够使用聊天机器人获得客户支持; 更容易进行情绪分析; 提供从分析中获得的高级见解,这些见解以前由于数据量而无法获得。 自然语言处理的挑战 自然语言处理存在许多挑战,其中大多数归结为自然语言不断发展并且总是有些模棱两可的事实。他们包括: 精确。计算机传统上要求人类以精确、明确和高度结构化的编程语言与它们“交谈”——或者通过数量有限的清晰发音的语音命令。然而,人类的语言并不总是准确的。它通常是模棱两可的,语言结构可能取决于许多复杂的变量,包括俚语、地方方言和社会背景。 语调和语调。自然语言处理尚未完善。例如,语义分析仍然是一个挑战。其他困难包括这样一个事实,即语言的抽象使用通常很难让程序理解。例如,自然语言处理不容易理解讽刺。这些主题通常需要理解对话中使用的单词及其上下文。作为另一个例子,一个句子可以根据说话者强调的单词或音节来改变含义。NLP 算法在执行语音识别时可能会遗漏人声中微妙但重要的音调变化。不同口音之间的语调和语调变化也可能不同,这对于算法的解析来说可能具有挑战性。 不断发展的语言使用。自然语言处理也面临着语言——以及人们使用它的方式——不断变化这一事实的挑战。尽管语言有规则,但没有一个是一成不变的,并且会随着时间的推移而变化。随着现实世界语言的特征随着时间的推移而变化,现在有效的硬计算规则可能会变得过时。 自然语言处理的演进 NLP 借鉴了各种学科,包括可追溯到20世纪中叶的计算机科学和计算语言学的发展。它的演变包括以下主要里程碑: 1950年代。自然语言处理起源于这十年,当时艾伦·图灵(Alan Turing)开发了图灵测试来确定计算机是否真正智能。该测试涉及自动解释和自然语言的生成作为智力标准。 1950年代至1990年代。NLP在很大程度上是基于规则的,使用语言学家开发的手工规则来确定计算机如何处理语言。 1990年代。自上而下、语言优先的自然语言处理方法被一种更具统计性的方法所取代,因为计算方面的进步使其成为开发 NLP 技术的一种更有效的方法。计算机变得越来越快,可以用来根据语言统计数据制定规则,而无需语言学家创建所有规则。在这十年中,数据驱动的自然语言处理成为主流。自然语言处理从基于语言学家的方法转变为基于工程师的方法,利用更广泛的科学学科,而不是深入研究语言学。 2000-2020年代。自然语言处理作为一个术语的受欢迎程度急剧增长。随着计算能力的进步,自然语言处理也获得了许多现实世界的应用。今天,NLP的方法涉及经典语言学和统计方法的结合。 自然语言处理在技术和人类与之交互的方式中起着至关重要的作用。它用于商业和消费者领域的许多实际应用程序,包括聊天机器人、网络安全、搜索引擎和大数据分析。尽管并非没有挑战,但 NLP 有望继续成为行业和日常生活的重要组成部分。 尽管存在疑问,但自然语言处理正在医学成像领域取得重大进展。了解放射科医生如何在实践中使用 AI 和NLP来审查他们的工作并比较案例。 |