发布时间:2022-6-3 分类: 行业资讯
为了更好地理解语音交互,您必须了解其背后的技术知识。国庆节花了几天大致阅读宗成清的《统计自然语言处理》,主要是关于语言互动的最关键部分,即自然语言处理。为了自我组合,我总结了这本书和吴钧的《数学之美》并将其整理成了所需要的儿童鞋。
这篇文章分为四个部分,比较长,技术性,可能是丑陋的,但是…。坚持下去
一,语音交互的系统构成
二,语音交互面临的困难
三,自然语言处理的关键技术
四,具体场景语音交互实现的技术原理
一,语音交互的构成
语音交互通常由三个模块组成:
语音识别ASR(自动语音识别),主要工作是将声音信息转换为文本。
自然语言处理(NLP),主要工作是了解人们想要表达的内容并给出合理的反馈。
TTS(文本到语音),主要工作是将文本转换为声音
《统计自然语言处理》提供了更加详细和完整的人机对话系统结构,包括以下六个技术模块:
1,语音识别模块(speech recognizer)
用户输入语音到文本识别转换,识别结果通常以顶部n(n≥ 1)句子或具有最高分数的单词格子的形式输出。 (将用户说出的语音转换为文本)
2,语言解析模块 (language parser)
分析并理解语音识别结果以获得给定输入的内部表示。 (即,将用户变为机器可以理解的语言)
3,问题求解模块(problem resolving)
根据语言分析器的分析结果,解决了问题的推理或查询,解决了用户问题的答案。 (即解决用户问题的模块,如百度搜索调用)
4,对话管理模块(dialogue management)
它是系统的核心。理想的对话管理器应该能够根据对话的历史来调度人机交互机制。辅助语言解析器可以正确理解语音识别结果,帮助解决问题,并指导语言生成过程。可以说对话管理机制是人机对话系统的中心枢纽。 (能够记录历史对话数据,并通过培训为用户提供更好的答案)
5,语言生成模块(language generator)
根据解析模块获得的内部表示,在对话管理机制的作用下生成自然语言句子。 (将答案的语言恢复为口语)
6,语音合成模块(speech synthesizer)
将生成模块生成的句子转换为语音输出。 (将口语重新转换为语音)
二,语音交互的面临的困难
以下图片是关于这个问题的。为什么Siri理解我的话,或者无法做出有效的答案或准确的操作?语音交互的最佳示例是语义理解,即对用户的准确理解。对话的目的。 Siri可以很好地识别声音,也就是说,我可以知道用户说:“我会在明天早上9点向公司预订出租车,但我无法理解你谈话的目的。是否需要设置约会提醒日历?提前预订出租车。
Siri无法理解用户的原因是:1。原始会话有多重含义。在原来的谈话中,滴滴出租车是Siri的一种未知语言。 (当时,内置系统没有停靠和掉线)
因此,语音交互最终需要解决的关键问题是消歧和处理未知语言现象的问题。
考虑到这一背景,我们可以理解为什么在与Siri交谈或设计语音交互功能时他们无法有效回应。下一个是关于如何进行语义理解。
三,自然语言处理的关键技术
如何让机器明白“明天上午9点帮我预定出租车到公司”,这句话,就像一个2岁的孩子,它可能理解却无法理解,那么我们不是第一个教她的这句话是这样的:
“明天/早上/9点/帮派/我/预约/出租车/去/公司” — —也就是说,中文分词
然后教她说“明天上午9点/帮助我/打车/去公司”— —即句法结构
然后告诉她“替代品”不是约会提醒,即语义分析
最后,我刚才说我会帮助我在明天上午9点预定一辆出租车去公司。但我现在不需要它。 &mquoash;是一个转折点,即章节分析
1,中文分词
单词是对话的最小单元,因此理解句子的前提是能够知道对话中使用了哪些单词。
例如:“上海大学城书店在哪里?”,需要分为“上海/大学城/书店/在/何处”,而不是:“上海大学/城市/书店/在/何处”
以下是《数学之美》吴军的统一分词方法,他说直接比较好,只需截图。
不同应用程序的分段粒度不同。早期的Google分词使用了Basic Technology的通用分词设备。分词结果未针对搜索进行优化。后来,分词系统专门为搜索而设计和实现。
2, 句法分析(syntactic parsing)
本文的解释是句法分析是自然语言处理的关键技术之一。基本任务是确定句子的句法结构。事实上,简单来说,我的理解是中文分词是将一个句子分成word1,word2,word3,然后句法分析是将一个句子分成主语,谓语,宾语和hellip;
通过句法分析,可以更快地理解句子。例如,在理解英语会话时,虽然有些形容词不理解,但在找到动词和主语或宾语后,我们可以大致知道这句话的意思。
基于概率(或随机无上下文语法,PCFG或SCFG)的短语结构分析方法可以说是目前最成功的语法驱动的统计解析方法,如果感兴趣可以深入理解。
3,语义分析
语义分析主要是词义消歧和语义角色标注。
词消歧的意义主要是因为多义词这个词很常见。例如,英语中的单词bank的含义可以是“bank”,也可以是“river bank”,这是根据上下文自动排除歧义的需要。 。
例如,“ldquo;带我去北方的银行“到底是去北岸还是去北岸。
词义消歧方法分为监督消歧方法和无监督消歧方法。在监督的消歧方法中,可以根据训练数据知道多义词的不同上下文与特定词义之间的对应关系。然后,一旦确定了上下文,多义词的词义识别问题实际上就是词的上下文分类问题。它所属的类别也决定了该词的含义类型。
在无监督的词义消歧中,由于训练数据未被标记,因此如果词的上下文出现在多个等价类中,则首先必须使用聚类算法对同一多义词的所有上下文执行等价类划分。然后,这个词被认为是一个多义词。然后,在单词意义识别中,将单词的上下文与对应于每个单词含义的上下文的等价类进行比较,并且通过确定上下文对应的等价类来确定单词的语义。
4,篇章分析
本章通常用英语“话语”,这意味着中文经常有章节,话语或话语。章节分析的最终目标是将章节理解为一个整体。最重要的任务之一是分析章节结构。
在对话过程中,我们很少有长篇故事,但在多轮对话中,整个对话实际上是一个章节。所以你需要了解每个句子或章节的结构。
例如:“帮我在明天早上7点设置一个闹钟”“算了,太早了,帮我改成8点“然后通过了解这两个句子的结构,我们知道我们需要在7点之前取消闹钟并设置一个8点闹钟。”/p>
四,人机对话系统的实现技术
以下是《统计自然语言处理》中引入的口语分析方法——基于规则和HMM统计分析方法,文章并未说明这是人机对话系统的标准实现技术,而且这种做法存在一定的缺陷。我们只需要理解这种基于词法分类和语义块分析的机器可以理解的对话分析机制。
基于规则和HMM的统计口语解析方法是
词汇分类模块对词汇表的词义进行分类,即将句子中的每个词映射到相应的词汇类别。语义块解析器从对应于句子的词义类序列中分析语义块,并且块解析器输出语义块序列。统计分析模块从语义块序列分析句子IF表示的主框架。语义块解释模块将每个语义块解释为对应的IF表达片段。在上述两部分组合之后,获得最终的IF(交换格式)表达式(C语言,国际语音翻译研究协会,以促进多语言翻译,采用称为中间转换格式的语义表示)。
1,IF表达式格式:
扬声器:言语行为[+概念] * [(参数=值[参数=值] *)]
示例:我想明天预订一个房间。
IF:c:给予信息+预订+房间(房间规格=(房型=单,数量=1),预订规格=(时间=(相对时间=明天)))
IF的含义是:说话者是“c”,句子的意图是提供信息,主题概念是“预订房间”,关于“房间”的具体信息是由“设定值”设定的。描述:房型为单(单),数量(数量)为1; “预约”具体要求通过“相对时间(相对时间)”,此参数说明,参数值取“明天(明天)”。
2.词汇分类
根据词汇的语义功能,每个词被分成不同的类。分类基于句子中词汇的语义功能。具有相同语义功能的词汇被分类为一个类别。例如,“单人间”和“双人间”属于同一语义类; “大”和“ld”;小“rdquo;虽然单词的含义不同,但句子中的语义功能是相同的,因此它们也被分类为一个类别。
3,语义组块分析
根据语义块的具体含义,语义块被语义分类。例如,所有时间表达,“明天”,“后天”,“星期一”,“三天后”等都归因于时间序列语义块,记录为TIME;表达的类型,例如“单人间”,“双人间”,“单人间”,“出售房间”等,归因于房间类语义块,记录为ROOM_TYPE。
4,统计解析过程
手动标记一定数量的语料库。对于语料库中的每个句子,首先对其进行语义块分析,得到与句子对应的块序列,然后给出句子的IF语义表示,最后线性化IF语义表示,并与语义块序列对齐。 。使用这些语料库来训练模型的参数,获得统计分析模型。
对于需要解析的句子,首先在语义上进行分析,获得与句子对应的语义块序列,然后使用语义块序列作为统计分析模型的输入。分析模型的输出是输入句子的线性化。 IF框架之后。
5,组块解释方法
在语义块分析中,可以通过规则方法获得语义块,也可以获得语义块内的层次结构。但是,这种层次结构不是我们需要的IF表示。因此,我们设计了语义块。解释模块,将此层次结构转换为IF表示。语义块解释模块与块分析模块一起工作。块分析过程中使用的每个规则对应于规则解释方法。这些解释方法可用于将规则中涉及的术语解释为相应的IF。说过。可以通过循环调用与所生成的语义块的每个规则相对应的解释子例程来获得与语义块相对应的IF分层表示。
6,IF的生成
从以上描述可以看出,基于HMM的解析模块的输出和语义块解释的结果仅是IF的片段,并且只有它们的组合才能获得完整的IF表示。语义块解释模块将每个语义块转换为IF片段,并且每个语义块由统计解析模块解析,并且对应于标签符号,并且标签符号最终用作IF表示中的节点。当合并每个块时,IF生成器使用语义块解释结果作为节点的子节点,并将简化的概念文件序列恢复为原始概念序列,从而获得IF表示。
在这一点上,这篇文章已经完成,谢谢和洒。并推荐这本宗成清书《统计自然语言处理》。