掌握NLTK:Python自然语言处理库中级教程

简介: 在之前的初级教程中,我们已经了解了NLTK(Natural Language Toolkit)的基本用法,如进行文本分词、词性标注和停用词移除等。在本篇中级教程中,我们将进一步探索NLTK的更多功能,包括词干提取、词形还原、n-gram模型以及词云的绘制。

在之前的初级教程中,我们已经了解了NLTK(Natural Language Toolkit)的基本用法,如进行文本分词、词性标注和停用词移除等。在本篇中级教程中,我们将进一步探索NLTK的更多功能,包括词干提取、词形还原、n-gram模型以及词云的绘制。

一、词干提取

词干提取是一种将词语简化为其基本形式或词干的过程。例如,“running”、“runner”和“ran”的词干可能都是“run”。在NLTK中,我们可以使用Porter词干提取器进行词干提取:

from nltk.stem import PorterStemmer
from nltk.tokenize import word_tokenize

ps = PorterStemmer()

words = ["run", "runner", "running", "ran"]
for w in words:
    print(ps.stem(w))

二、词形还原

与词干提取相似,词形还原也是简化词语的一种方式,但它保留的是词语的词形,而不仅仅是词干。在NLTK中,我们可以使用WordNet词形还原器进行词形还原:

from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()

print(lemmatizer.lemmatize("running"))
print(lemmatizer.lemmatize("ran", pos='v'))

三、n-gram模型

n-gram是一种语言模型,用于预测下一个词的可能性。n-gram模型基于统计的方法,考虑前n-1个词来预测下一个词。在NLTK中,我们可以使用ngrams函数来生成n-gram:

from nltk import ngrams
from nltk.tokenize import word_tokenize

sentence = "I love to play football"
n = 2
grams = ngrams(word_tokenize(sentence), n)
for gram in grams:
    print(gram)

四、绘制词云

词云是一种可视化技术,用于表示文本数据中词的频率。在NLTK中,虽然没有直接提供绘制词云的函数,但我们可以结合wordcloud库来创建词云:

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "NLTK is a leading platform for building Python programs to work with human language data."
stop_words = set(stopwords.words('english'))

words = word_tokenize(text)
words = [word for word in words if word not in stop_words]

wordcloud = WordCloud().generate(' '.join(words))

plt.imshow(wordcloud)
plt.axis("off")
plt.show()

以上,我们介绍了NLTK库中的一些中级功能,包括词干提取、词形还原、n-gram模型和词云的绘制等。然而,NLTK还有更多高级的功能和特性,如情感分析、语义角色标注等,值得我们进一步探索和学习。

相关文章
|
6月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1341 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
6月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
522 0
|
5月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
533 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
5月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
473 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
6月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
917 19
|
5月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
242 1
|
7月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
477 18
|
7月前
|
机器学习/深度学习 API 异构计算
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
JAX是Google开发的高性能数值计算库,旨在解决NumPy在现代计算需求下的局限性。它不仅兼容NumPy的API,还引入了自动微分、GPU/TPU加速和即时编译(JIT)等关键功能,显著提升了计算效率。JAX适用于机器学习、科学模拟等需要大规模计算和梯度优化的场景,为Python在高性能计算领域开辟了新路径。
715 0
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
|
6月前
|
数据采集 存储 JSON
使用Python获取1688商品详情的教程
本教程介绍如何使用Python爬取1688商品详情信息,涵盖环境配置、代码编写、数据处理及合法合规注意事项,助你快速掌握商品数据抓取与保存技巧。
|
7月前
|
并行计算 算法 Java
Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
Python解释器不止CPython,还包括PyPy、MicroPython、GraalVM等,各具特色,适用于不同场景。本文深入解析Python解释器的工作原理、内存管理机制、GIL限制及其优化策略,并介绍性能调优工具链及未来发展方向,助力开发者提升Python应用性能。
449 0

推荐镜像

更多