【初识AI】(一):ASR和NLP

参考自:《景联文科技:一文看懂语音识别ASR过程》
    什么是自然语言处理(NLP)?

一、语音识别ASR过程

1.1 什么是ASR?

ASR是指自动语音识别技术,是一种将人的语音转换为文本的技术。其目标就是将人类的语言中的词汇内容转换为计算机可读的输入。

1.2 语音识别ASR过程

建立声学模型

第一步是建立声学模型。声学模型的主流系统大多采用隐马尔科夫模型进行建模。对于同一个词,由于每个人的发音、语调、语速等都各不相同,为了能让机器识别出更多的人,声学模型建立过程中需要录入大量的原始用户声音,提取出其中的特征进行处理,并建立声学模型数据库。在声学训练步骤当中估算出声学模型的参数;再通过循环训练和对齐相位。在这一步中大数据的重要性就体现出来了。

建立语言模型

第二步是建立语言模型。语言模型包括由识别语音命令构成的语法网络或者由统计方法构成的语言模型。根据语言的客观事实,进行语言抽象数学建模,这是一种对应关系。语言模型可以很好地调整声学模型所得到的不合逻辑的词,使得识别结果变得通顺且正确,这对于自然语音的信息处理也有着重要的意义。

语音识别

第三步是进行语音识别。前面两步都是需要预先做好的,最终形成的数据库将存储在设备本地或者云端,而这一步则是实时的语音识别过程。先将用户的语音输入进行编码和特征提取,再将提取到的特征拿到声学模型库中去匹配,得到单个的单词,然后再拿到语言模型库中去查询,就可以得到最匹配的词了。
在这里插入图片描述

1.3 数据标注对ASR的重要性

ASR的本质是一种模式识别系统,包括了特征提取、模式匹配、参考模式等三个基本单元。特征提取运用到属性分类的标注方法,首先要对输入的语音进行预处理,然后提取出语音的特征,在此基础上建立语音识别所需要用到的模板,再将计算机中原先存放的语音模板与输入的语音信号的特征进行比较,找出最佳的与输入语音相匹配的模板,根据此模板的定义,通过查表,就能得到计算机的最佳识别结果。这种最佳的结果与特征的选择、语音模型的好坏、模板是否准确都有着直接的关系,需要大量标注数据进行不断训练才能得到。

二、自然语言处理(NLP)

2.1 自然语言处理(NLP)的定义

自然语言处理(NLP)是人工智能的一个分支,它使计算机能够像人类一样理解、处理和生成语言。搜索引擎、机器翻译以及语音助理均由该技术提供支持。

虽然这一术语最初指的是人工智能系统的阅读能力,但现在已经成为所有计算语言学的一种通俗说法。其子类别包括自然语言生成(NLG)(计算机自行创建通信的能力)和自然语言理解(NLU)(理解俚语、发音错误、拼写错误和语言其他变体的能力)。

2.2 自然语言处理(NLP)的工作原理

自然语言处理(NLP)通过机器学习进行工作。机器学习系统像其他任何形式的数据一样存储单词及其组合方式。短语、句子、有时甚至整本书的内容都被输入机器学习引擎,并在其中使用语法规则或人们的现实语言习惯,或两者兼而有之进行处理。然后,计算机使用这些数据来查找模式并推断出接下来的结果。以翻译软件为例:在法语中,“我要去公园”是“Je vais au parc”,因此机器学习预测“我要去商店”也将以“Je vais au”开头。

2.3 NLP是如何工作的?

本质上,NLP是通过将一组文本信息转换成指定的输出数据来工作的。

如果应用程序是机器翻译,那么输入的文本信息将是源语言(比如英语)的文档,输出将是目标语言(比如法语)的翻译文档;如果应用程序是情感分析,则输出的是将输入文本分类转换为情感类别;诸如此类。

NLP工作流

现代NLP是一门融合了语言学、计算机科学和机器学习的混合学科。NLP使用的过程或工作流有以下三个主要步骤:

    1. 文本预处理
    1. 文本表示
    1. 分析和建模

每一步都可能使用一系列技术,这些技术随着研究的深入而不断发展。

第一步:文本预处理

首先准备输入文本,以便更容易地分析。这部分的NLP在借鉴了一系列传统语言方法的基础上,已经很好的建立起来了。

在这个步骤中使用的一些关键方法是:

标记法—— 将文本分解成有用的单位(标记),例如,使用空格分隔单词,或者使用句号分隔句子。标记法也能识别经常连在一起的单词,比如“New York”或“machine learning”。例如,将“Customer service couldn 't be better.”这句话进行标记,会产生以下标签:“Customer service”、“could”、“not”、“be”和“better”。

标准化—— 使用词干提取和词形还原等技术将单词转换为基本形式。这样做是为了帮助减少干扰和简化分析。词干分析通过删除后缀来识别单词的词干。例如,“研究”一词的词干是“studi”。类似地,词元化除去后缀,必要时也除去前缀,从而产生通常在自然语言中使用的单词。例如,“studies”一词真正的词形还原就是“study”。在大多数应用程序中,由于产生的单词在自然语言中有更多的意义,所以词形还原比词干提取更为可取。

