jieba中文分词模块,详细使用教程
jieba中文分词模块,详细使用教程
- **✅ 1. 安装 jieba**
- **✅ 2. 基本使用**
- **2.1 精确模式(最常用)**
- **2.2 全模式(会把所有可能的词都列出来)**
- **2.3 搜索引擎模式**
- **✅ 3. 处理文件**
- **✅ 4. 添加自定义词典**
- **4.1 添加新词**
- **4.2 词频调整**
- **4.3 加载自定义词典**
- **✅ 5. 词性标注(jieba.posseg)**
- **✅ 6. 关键词提取**
- **6.1 TF-IDF 提取关键词**
- **6.2 TextRank 提取关键词**
- **🔥 总结**
jieba
是 Python 中文分词的
神器,可以用来对中文文本进行
精确分词、全模式分词、搜索引擎分词 等。
✅ 1. 安装 jieba
如果你还没安装:
pip install jieba
✅ 2. 基本使用
2.1 精确模式(最常用)
适用于文本分析、NLP任务:
import jieba
text = "我爱自然语言处理"
words = jieba.lcut(text) # 精确分词
print(words)
输出
['我', '爱', '自然语言处理']
2.2 全模式(会把所有可能的词都列出来)
适用于搜索引擎、关键词提取:
jieba.lcut("我爱自然语言处理", cut_all=True)
输出
['我', '爱', '自然', '自然语言', '自然语言处理', '语言', '语言处理', '处理']
🚀 优点:可以发现所有可能的词组
⚠️ 缺点:会产生很多冗余的词,通常不用于 NLP 任务
2.3 搜索引擎模式
适用于 搜索引擎索引:
jieba.lcut_for_search("小明硕士毕业于中国科学院计算技术研究所")
输出
['小明', '硕士', '毕业', '于', '中国', '中国科学院', '科学院', '计算', '计算技术', '计算技术研究所', '技术', '研究所']
🚀 特点:会把长词拆分成多个短词,方便搜索引擎检索。
✅ 3. 处理文件
如果你要对整篇文章进行分词:
with open("article.txt", "r", encoding="utf-8") as f:
text = f.read()
words = jieba.lcut(text)
print(" ".join(words)) # 用空格连接分词结果
适用于:
- 处理新闻、论文、小说等文本
- 数据预处理(如 Word2Vec)
✅ 4. 添加自定义词典
默认 jieba 可能会漏掉专业术语,需要自己添加词汇!
4.1 添加新词
jieba.add_word("深度学习")
jieba.add_word("自然语言处理")
4.2 词频调整
jieba.suggest_freq("自然语言", tune=True)
适用于 纠正错误的分词,例如 “自然语言” 被切成 “自然” 和 “语言”。
4.3 加载自定义词典
如果有大量术语(比如医学、金融、游戏术语),建议用自定义词典:
jieba.load_userdict("my_dict.txt")
my_dict.txt
内容示例:
深度学习 10
机器学习 5
自然语言处理 8
格式:
- 词语(必填)
- 词频(可选)
- 词性(可选)
✅ 5. 词性标注(jieba.posseg)
jieba.posseg
可以给每个词添加 词性(如名词、动词、形容词):
import jieba.posseg as pseg
words = pseg.lcut("我爱自然语言处理")
for word, flag in words:
print(f"{word} ({flag})")
输出
我 (r) 爱 (v) 自然语言处理 (n)
常见词性
n
→ 名词v
→ 动词adj
→ 形容词r
→ 代词m
→ 数量词
✅ 6. 关键词提取
6.1 TF-IDF 提取关键词
import jieba.analyse
text = "人工智能是计算机科学的一个分支,它使机器能够模仿人类的智能行为。"
keywords = jieba.analyse.extract_tags(text, topK=3, withWeight=True)
for word, weight in keywords:
print(f"{word}: {weight}")
输出
人工智能: 0.572
计算机科学: 0.482
机器: 0.367
6.2 TextRank 提取关键词
jieba.analyse.textrank(text, topK=3, withWeight=True)
区别
- TF-IDF 适用于短文本(新闻、微博)
- TextRank 适用于长文本(论文、小说)
🔥 总结
功能 | jieba 代码 |
---|---|
精确分词 | jieba.lcut(text) |
全模式分词 | jieba.lcut(text, cut_all=True) |
搜索引擎模式 | jieba.lcut_for_search(text) |
添加自定义词 | jieba.add_word("自然语言处理") |
词性标注 | pseg.lcut(text) |
TF-IDF 关键词提取 | jieba.analyse.extract_tags(text, topK=3) |
TextRank 关键词提取 | jieba.analyse.textrank(text, topK=3) |