什么是Natural Language Understanding(NLU)?

本文介绍了自然语言理解(NLU),它能让机器理解文本,进行文本分类等任务。常见应用有机器翻译、银行任务等。其实现方式历经基于规则、统计、深度学习3次迭代。不过,NLU实现存在语言多样性、歧义性、鲁棒性、知识依赖和上下文等难点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是NLU?

自然语言理解(Natural Language Understanding, NLU)是所有支持机器理解文本内容的方法模型或任务的总称,即能够进行常见的文本分类、序列标注、信息抽取等任务。

简单来说,是指自然语言理解的运用希望机器人能够像人一样,具备正常的语言理解能力

例如,意图识别和实体提取的关键技能。当人类语言中表达“订机票”,可以有多种自然的表达:“看一下去上海的航班;帮我查一下去北京的机票;看看航班,下周二出发去纽约的”等等。 但机器智能处理“结构化的数据”(关键词提炼捕捉信息),需要文字信息中包含有提前设定好的关键词“订机票”,否则系统无法识别语言的含义。不过,自然语言理解出现后,可以让机器从各种自然语言的表达中区分出哪些话归属于一类,而不再依赖过于死板的关键词。通过训练,机器还能够在句子当中自动提取出目的地或出发时间等。

2.NLU的应用有哪些?

常见的有机器翻译、机器客服或智能音响等。

此外,商业银行在数字化转型中,非结构化数据逐渐成为了商业银行支撑业务发展的新引擎。因而,在语音识别(ASR)、光学字符识别(OCR)技术的加持推动下,业务对非结构化文本、语音、图片的内容挖掘需求日益增长,要求也越来越高。通过运用NLP技术即可使银行相关任务实施落地,如财产证明要素提取、智能语音分流、简历分析等,辅助提升银行服务能力,实现降本增效。

例如下图所示,用户通过手机银行上传收入证明、征信报告等待审核材料,通过OCR、NLP关键信息抽取模型服务,精准提取用户上传的财产证明中姓名、收入、资产等关键信息要素,在线实时返回审核结果,秒速告知客户财产证明材料中存在的问题,方便客户自主审核而无需排队等候,从而进一步优化人工成本,降低合规风险,提升业务审批效率。

在这里插入图片描述

3.NLU的实现方式有哪些?

自然语言理解跟整个人工智能的发展历史类似,一共经历了3次迭代:

1. 基于规则的方法: 通过总结规律来判断然语的意图,常的法有:CFG、JSGF等。

2. 基于统计的方法: 随后出现了基于统计学的 NLU 方式,常见的方法有:SVM、ME等。

3. 基于深度学习的方法: 随着深度学习的爆发,CNN、RNN、LSTM 都成为了最新的"统治者"。2019年,以自注意力机制(Transformer)为基础的BERT 和 GPT-2 的表现震惊了业界,甚至在不少任务上超越了人类水准。

4.NLU实现的难点

1. 语言的多样性: 由于自然语言的组合方式十分灵活,字、词、短语、句子、段落等都有不同的组合可以表达出多层含义,例如:我要听首《xxxx》;放一首《xxxx》;唱一首《xxxx》;播放《xxxx》

2. 语言的歧义性: 当不联系上下文理解语句,缺少文本环境的约束,语言就会产生较大的歧义性,例如:识别到单句文本【我要去拉萨】NLU则可能会理解出“需要火车票?需要飞机票?想听音乐?还是想查找景点?”

3.语言的鲁棒性: 自然语言在输入的过程中,尤其是通过语音识别获得的文本,会存在多字、少字、错字、噪音等问题。例如:“我想吃面包;我想吃面;我想吃面条”

4.语言的知识依赖: 语言的本质是对世界的符号化描述,语言天然链接着世界知识,例如:“7天”——可以表示时间,也可以表示酒店名;“大鸭梨”——除了表示水果,还可以表示餐厅名。

5. 语言的上下文: 上下文的概念包括很多种:对话的上下文、设备的上下文、应用的上下文、用户画像等。例如:

U:买张火车票

A:请问你要去哪里?

U:宁夏

U:来首歌听

A:请问你想听什么歌?

U:宁夏
### NLU置换算法的介绍 自然语言理解(Natural Language Understanding, NLU)中的置换算法通常涉及对输入语句的不同部分进行重新排列或替换,以便更好地捕获语义信息或增强模型的泛化能力。这类算法的核心目标是对输入数据进行变换,使模型能够在不同场景下表现出更强的鲁棒性和适应性。 #### 置换算法的原理 置换算法的主要思想是在保持句子整体意义不变的前提下,通过对词序或其他语法成分进行调整,生成多样化的训练样本。这种方法有助于减少模型对特定输入形式的过度拟合,提升其在实际应用中的表现。例如,在某些情况下,可以通过随机打乱词语的位置或将同义词代入原句来增加训练集的多样性[^1]。 #### 实现方式 以下是几种常见的NLU置换算法实现方法: 1. **词序重排** 这种技术允许在一定范围内交换相邻单词的位置,或者完全随机化整个句子的顺序。为了防止破坏句子的意义,可以仅限于短语内部的操作。例如,“我喜欢吃苹果”可能变为“苹果我吃喜欢”。尽管这样的例子看起来不自然,但在控制范围内的轻微扰动仍能保留大部分含义[^4]。 2. **同义词替代** 使用外部资源如WordNet查找给定词汇的近义词,并将其嵌入到原始文本中。此过程需注意上下文约束以免造成歧义。“快速跑向终点”的“快速”可以用“飞速”代替形成新的表达:“飞速跑向终点”。 3. **子句重组** 将复杂的复合句拆解成简单句后再组合起来构成新版本叙述内容。比如把“虽然天气很冷但是我们还是出去玩了”转换为“天气很冷但我们依然外出游玩。” 4. **模板驱动法** 预先定义好若干模式框架然后填充具体实例完成多样化构建工作流程。假设存在这样一个通用格式——“主体+动作+对象”,那么针对不同的参数值就可以得到诸如“他买了本书。”、“她做了一顿饭。”之类的结果集合出来供后续学习阶段调用之便[^5]。 ```python import random from nltk.corpus import wordnet as wn def synonym_replacement(sentence): words = sentence.split() new_words = [] for word in words: synonyms = set([syn.name().split('.')[0] for syn in wn.synsets(word)]) if len(synonyms) > 0 and not any(char.isdigit() for char in word): # Exclude numbers chosen_synonym = random.choice(list(synonyms)) new_words.append(chosen_synonym) else: new_words.append(word) return ' '.join(new_words) example_sentence = "The cat sat on the mat." print(f"Original Sentence: {example_sentence}") modified_sentence = synonym_replacement(example_sentence) print(f"Modified Sentence with Synonym Replacement: {modified_sentence}") ``` 上述代码片段展示了如何利用Python库`nltk`中的WordNet工具包执行简单的同义词替换操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北下关吴中生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值