AI知识篇
什么是自然语言处理NLP
让机器"听懂"人话
NLP(Natural Language Processing,自然语言处理) 是人工智能的一个分支,目标是让计算机能够理解、生成和处理人类的语言。
💡 类比:NLP 就像给计算机装了一个"翻译器",把人类的语言翻译成机器能理解的数字,再把机器的计算结果翻译回人类能读的文字。
加载图表中...
NLP 能做什么?
加载图表中...
| 应用 | 说明 | 代表产品 |
|---|---|---|
| 智能对话 | 理解问题并回答 | ChatGPT、Claude |
| 机器翻译 | 不同语言互译 | Google翻译、DeepL |
| 情感分析 | 判断文字的情绪倾向 | 电商评论分析 |
| 文本摘要 | 自动生成长文摘要 | AI总结工具 |
| 代码生成 | 根据描述生成代码 | GitHub Copilot |
| 语音助手 | 语音转文字再理解 | Siri、小爱同学 |
NLP 的核心任务
1. 分词(Tokenization)
把一句话拆成一个个"词"或"标记":
"我喜欢学习编程"
↓ 分词
["我", "喜欢", "学习", "编程"]
"I love programming"
↓ 分词
["I", "love", "programming"]
现代大语言模型使用的分词方式更复杂,会把词拆成更小的"子词"(subword)。
2. 词向量(Word Embedding)
把文字转换成数字(向量),让计算机能"计算"语义:
加载图表中...
有趣的是,向量之间可以做"语义运算":
国王 - 男人 + 女人 ≈ 王后
巴黎 - 法国 + 中国 ≈ 北京
3. 语义理解
理解文字背后的含义和意图:
| 用户输入 | NLP 理解 |
|---|---|
| "帮我订一张明天去上海的机票" | 意图=订票,时间=明天,目的地=上海 |
| "这个产品太差了" | 情感=负面,对象=产品 |
| "Python 和 JavaScript 哪个好?" | 意图=比较,对象=两种编程语言 |
4. 文本生成
根据理解的语义,生成连贯、有意义的文字——这就是 ChatGPT 在做的事情。
加载图表中...
NLP 的发展历程
加载图表中...
| 时代 | 方法 | 局限 |
|---|---|---|
| 规则时代 | 人工编写语法规则 | 规则有限,无法覆盖所有情况 |
| 统计时代 | 从数据中学习概率 | 需要大量标注数据 |
| 深度学习 | 神经网络自动学习 | 需要针对每个任务训练 |
| 大语言模型 | 一个模型处理所有任务 | 当前主流 ✅ |
NLP 与 AI 编程的关系
作为开发者,你不需要从零实现 NLP,而是调用现成的 AI API:
// 使用 OpenAI API 进行 NLP 任务
// 1. 文本生成
const completion = await openai.chat.completions.create({
model: "gpt-4",
messages: [{ role: "user", content: "用JavaScript写一个排序函数" }],
});
// 2. 文本分类(情感分析)
const result = await openai.chat.completions.create({
model: "gpt-4",
messages: [{
role: "user",
content: "判断以下评论的情感(正面/负面):'这个产品质量很好,很满意'"
}],
});
// 3. 文本向量化(用于语义搜索)
const embedding = await openai.embeddings.create({
model: "text-embedding-3-small",
input: "NLP是人工智能的一个分支",
});
加载图表中...
🎯 AI编程小贴士:你不需要理解 NLP 的所有数学原理。作为开发者,学会调用 AI API就足够了。告诉 AI"帮我用 OpenAI API 实现一个智能客服",它会帮你从接口调用到前端界面全部搞定。
小结
- NLP 让计算机能理解和生成人类语言
- 核心步骤:分词 → 向量化 → 语义理解 → 文本生成
- ChatGPT、Claude 等都是 NLP 的最新成果(大语言模型)
- 开发者主要通过调用 API 来使用 NLP 能力
- NLP 的应用包括对话、翻译、搜索、代码生成等