自然语言处理入门到进阶:从零开始的实践教程
开篇:自然语言处理是什么?

想象一下,你和一个机器人聊天,它不仅听懂你在说什么,还能理解你的情绪、回答你的问题,甚至写出一篇小作文。这就是**自然语言处理(Natural Language Processing,简称 NLP)**的力量。
NLP 是人工智能的一个分支,专门研究“如何让计算机理解和生成人类语言”。它可以应用于:
- 智能客服(比如淘宝客服机器人)
- 语音助手(如 Siri、小爱同学)
- 舆情分析(判断一条评论是正面还是负面)
- 翻译工具(Google翻译、百度翻译)
- 内容生成(AI写新闻、AI写诗歌)
本篇文章将带你一步步从零基础学会基本的 NLP 技术,并完成一个实用的小项目。
第一步:环境准备

安装 Python 和 Jupyter Notebook
自然语言处理最常用的编程语言是 Python,所以我们先准备好开发环境。
- 下载安装 Python 3.9+(建议使用最新版本)
- 打开终端(Windows 是 cmd 或 PowerShell,Mac 是 Terminal),输入以下命令检查是否安装成功:
python --version
输出应该是类似 Python 3.10.6 这样的内容。
- 安装 Jupyter Notebook,它是用于运行 Python 代码的友好工具:
pip install jupyter
- 启动 Jupyter:
jupyter notebook
会自动打开浏览器窗口,你可以新建一个 .ipynb 文件开始写代码了!
第二步:学习核心概念与实践示例

