NLTK 库

简介: 【11月更文挑战第18天】

一、NLTK库(Natural Language Toolkit)简介

  1. 定义
    • NLTK是一个用于构建自然语言处理(NLP)应用程序的Python库。它提供了易于使用的接口来处理人类语言数据,包括对文本进行分类、标记化、词干提取、标记、解析等操作。
    • NLTK包含了大量的语料库(如书籍、新闻文章、网络文本等)和词汇资源(如词性标注字典、命名实体识别标签等),可以用于训练和测试NLP模型。
  2. 应用场景
    • 文本处理:对文本进行预处理,如句子分割、单词切分等。
    • 词性标注:确定文本中单词的词性(名词、动词、形容词等)。
    • 命名实体识别:识别文本中的人名、地名、组织名等实体。
    • 情感分析:分析文本中的情感倾向(正面、负面、中性)。
    • 文本分类:将文本分类到不同的类别中,如新闻分类、垃圾邮件分类等。

二、NLTK库的使用方法

  1. 安装
    • 使用pip进行安装:
      pip install nltk
      
  2. 下载相关数据
    • 首次使用时,需要下载NLTK的语料库和其他数据资源。在Python脚本或交互式环境中运行以下代码:
      import nltk
      nltk.download()
      
    • 这会弹出一个下载器窗口,你可以选择需要下载的数据,如punkt(用于句子和单词切分的语料库)、averaged_perceptron_tagger(词性标注器)等。

三、代码示例

1. 句子和单词切分(Tokenization)

import nltk

text = "Natural Language Processing is an interesting field. It has many applications."
# 句子切分
sentences = nltk.sent_tokenize(text)
print("Sentences:")
for sentence in sentences:
    print(sentence)

# 单词切分
words = []
for sentence in sentences:
    word_tokens = nltk.word_tokenize(sentence)
    words.extend(word_tokens)
print("\nWords:")
for word in words:
    print(word)

2. 词性标注(Part - of - Speech Tagging)

import nltk

text = "I love apples. They are delicious."
words = nltk.word_tokenize(text)
tagged_words = nltk.pos_tag(words)
print("Tagged words:")
for word, tag in tagged_words:
    print(word, "-", tag)

3. 命名实体识别(Named Entity Recognition)

import nltk

text = "Apple Inc. is headquartered in Cupertino, California."
words = nltk.word_tokenize(text)
tagged_words = nltk.pos_tag(words)
named_entities = nltk.ne_chunk(tagged_words)
print("Named entities:")
print(named_entities)

4. 词干提取(Stemming)

from nltk.stem import PorterStemmer

ps = PorterStemmer()
words = ["running", "runs", "ran", "easily", "fairly"]
for word in words:
    stem = ps.stem(word)
    print(word, "->", stem)
目录
相关文章
|
机器学习/深度学习 自然语言处理 算法
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
9500 0
|
自然语言处理 算法 搜索推荐
NLTK模块使用详解
NLTK(Natural Language Toolkit)是基于Python的自然语言处理工具集,提供了丰富的功能和语料库。本文详细介绍了NLTK的安装、基本功能、语料库加载、词频统计、停用词去除、分词分句、词干提取、词形还原、词性标注以及WordNet的使用方法。通过示例代码,帮助读者快速掌握NLTK的核心功能。
2853 1
|
5月前
|
人工智能 分布式计算 自然语言处理
多智能体系统设计:5种编排模式解决复杂AI任务
本文探讨了多AI智能体协作中的关键问题——编排。文章指出,随着系统从单体模型向多智能体架构演进,如何设计智能体之间的通信协议、工作流程和决策机制,成为实现高效协作的核心。文章详细分析了五种主流的智能体编排模式:顺序编排、MapReduce、共识模式、分层编排和制作者-检查者模式,并分别介绍了它们的应用场景、优势与挑战。最后指出,尽管大模型如GPT-5提升了单体能力,但在复杂任务中,合理的智能体编排仍不可或缺。选择适合的编排方式,有助于在系统复杂度与实际效果之间取得平衡。
1097 10
多智能体系统设计:5种编排模式解决复杂AI任务
|
9月前
|
数据采集 人工智能 监控
40.8K star!让AI帮你读懂整个互联网:Crawl4AI开源爬虫工具深度解析
Crawl4AI 是2025年GitHub上备受瞩目的开源网络爬虫工具,专为AI时代设计。它不仅能抓取网页内容,还能理解页面语义结构,生成适配大语言模型的训练数据格式。上线半年获4万+星标,应用于1200+AI项目。其功能亮点包括智能内容提取引擎、AI就绪数据管道和企业级特性,支持动态页面处理、多语言识别及分布式部署。技术架构基于Python 3.10与Scrapy框架,性能卓越,适用于AI训练数据采集、行业情报监控等场景。相比Scrapy、BeautifulSoup等传统工具,Crawl4AI在动态页面支持、PDF解析和语义分块方面更具优势
3428 0
40.8K star!让AI帮你读懂整个互联网:Crawl4AI开源爬虫工具深度解析
|
9月前
|
人工智能 JavaScript 开发工具
MCP详解:背景、架构与应用
模型上下文协议(MCP)是由Anthropic提出的开源标准,旨在解决大语言模型与外部数据源和工具集成的难题。作为AI领域的“USB-C接口”,MCP通过标准化、双向通信通道连接模型与外部服务,支持资源访问、工具调用及提示模板交互。其架构基于客户端-服务器模型,提供Python、TypeScript等多语言SDK,方便开发者快速构建服务。MCP已广泛应用于文件系统、数据库、网页浏览等领域,并被阿里云百炼平台引入,助力快速搭建智能助手。未来,MCP有望成为连接大模型与现实世界的通用标准,推动AI生态繁荣发展。
8202 66
|
12月前
|
机器人 应用服务中间件 API
轻松集成私有化部署Dify文本生成型应用
Dify 是一款开源的大语言模型应用开发平台,融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者能快速搭建生产级生成式 AI 应用。通过阿里云计算巢,用户可以一键部署 Dify 社区版,享受独享的计算和网络资源,并无代码完成钉钉、企业微信等平台的应用集成。本文将详细介绍如何部署 Dify 并将其集成到钉钉群聊机器人和企业微信中,帮助您轻松实现 AI 应用的定义与数据运营,提升工作效率。
5408 65
轻松集成私有化部署Dify文本生成型应用
|
自然语言处理 网络安全 Python
【Python】已解决:nltk.download(‘punkt’) [nltk_data] Error loading punkt: [WinError 10060] [nltk_data]
【Python】已解决:nltk.download(‘punkt’) [nltk_data] Error loading punkt: [WinError 10060] [nltk_data]
4068 1
Vue3 中使用 Event Bus
【10月更文挑战第16天】Event Bus 是 Vue3 中一种简单而实用的通信方式,在一些简单的场景中可以发挥重要作用。但在实际应用中,要根据项目的具体需求和复杂度,选择合适的通信方式,以实现最佳的性能和可维护性。同时,要遵循最佳实践,合理使用 Event Bus,避免出现问题。
1382 60