词性标注(POS)—— 利用词法,或研究词与词之间的关系。单词(或标记)是根据它们在句子中的功能来标记的。这是通过使用文本语料库中的既定规则来识别单词在言语中的目的,即动词、名词、形容词等。

【初识AI】(一):ASR和NLP_第1张图片

句法分析—— 利用句法或分析单词和句子如何组合在一起,有助于理解句子的结构,并根据语法规则将句子分解成短语来实现。一个短语可以包含一个名词和一个冠词,比如“我的兔子”,或者一个动词,比如“喜欢吃胡萝卜”。

语义分析—— 是指句子中使用的词语的预期意义。单词可以有不止一种意思。例如,“pass”可以意味着(i)把某件物品交给别人,(ii)决定不参加某件事,或(iii)考试合格。通过观察目标词前后出现的单词,可以更好地理解目标词的意思。

第二步:文本表示

为了使用机器学习和深度学习方法分析文本,需要将文本转换为数字。这就是文本表示的目的。在此步骤中使用的一些关键方法包括:

①. 词袋模型

词袋模型(BoW)是描述文档中单词出现的文本的一种表示形式,它通过计算输入文档中每个单词与已知词汇的词汇表相比出现的次数来表示文本。

结果是一组向量,其中包含描述每个单词出现次数的数字。这些向量被称为“词袋”,因为它们不包含任何关于输入文档结构的信息。

为了说明BoW是如何工作的,请看示例“the cat sat on the mat”。其中包含“the”、“cat”、“sat”、“on”和“mat”等词。这些词的出现频率可以用形式为[2,1,1,1,1]的向量来表示。这里,单词“the”出现两次,其他单词出现一次。

与一个巨大的词汇表相比,向量将扩展为包含许多零。这是因为词汇表中没有包含在例句中的所有单词的频率都是零。结果向量可能包含大量的零,因此称为“稀疏向量”。

BoW简单易懂。然而,当词汇量很大时,生成的稀疏向量可能非常大。这会导致在计算上产生数量可观的包含无效信息的向量(例如,大部分都是零)。

此外,BoW查看的是单个单词,因此不会捕捉到任何组合词的相关信息。这会导致接下来分析文本时造成上下文丢失。

②. N元模型

使用BoW减少上下文丢失的一种方法是创建组合单词而不是单个单词的词汇表。这些分组的单词被称为“n-grams”,其中“n”是分组大小。由此产生的方法称为“N元模型”(BNG)。

该模型基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的2-grams和三元的3-grams。

BNG的优点是每个n-gram比单个单词能捕捉更多的上下文。

在前面的例句中,“sat on”和“the mat”是2-grams的例子,“on the mat”是3-grams的例子。

③. TF-IDF

计算单词在文档中出现的次数会出现一个问题,一些单词开始在计算中占据主导地位。

像“the”、“a”或“it”之类的词。这些词经常出现,但并不包含太多信息。

处理此种问题的一种方法是将文档中频繁出现的单词与唯一出现的单词区别对待。经常出现的词往往是像“The”这样的低值词。这些词的计数将被惩罚,以降低其支配地位。

这种方法被称为“词频-逆向文件频率”或TF-IDF。词频是指单词在给定文档中的出现频率,而逆文档频率则是指单词在所有文档中的出现频率。

TF-IDF方法的作用是淡化频繁出现的单词,并突出显示具有有用信息的更独特的单词,例如“cat”或“mat”。这样做可以带来更好的结果。

④. 词嵌入

【初识AI】(一):ASR和NLP_第2张图片

现有的机器学习方法往往无法直接处理文本数据,因此需要找到合适的方法,将文本数据转换为数值型数据,由此引出了Word Embedding的概念。

一种更复杂的文本表示方法涉及到词嵌入。它将每个单词映射到单独的向量,其中向量趋向于“密集”而不是“稀疏”(即更小,零更少)。在映射过程中,会考虑每个单词及其周围的单词。由此产生的密集向量可以帮助更好地分析比较单词和上下文。

词嵌入方法利用强大的机器学习和深度学习来完成映射。这是一个不断发展并且已经有了一些出色成果的的领域。目前使用的关键算法包括Word2Vec、GloVe和FastText。

步骤3:分析和建模

NLP过程的最后一步是对通过步骤1和步骤2生成的向量,利用机器学习和深度学习方法执行计算,以产生期望的结果。许多来自非NLP领域的相同的机器学习技术,例如图像识别或欺诈检测,可用于该分析。

考虑情感分析。可以使用有监督或无监督的机器学习来完成。有监督的机器学习需要预先标记的数据,而无监督的机器学习则使用预先准备好的词库对情感进行分类。

利用机器学习,用概率方法对输入文本向量进行分类。这可以通过一个训练模型(有监督的机器学习)或者通过与合适词库(无监督的机器学习)的比较来实现。

最后呈现的结果是基于机器学习过程中产生的概率的情绪分类。

你可能感兴趣的:(人工智能AI,人工智能,自然语言处理,语音识别)