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

Python 库 包 nltk (Natural Language Toolkit)

文章目录

    • 🧰 一、nltk 的主要功能
      • ✅ 文本处理功能
      • ✅ 内置语料库(Corpora)
    • 📦 二、安装与使用
      • 1. 安装 nltk
      • 2. 下载语料库(第一次使用时需要下载)
    • 🔍 三、常用功能示例
      • 示例 1:分词
      • 示例 2:词性标注
      • 示例 3:停用词过滤
      • 示例 4:词干提取(Stemming)
      • 示例 5:词形还原(Lemmatization)
    • 🎓 四、适用场景
    • 🆚 五、与其他 NLP 工具对比
    • 📚 六、推荐学习资源

nltkNatural Language Toolkit)是一个用于自然语言处理(NLP)的 Python 库,特别适合教学和研究。它提供了丰富的语料库、词典资源以及各种文本处理工具,非常适合初学者和研究人员使用。


🧰 一、nltk 的主要功能

✅ 文本处理功能

  • 分词(Tokenization)
  • 词形还原(Lemmatization)
  • 词干提取(Stemming)
  • 词性标注(POS Tagging)
  • 命名实体识别(NER)
  • 句法分析(Parsing)
  • 情感分析(Sentiment Analysis)

✅ 内置语料库(Corpora)

  • 含有几十种公开语料和词典(如布朗语料库、电影评论语料等)
  • 支持中文(但中文支持不如英文完善)

📦 二、安装与使用

1. 安装 nltk

pip install nltk

2. 下载语料库(第一次使用时需要下载)

import nltk
nltk.download()  # 会弹出图形界面,选择要下载的内容(建议全选或至少下载 popular)

也可以通过命令行指定下载:

nltk.download('punkt')        # 常用分词模块
nltk.download('averaged_perceptron_tagger')  # 词性标注器
nltk.download('wordnet')      # WordNet 词典
nltk.download('stopwords')    # 停用词列表

🔍 三、常用功能示例

示例 1:分词

from nltk.tokenize import word_tokenizetext = "Hello, I love NLP with NLTK!"
tokens = word_tokenize(text)
print(tokens)
# 输出: ['Hello', ',', 'I', 'love', 'NLP', 'with', 'NLTK', '!']

示例 2:词性标注

from nltk import pos_tagpos_tag(word_tokenize("I love natural language processing."))
# 输出: [('I', 'PRP'), ('love', 'VBP'), ('natural', 'JJ'), ...]

示例 3:停用词过滤

from nltk.corpus import stopwordsstop_words = set(stopwords.words('english'))
words = ["the", "hello", "and", "python"]
filtered_words = [w for w in words if w not in stop_words]
print(filtered_words)  # 输出: ['hello', 'python']

示例 4:词干提取(Stemming)

from nltk.stem import PorterStemmerps = PorterStemmer()
print(ps.stem("running"))  # 输出: run

示例 5:词形还原(Lemmatization)

from nltk.stem import WordNetLemmatizerlemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize("running", pos="v"))  # 输出: run

🎓 四、适用场景

应用使用方式
教学/学习 NLP提供了大量教材和练习
简单的文本分析如情感分析、关键词提取
构建小型 NLP 工具比如聊天机器人、词频统计
中文处理(有限)需要自定义分词器

⚠️ 注意:对于中文处理,nltk 不像 jieba 那样方便,需要自己加载语料和模型。


🆚 五、与其他 NLP 工具对比

工具特点优点缺点
nltk经典 NLP 工具包学习曲线低,文档丰富性能一般,不适合大规模生产
spaCy工业级 NLP 工具快速、准确、适合生产环境对中文支持较弱
jieba中文分词利器简单高效功能单一,仅限中文
transformers (HuggingFace)使用预训练模型(如 BERT)最先进的 NLP 模型资源消耗大

📚 六、推荐学习资源

  1. 官网:https://www.nltk.org
  2. 书籍《Natural Language Processing with Python》
    • 作者:Steven Bird, Ewan Klein, Edward Loper
    • 免费电子版可在网上找到
  3. YouTube 视频教程
    • 搜索 “NLTK tutorial” 即可找到很多入门视频
http://www.dtcms.com/a/263664.html

相关文章:

  • 类加载生命周期与内存区域详解
  • 【FR801xH】富芮坤FR801xH之UART
  • npm list的使用方法详细介绍
  • 基于 Three.js 与 WebGL 的商场全景 VR 导航系统源码级解析
  • python 操作 hive
  • vue | 插件 | 移动文件的插件 —— move-file-cli 插件 的安装与使用
  • RabbitMQ - SpringAMQP及Work模型
  • C++仿函数与谓词深度解析:函数对象的艺术
  • android apk签名
  • 文件系统之配置网络参数
  • SiFli 52 UART的RX唤醒MCU怎么做
  • 飞算 JavaAI:我的编程强力助推引擎
  • Vue Vue-route (3)
  • Web性能测试常用指标(转自百度AI)
  • PHP爬虫实战指南:获取淘宝商品详情
  • 飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式
  • 图神经网络(篇一)-GraphSage
  • CyclicBarrier(同步屏障)是什么?它的原理和用法是什么?
  • 新手向:从零开始Node.js超详细安装、配置与使用指南
  • Embeddings模型
  • 微服务介绍
  • Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
  • 【RTSP从零实践】4、使用RTP协议封装并传输AAC
  • 学习threejs,使用自定义GLSL 着色器,生成艺术作品
  • 电机参数测量
  • 自由学习记录(66)
  • JT808教程:消息的结构
  • react中在Antd3.x版本中 Select框在单选时 选中框的高度调整
  • Qt 实现Opencv功能模块切换界面功能
  • 【算法】动态规划:python实现 1