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