我们用具体的例子来解释 NLP 的核心概念,每个概念都会搭配一行简单的 Python 示例代码。
1. 分词(Tokenization)
什么是分词?
就像我们说话要一个个词语组合起来一样,机器也需要把一段文字拆分成一个一个词,才能进一步分析。
例如:
"我喜欢自然语言处理"
→ ["我", "喜欢", "自然语言", "处理"]
Python 实践:使用 jieba 库进行中文分词
安装 jieba:
pip install jieba
代码:
import jieba
text = "我非常喜欢自然语言处理技术,因为它非常有趣!"
tokens = jieba.lcut(text)
print(tokens)
输出:
['我', '非常', '喜欢', '自然语言', '处理', '技术', ',', '因为', '它', '非常', '有趣', '!']
2. 去停用词(Stopwords Removal)
什么是停用词?
有些词虽然出现频率高,但对理解语义没有太大帮助,例如 “的”、“了”、“啊”、“吗”。
我们可以把这些词去掉,只保留有用的信息。
代码实践:加载并去除停用词
假设我们有一个停用词文件 stopwords.txt,里面每一行是一个停用词。
# 加载停用词表
with open("stopwords.txt", "r") as f:
stopwords = [line.strip() for line in f]
filtered_tokens = [token for token in tokens if token not in stopwords]
print(filtered_tokens)
3. 词频统计(Term Frequency)
为什么做词频统计?
看看哪几个词在文章中出现最多,有助于理解主题。
from collections import Counter
word_counts = Counter(filtered_tokens)
print(word_counts.most_common(5)) # 显示前5个高频词
输出可能是:
[('自然语言', 1), ('处理', 1), ('技术', 1), ('有趣', 1)]
如果数据量更大,这个词频图就更有意义了!
4. 文本向量化(Text Vectorization)
为什么需要文本向量化?
计算机只能处理数字,不能直接理解“自然语言处理”这几个字,所以我们要把它转换成“向量”,也就是一串数字。
常见的方法有:
- One-Hot 编码
- TF-IDF
- Word2Vec / GloVe
- BERT
这里介绍一种简单的方法:TF-IDF,即考虑词频和逆文档频率,适合用于分类任务。
代码示例:使用 sklearn 的 TfidfVectorizer
pip install scikit-learn
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
"我喜欢自然语言处理",
"自然语言处理非常有用",
"深度学习也是很有用的技术"
]
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
print(X.toarray()) # 查看向量结果
print(vectorizer.get_feature_names_out()) # 查看词向量对应哪些词
5. 文本分类(Text Classification)
什么是文本分类?
就是给一段话打标签。例如:“这部电影真好看” → 标签为“好评”。
下面我们将做一个情感分析器:判断一句评论是积极还是消极。
数据集准备
可以找一些公开的中文情感数据集,比如:
- ChnSentiCorp:包含商品评论,每条评论都有“好评”或“差评”标签
我们先模拟两条训练数据:
train_texts = [
"这个手机真的很好用,值得购买!", # 正面
"太失望了,根本不耐用,不推荐!", # 负面
"界面清晰,操作流畅,电池也不错", # 正面
"质量一般,客服态度也不好" # 负面
]
train_labels = [1, 0, 1, 0] # 1代表正面,0代表负面
使用逻辑回归进行训练
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
model = make_pipeline(TfidfVectorizer(), LogisticRegression())
model.fit(train_texts, train_labels)
# 测试新句子
test_text = ["这手机太贵了,性能还一般"]
pred = model.predict(test_text)
print("预测结果:", pred[0]) # 输出 0 表示负面
第三步:实战项目——构建一个简易影评情感分析器
接下来我们动手做一个完整的项目:识别用户影评的情感倾向
项目目标
让用户输入一句话,程序判断这句话是好评还是差评。
步骤分解
- 准备数据(可手动构造也可以下载开源数据集)
- 文本预处理(分词 + 去停用词)
- 构建模型(TF-IDF + 分类算法)
- 部署成一个可以输入的接口(终端输入测试)
完整代码如下:
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
# Step 1: 准备数据
texts = [
"剧情紧凑,演员演技很棒,很值得一看",
"画面精美,配乐感人,五星推荐",
"故事拖沓,节奏慢得让人犯困",
"演员演得假,情节老套,浪费时间"
]
labels = [1, 1, 0, 0]
# Step 2: 中文分词预处理
def preprocess(text):
return " ".join(jieba.lcut(text))
processed_texts = [preprocess(t) for t in texts]
# Step 3: 训练模型
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(processed_texts)
model = LogisticRegression()
model.fit(X, labels)
# Step 4: 用户输入测试
while True:
user_input = input("请输入你的影评(输入 q 退出):")
if user_input == "q":
break
processed_input = preprocess(user_input)
X_test = vectorizer.transform([processed_input])
prediction = model.predict(X_test)[0]
sentiment = "好评 ✅" if prediction == 1 else "差评 ❌"
print("情感分析结果:", sentiment)
你可以试着运行一下,感受一下自己的 AI 情感分析器!
第四步:新手常见问题 FAQ
Q1:中文分词为什么有的词分错了?
A:中文没有空格分隔,不同分词库规则不同。推荐使用更专业的库如 LTP, THULAC, 或使用深度学习模型如 BERT 来提高准确性。
Q2:有没有更好的分类模型?
A:是的!可以尝试使用深度学习模型如 BERT、TextCNN、RNN,效果更好,但计算资源要求更高。
Q3:我不会写代码,能学 NLP 吗?
A:当然可以!本教程就是一个例子,只要你想学、多练习,就能慢慢掌握。
Q4:哪里找训练数据?
A:推荐平台有:
- 百度 AI Studio
- 天池实验室
- Kaggle(需科学上网)
- Github 上搜索关键词如 "Chinese Sentiment Dataset"
第五步:下一步学习建议
恭喜你完成了 NLP 入门的学习路径!现在你可以继续深入学习以下方向:
| 方向 | 内容 | 推荐资料 |
|---|---|---|
| 进阶文本表示 | Word2Vec、GloVe、FastText | 《深度学习》花书第六章 |
| 深度学习方法 | RNN、LSTM、Transformer、BERT | HuggingFace 教程 |
| 工具包学习 | spaCy、NLTK、transformers、StanfordNLP | 官方文档 + B站视频 |
| 实战项目 | 对话系统、问答系统、摘要生成 | GitHub 上搜索关键词 |
| 框架使用 | PyTorch / TensorFlow | 官网 + 动手学系列 |
结语:坚持就是进步的关键
自然语言处理是一门充满挑战又极具魅力的技术。从今天开始,你可以每天花一点时间写几行代码、读一小段论文、跑一个小模型,你会发现自己的能力飞速提升!
记住一句话:
“最好的学习方式,是动手去做。”
如果你觉得这篇文章对你有帮助,欢迎收藏、转发、点赞!我们下次继续一起玩转 AI 😊

评论 0