Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Natural Language Understanding (NLU)

自然语言理解 (NLU) 是 NLP 的一个分支,从文本中提取含义、意图和实体,应用于语音助手和搜索等场景。

自然语言理解(NLU)是自然语言处理(NLP)中负责理解文本含义的部分:作者想要什么、提到了哪些事物,以及当词语有多种解释时应该采用哪一种。NLU 系统会将“明天 7 点订一张两人桌”转换成结构化请求,其中包含类似 reserve_table 的意图,以及人数、时间和日期等槽位,供软件执行。虚拟助手、客户服务聊天机器人和搜索引擎都会先对每个请求执行 NLU,再决定采取什么行动或给出什么答复。

理解语言为何困难#

相同的词语在各个层面都可能有不同含义。“Bank”可以指银行,也可以指河岸;“我用望远镜看到了那个男人”没有说明是谁拿着望远镜;而在“奖杯放不进棕色手提箱,因为它太大了”中,“它”指奖杯,但把“太大”改成“太小”后,“它”就指手提箱。Hector Levesque 于 2011 年提出了这类 Winograd 模式,作为机器理解能力的测试,因为要解决这些问题,需要运用关于世界的知识,而不是词语统计。Terry Winograd 的 SHRDLU(1968-1970)等早期基于规则的系统,只能在规则完整描述的积木模拟世界中理解输入的命令。

NLU 核心任务#

  • 意图分类: 将请求归入应用的一种目标,例如查询余额或冻结银行卡。
  • 命名实体识别(NER): 找出请求中提到的人物、地点、产品、日期和金额,助手会用这些信息填充意图的槽位。
  • 语义解析: 将句子映射为程序可以执行的形式化表示,例如数据库查询或 API 调用。
  • 共指消解: 将代词和其他指称与它们所指的实体关联起来。
  • 自然语言推理: 判断一个句子是否蕴含另一个句子、与之矛盾,或与之无关。
  • 情感分析: 识别文本表达的观点。

助手通常使用经过微调的Transformer编码器对意图进行分类。句子编码器还可以通过单样本方式(每种意图仅使用一个示例)对意图分类:选择示例含义与请求最接近的意图:

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")

# One labeled example per intent, as an assistant's training data would provide
intents = {
    "check_balance": "What is my account balance?",
    "block_card": "Please freeze my debit card",
    "transfer_money": "Send money to another account",
}
utterances = ["my card was stolen", "how much cash do I have left", "pay Alex back 20 dollars"]

# Assign each utterance the intent whose example is closest in meaning
scores = model.similarity(model.encode(utterances), model.encode(list(intents.values())))
for text, row in zip(utterances, scores):
    best = int(row.argmax())
    print(f"{text!r} -> {list(intents)[best]} ({row[best]:.2f})")

三个请求都得到了正确的意图:block_card(0.42)、check_balance(0.49)和 transfer_money(0.28)。“我还剩多少钱”和“借给 Alex 的 20 美元还了”与各自的意图示例没有任何共同词语,因此匹配依据是嵌入,而非关键词。转账请求的得分为 0.28,高于其他意图的 0.17;Rasa 等框架会将最高分低于置信度阈值的请求交给后备流程,要求用户换一种说法。

基准测试与模型#

GLUE(2018)将九项句子和句对任务(包括情感分析、改述检测和自然语言推理)合并为一个分数;BERT于 2018 年将该分数提高到 80.5。其难度更高的后续基准 SuperGLUE(2019)加入了 Winograd 式共指任务;2021 年 1 月,Microsoft 的 DeBERTa 和 Google 的 T5 + Meena 得分都超过了 89.8 的人类基线。高分可能源自捷径学习:Suchin Gururangan 和同事于 2018 年证明,只读取每个推理句对中的第二个句子,分类器就能正确标注约 67% 的 SNLI 数据集,因为否定词等线索与“矛盾”标签相关。大型语言模型(LLM)现在可以根据提示执行大多数 NLU 任务;在延迟和每次请求成本很重要的场景中,小型编码器模型仍很常见。

搜索与视觉中的 NLU#

语义搜索将 NLU 应用于查询,根据查询的含义而非确切措辞进行匹配;向量搜索则能在数百万条目中快速完成这一操作。当文本和图像共享嵌入空间时,同样的思路也适用于跨模态场景,例如 CLIP。Ultralytics Platform Explore 页面的 Images 选项卡会接收“沙发上的猫”之类的场景描述,并根据图像内容从公共数据集中返回图像,而不依赖文件名或标签。

  • NLP: 使用计算机处理人类语言的整个领域。NLU 负责理解输入,自然语言生成(NLG)负责撰写输出。
  • 语音识别: 将语音音频转换为文本,再由 NLU 理解转录内容。
  • 光学字符识别(OCR): 从文本图像中提取字符,再由 NLU 理解其含义。
  • 问答: 回答自然语言问题,这要求 NLU 理解问题和用于回答问题的文本。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来