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 的应用包括对话、翻译、搜索、代码生成等