- Objective: - Breadcrumb: 自然语言处理 ![](https://image.harryrou.wiki/2024-11-27-CleanShot%202024-11-27%20at%2016.42.28%402x.png) # 概念阐释 自然语言处理(Natural Language Processing)是人工智能与语言学的跨学科子领域,主要探讨的是计算机如何**处理自然语言**。 - 自然语言**理解**:指的是计算机如何将自然语言变成有意义的符号和关系,包括语义、上下文关系、意图的分析和理解。如何让计算机理解自然语言是 AI 科学家一直在寻找的答案。 - 自然语言**处理**:如何处理自然语言,涉及的概念有[[tokenization]]、模型训练。 - 自然语言**生成**:指的是计算机如何把数据转换成自然语言,涉及的概念有[[生成式 AI]]、[[自回归生成模型]]。 # 实例 - **最早的自然语言处理** - [[ELIZA]] - **传统的自然语言处理** - [[siri]] - [[Google assistant]] - **ChatGPT 为代表的[[LLM 大语言模型]]** - [[ChatGPT]] - [[Gemini]] # 相关内容 ## Siri、Google Assistant 与 ChatGPT 的本质区别 #### **1. 技术架构** - **Siri 和 Google Assistant**:主要基于==规则驱动(rule-based system)==,结合机器学习和云端 NLP 技术,核心仍是任务导向(task-oriented)。 - **ChatGPT(大语言模型,如 GPT-4)**:基于深度学习和神经网络,采用 Transformer 结构,核心是基于概率预测下一个 token 的生成式 AI。 #### **2. 交互方式** - **Siri 和 Google Assistant**: - 以**意图识别**(Intent Recognition)为核心,用户输入触发特定的操作(如“明天的天气如何?”→ 调用天气 API)。 - 主要用于**短对话**和**任务型**操作(如“给妈妈打电话”)。 - 预设规则较多,超出范围的问题可能无法回答。 - **ChatGPT**: - 以**上下文理解**和**自由生成文本**为核心,不依赖预设规则,而是根据大量数据训练出的模式来生成答案。 - 适用于**开放式对话**,能生成连贯的长文本。 - 可以进行创意写作、代码生成、文本翻译等任务。 - siri+ChatGPT,siri 回答不了的,则调用 ChatGPT。 #### **3. 任务适用性** - **Siri 和 Google Assistant**: - 适用于**设备控制、日程安排、智能家居控制、基本问答**等场景。 - 在设备生态系统中表现更好,能直接执行指令(如“打开灯”)。 - 任务完成方式较固定,依赖 API 调用,灵活性有限。 - **ChatGPT**: - 适用于**深入的文本理解、内容生成、逻辑推理**等任务。 - 没有直接的 API 调用能力(除非结合插件或 API)。 - 不能主动控制设备(不像 Siri 可直接调整系统设置)。 #### **4. 离线 vs. 在线** - **Siri**:部分功能可以离线运行(如 iOS 15 之后的本地 Siri 处理)。 - **Google Assistant**:大部分操作依赖云端,部分命令可以本地处理(如 Pixel 手机上的离线语音识别)。 - **ChatGPT**:完全基于云端,需要服务器计算资源来生成答案。 ### **总结** |特性|Siri|Google Assistant|ChatGPT| |---|---|---|---| |主要用途|任务执行(拨号、导航、提醒等)|智能搜索、任务执行、智能家居控制|自然语言对话、创意写作、代码生成| |交互方式|语音指令 + 规则匹配|语音指令 + 机器学习|生成式文本对话| |任务导向|任务型(Task-Oriented)|任务型(Task-Oriented)+ 搜索|开放式(Open-Domain)| |设备控制|深度集成 Apple 生态|深度集成 Google 生态|无设备控制能力| |自然语言处理|有限的上下文理解|上下文理解较好|深度上下文理解| |自由对话能力|弱|较强,但仍有限制|极强| ### **结论** - 如果你想要**控制设备**、管理日程或获取快捷信息,Siri 和 Google Assistant 更合适。 - 如果你想要进行**开放性对话**、获得**深度信息**或进行**文本创作**,ChatGPT 更强大。 - **未来发展趋势**: - Siri 和 Google Assistant 正在向大语言模型方向演进(例如 Google Bard)。 - ChatGPT 可能会结合 API 和设备控制,提供更完整的智能助手体验。 ## 自然语言处理的发展历史 - 1940 年,艾伦·图灵发表“计算机与智能”,提出图灵测试作为测试计算机智力的标准 ### 符号NLP1950-1990初 - 1950 年,John Searle 的中文房间:一套编制好的规则(一本中文短语手册,带有问题和匹配的答案),计算机基于这些规则来进行字眼语言理解; - 1950 年,Georgetown experiment,将 60 多个俄语句子自动翻译成俄语; - 1960 年,[[SHRDLU]] 积木世界和 ELIZA心理咨询师模拟; - 1970 年,许多程序员开始将现实世界的信息编写为计算机可理解的数据,这段时间里,第一个聊天机器人被编写出来 PARRY; - 1980 年-90 年初,符号NLP 的鼎盛时期 ### 统计NLP 1990-2010 语料库为核心,计算能力增强,带来了统计 NLP。统计方法的缺点是有复杂的==[[特征工程 Feature Engineering]]==。 - 1980 年后期,引入[[machine learning 机器学习]]算法,自然语言处理发生了一场革命。其中有 2 点原因 - 根据[[摩尔定律]]计算机能力的稳步增长; - 乔姆斯基语言学理论的地位减弱(语法转换,忽视了语料库的重要性); - 1990 - IBM 对其模型使用了加拿大会议和欧洲联盟编制的**多语言文本语料库**,让使用统计方法的机器翻译得到了显著的进步; - 2000 年,自互联网发展以来,越来越多的**无标记语言**数据开始可用,研究越来越集中到[[unsupervised learning 无监督学习]]和半监督学习上。 - 基于统计的方法,例如决策树,产生生硬的"if-then"规则,仍然和符号语言处理相似,后来将[[隐马尔科夫模型]]应用于词性标记才真正**结束了基于规则的方法**。 ### 神经NLP 2010-至今 - 2003,[[MLP 多层感知器]]超越了当时最好的统计算法n-gram。(单个隐藏层和多个单词的上下文) - 2010 年,托马斯·米科洛夫(捷克计算机科学家)将单个隐藏层的[[RNN 循环神经网络]]用于语言建模。 - 2010 年,托马斯·米科洛夫深度神经网络(许多隐藏层)的机器学习方法在自然语言处理中变得普遍。 - 2015年,神经网络取代了统计方法,使用[[语义网络]]的神经网络和[[词嵌入]]來捕获词的语义属性。 - Google基于深度学习的机器翻译 [[seq2seq]],使得以前的统计机器翻译中所必须的中间步骤变得过时。 - [[LLM 大语言模型#^061b01| LLM历史]] ## NLP的应用 ### 文本和语音处理 - 光学学符识别 OCR(Optical character recognition):将给定图像上的文本识别出来。 - 语音识别,语音分割是语言识别的必要子任务,但是人类说话时,单词之间几乎没有任何停顿,所以这项技术的研究是非常困难的。 - 文字转语音 - [[tokenization]]标记化 ### 更高级别的NLP应用 - 机器翻译 - 自然语言理解 - [[文本到图像生成]] - [[文本到视频生成]] - 自然语言生成 # 参考资料 - [自然语言处理 - 维基百科cn](https://zh.wikipedia.org/wiki/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86) - [自然语言处理 - 维基百科en](https://en.wikipedia.org/wiki/Natural_language_processing#Higher-level_NLP_applications) - [NLP 研究-GPT](https://chatgpt.com/share/b245863b-45e8-4b80-b66e-384b49d117e6) - 《自然语言处理》p8