共计 1846 个字符,预计需要花费 5 分钟才能阅读完成。
在自然语言处理(NLP)领域,关键词提取是文本分析的重要步骤之一。今天,我们将实战演练如何使用 Python 的 jieba 库,快速高效地提取中文文章的关键词。不仅适合初学者上手,也适合用在你后续的舆情分析、新闻聚类、搜索推荐等项目中。
✨关键词提取的用途
- 搜索引擎 :提取页面关键词进行索引优化。
- 舆情分析 :从海量评论或文章中挖掘热词。
- 内容推荐 :根据关键词做文本相似度计算。
- 自动摘要 :辅助摘要生成。
🧠 Jieba 是什么?
jieba 是 Python 中最知名的中文分词库之一,支持三种分词模式、关键词提取、词性标注、TF-IDF 和 TextRank 算法。
🛠 环境准备
确保你已安装 jieba 库。若未安装,可执行:
pip install jieba
📄 示例中文文章内容(可替换为任意文本)
text = """
人工智能正在以惊人的速度发展,尤其在自然语言处理领域取得了巨大的突破。从 ChatGPT 这样的对话机器人,到机器翻译、情感分析,AI 正渗透到我们生活的方方面面。然而,随着技术的进步,也带来了隐私泄露、数据滥用等问题,引发了社会各界的关注与讨论。"""
🧪 实战代码:使用 TF-IDF 提取关键词
import jieba.analyse
# 示例文本
text = """
人工智能正在以惊人的速度发展,尤其在自然语言处理领域取得了巨大的突破。从 ChatGPT 这样的对话机器人,到机器翻译、情感分析,AI 正渗透到我们生活的方方面面。然而,随着技术的进步,也带来了隐私泄露、数据滥用等问题,引发了社会各界的关注与讨论。"""
# 提取关键词(默认使用 TF-IDF 算法)keywords = jieba.analyse.extract_tags(text, topK=10, withWeight=True)
print("提取的关键词:")
for word, weight in keywords:
print(f"{word}: {weight:.4f}")
📌 输出示例:
提取的关键词:人工智能: 1.8723
自然语言: 1.5123
处理: 1.2312
隐私泄露: 1.2134
ChatGPT: 1.1023
情感分析: 1.0132
数据滥用: 0.9871
对话机器人: 0.9564
突破: 0.8653
技术: 0.8342
🔁 使用 TextRank 算法提取关键词(基于图模型)
# 使用 TextRank 算法提取关键词
keywords_textrank = jieba.analyse.textrank(text, topK=10, withWeight=True)
print("TextRank 提取的关键词:")
for word, weight in keywords_textrank:
print(f"{word}: {weight:.4f}")
📌 TextRank 更适合处理短文本,结果可能不同于 TF-IDF,但对于无语料训练的场景更友好。
🎨 可视化关键词:生成词云图
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 只取关键词
words = ' '.join([word for word, _ in keywords])
wc = WordCloud(font_path='simhei.ttf', width=800, height=400, background_color='white').generate(words)
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.title('关键词词云图')
plt.show()
📚 实战技巧
| 技巧 | 说明 |
|---|---|
| 自定义词典 | 可以用 jieba.load_userdict("mydict.txt") 增强识别新词 |
| withWeight | 返回权重,有助于排序和可视化 |
| topK | 控制提取关键词数量,建议 5~20 |
✅ 总结
通过本文,你已经掌握了如何用 jieba 快速从中文文章中提取关键词,并能结合可视化工具如词云图进一步分析文本内容。这是 NLP 项目中的常用技能之一,非常适合用于数据挖掘、推荐系统和情感分析等场景。
📁 附:完整源码项目结构建议
jieba_keywords_demo/
├── main.py # 主程序
├── simhei.ttf # 中文字体文件
├── mydict.txt # 可选自定义词典
├── sample_text.txt # 示例文章
└── wordcloud.png # 自动生成词云图
如果你觉得这篇文章对你有帮助,欢迎点赞、收藏和分享,也可以留言你的使用场景或者遇到的关键词识别问题,我们一起交流进步!
正文完