当前位置: 首页 > news >正文

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

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

一、词干提取

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

from nltk.stem import PorterStemmer
from nltk.tokenize import word_tokenizeps = PorterStemmer()words = ["run", "runner", "running", "ran"]
for w in words:print(ps.stem(w))

二、词形还原

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

from nltk.stem import WordNetLemmatizerlemmatizer = 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_tokenizesentence = "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 plttext = "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还有更多高级的功能和特性,如情感分析、语义角色标注等,值得我们进一步探索和学习。

相关文章:

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

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

Go语言的崛起:探究越来越多公司选择Go语言的原因和优势

🌷🍁 博主猫头虎 带您 Go to Golang Language.✨✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1…...

MongoDB 6.0.8 安装配置

一、前言 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 将数据存储为一个文档,数据结构由键值(key>value…...

无涯教程-Lua - nested语句函数

Lua编程语言允许在另一个循环中使用一个循环。以下部分显示了一些示例来说明这一概念。 nested loops - 语法 Lua中嵌套for循环语句的语法如下- for init,max/min value, increment dofor init,max/min value, incrementdostatement(s)endstatement(s) end Lua编程语言中的…...

如何使用vue ui创建一个项目?

首先打开cmd 输入vue ui 等待浏览器打开一个窗口,按照下图操作 在"功能页面"中,各个插件代表以下意思: Babel:Babel是一个JavaScript编译器,用于将ES6代码转换为向后兼容的JavaScript版本,以确保…...

STM32——LED内容补充(寄存器点灯及反转的原理)

文章目录 点灯流程开时钟配置IO关灯操作灯反转宏定义最后给自己说 本篇文章使用的是STM32F103xC系列的芯片,四个led灯在PE2,PE3,PE4,PE5上连接 点灯流程 1.开时钟 2.配置IO口 (1)清零指定寄存器位 (2)设置模式为推挽输…...

使用Spring Boot和EasyExcel的导入导出

在当今信息化社会,数据的导入和导出在各种业务场景中变得越来越重要。为了满足复杂的导入导出需求,结合Java编程语言、Spring Boot框架以及EasyExcel库,我们可以轻松地构建出强大而灵活的数据处理系统。本文将引导您通过一个案例学习如何使用…...

【H5移动端】常用的移动端方案合集-键盘呼起、全面屏适配、图片大小显示、300ms点击延迟、首屏优化(不定期补充~)

文章目录 前言键盘呼起问题靠近底部的输入项被键盘遮挡底部按钮被顶上去 全面屏适配图片大小显示问题解决300ms延迟首屏优化 前言 这篇文章总结了我在工作中做H5遇到的一些问题,包括我是怎么解决的。可能不是当下的最优解,但是能保证解决问题。 单位适…...

迭代器模式——遍历聚合对象中的元素

1、简介 1.1、概述 在软件开发时,经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。…...

亿赛通电子文档安全管理系统远程命令执行

人这一生,不是看你贫穷和富有,而是看你都做了些啥。 漏洞描述 亿赛通电子文档安全管理系统存在远程命令执行漏洞,攻击者通过构造特定的请求可执行任意命令 漏洞复现: 访问url: 构造payload请求 POST /solr/flow/d…...

多雷达探测论文阅读笔记:雷达学报 2023, 多雷达协同探测技术研究进展:认知跟踪与资源调度算法

多雷达协同探测技术 原始笔记链接:https://mp.weixin.qq.com/s?__biz=Mzg4MjgxMjgyMg==&mid=2247486627&idx=1&sn=f32c31bfea98b85f2105254a4e64d210&chksm=cf51be5af826374c706f3c9dcd5392e0ed2a5fb31ab20924b7dd38e1b1ae32abe9a48afa8174#rd ↑ \uparrow …...

【Redis】——AOF持久化

什么是AOF日志 AOF日志是redis为数据的持久化提供了的一个技术,日志里面记录着执行redis写命令。每当redis执行一条写命令的时候,就会将该命令记录 到AOF日志当中。当redis启动的时候,可以加载AOF日志中的所有指令,并执行这些指令恢复所有的…...

Keil MDK环境下FreeModebus移植踩坑记录

Keil MDK环境下FreeModebus移植踩坑记录 文章目录 Keil MDK环境下FreeModebus移植踩坑记录armcc (arm compiler v5)环境实验一:实验二: armclang (arm compiler v6)环境实验一:实验二:实验三:实验四 总结 armcc (arm c…...

计算机视觉的延伸整理

计算机视觉是一门涉及数字图像处理、模式识别和机器学习等技术的交叉学科,旨在将计算机技术应用于对视觉信息的理解和处理。其主要研究内容包括图像和视频处理、目标检测和跟踪、三维重建、人脸识别、自动驾驶等。计算机视觉已经被广泛应用于医学影像分析、安防监控…...

通过Idea部署Tomcat服务器(详细图文教学)

1.在idea中创建项目 有maven构建工具就创建maven,没有就正常创建一个普通的java程序 创建普通java项目 2.添加框架 3.配置 Tomcat 注意:创建web项目后我们需要配置tomcat才能运行,下面我们来进行配置。 4.添加部署 回到服务器 5.完善配置 6…...

Window版本ES(ElasticSearch)的安装,使用,启动

首先我这里是根据小破站狂神说up主,而学习的,下面是笔记文档,文档可能比我更细,但我还是记录一下,嘿嘿嘿 ElasticSearch7.6入门学习笔记-KuangStudy-文章 下面直接开始,首先我们需要下载ELK三个安装包&…...

网络面试题-UDPTCP

1 UDP 1.1 ⾯向报⽂ UDP 是⼀个⾯向报⽂(报⽂可以理解为⼀段段的数据)的协议。意思就是UDP 只是报⽂的搬运⼯,不会对报⽂进⾏任何拆分和拼接操作 具体来说 在发送端,应⽤层将数据传递给传输层的 UDP 协议, UDP 只会…...

在CSDN学Golang场景化解决方案(即时通讯goim)

一,支持单个、多个、广播消息推送 在goim中,用户可以通过维护长连接实现即时通讯功能,通过路由算法将消息发送给指定的客户端或群组。具体而言,goim支持以下三种方式进行消息推送: 单个推送:向某一个指定客…...

chrome插件开发实例02-使用content_scripts对用户浏览页面操作

目录 引言 chrome插件 插件演示 源代码 manifest.json content_scripts.js css设置(放在css文件夹下)<...

【Python目标识别】Labelimg标记深度学习(YOLO)样本

人工智能、ai、深度学习已经火了很长一段时间了&#xff0c;但是还有很多小伙伴没有接触到这个行业&#xff0c;但大家应该多多少少听过&#xff0c;网上有些兼职就是拿电脑拉拉框、数据标注啥的&#xff0c;其实这就是在标记样本&#xff0c;供计算机去学习。所以今天跟大家分…...

Spring Boot 与 GraalVM 原生镜像 2026:极致性能优化

Spring Boot 与 GraalVM 原生镜像 2026&#xff1a;极致性能优化 今天我们来聊聊 Spring Boot 与 GraalVM 原生镜像&#xff0c;这是实现 Java 应用极致性能优化的重要技术。 一、什么是 GraalVM 原生镜像 GraalVM 原生镜像&#xff08;Native Image&#xff09;是一种提前编译…...

嵌入式开发工具链实战指南与效率提升

1. 嵌入式开发工具全景概览在嵌入式系统开发领域&#xff0c;工程师们每天都要面对交叉编译、调试、性能分析等重复性工作。经过十五年的一线开发实践&#xff0c;我整理出一套能显著提升效率的工具组合&#xff0c;这些工具覆盖了从芯片选型到产品发布的完整生命周期。不同于网…...

为什么顶尖金融科技公司集体弃用React转向Blazor?——2026真实项目ROI对比:开发效率↑41%,首屏加载↓68%,运维成本↓53%

第一章&#xff1a;为什么顶尖金融科技公司集体弃用React转向Blazor&#xff1f;——2026真实项目ROI对比&#xff1a;开发效率↑41%&#xff0c;首屏加载↓68%&#xff0c;运维成本↓53%过去两年&#xff0c;高盛、摩根士丹利、PayPal风控平台与新加坡星展银行核心交易看板等1…...

Token热潮下的低价骗局:数据安全谁来守护?

Token火爆背后&#xff1a;低价商品的疯狂蔓延2026年&#xff0c;Token成为科技圈热词&#xff0c;截至3月&#xff0c;我国日均词元调用量超140万亿&#xff0c;较2024年初增长1000多倍。‘龙虾’的火爆让Token走进大众视野&#xff0c;电商平台上低价Token商品随处可见&#…...

Boost搜索引擎:正倒排索引实战解析

基于正倒排索引的Boost搜索引擎项目日志、Server代码及详解在本项目中&#xff0c;我们构建了一个高效的搜索引擎&#xff0c;使用正排索引和倒排索引技术&#xff0c;基于C和Boost库实现。正排索引存储文档ID到文档内容的映射&#xff0c;便于快速检索文档内容&#xff1b;倒排…...

AI 时代:祛魅、适应与重新定义磐

指令替换 项目需求&#xff1a;将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一&#xff0c;测试代码示例 test.c // test.c #includ…...

如何用Tweepy构建强大的Twitter数据分析报告:5个高级搜索聚合技巧

如何用Tweepy构建强大的Twitter数据分析报告&#xff1a;5个高级搜索聚合技巧 【免费下载链接】tweepy Twitter for Python! 项目地址: https://gitcode.com/gh_mirrors/tw/tweepy Tweepy是Python中最流行的Twitter API客户端库&#xff0c;让开发者能够轻松访问Twitter…...

学Simulink——基于Simulink的坡道起步防溜坡电机转矩控制

目录 手把手教你学Simulink ——基于Simulink的坡道起步防溜坡电机转矩控制 一、问题背景 二、系统架构与控制逻辑 1. 控制层级 2. 防溜坡转矩需求 三、无传感器坡度估计方法 方法:基于加速度计 + 车速微分 Simulink 实现 四、防溜坡转矩控制器设计 1. 基础转矩规划…...

【Loom生产环境禁用清单】:这7个Spring Boot自动配置项正在 silently 杀死你的虚拟线程吞吐量

第一章&#xff1a;Java 25虚拟线程在高并发架构下的性能本质洞察Java 25正式将虚拟线程&#xff08;Virtual Threads&#xff09;从预览特性转为标准特性&#xff0c;标志着JVM并发模型的一次范式跃迁。其性能本质不在于单线程执行速度的提升&#xff0c;而在于**线程生命周期…...

2025届必备的AI学术网站解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于内容创作里&#xff0c;要是过度去依赖AIGC&#xff0c;那么便兴许会致使文本欠缺人性化的…...