处理和分析人类语言数据-NLTK安装和使用

简介:NLTK(Natural Language Toolkit)是一个强大的Python库,用于处理和分析人类语言数据,是一个开源的项目,包含:Python模块,数据集和教程,用于NLP的研究和开发,由Steven Bird和Edward Loper在宾夕法尼亚大学计算机和信息科学系开发。NLTK包括图形演示和示例数据。其提供的教程解释了工具包支持的语言处理任务背后的基本概念。

历史攻略:

Python:使用pycorrector处理错字、纠正

Python:字符转语音

Python:2行代码实现文字转语音

语音识别:利用百度智能进行语音识别

安装:

pip install nltk

参数解析:

函数和模块 - NLTK包含多种函数和模块,例如 nltk.tokenize(用于分词),nltk.tag(用于词性标注)等。

常用参数:对于分词(word_tokenize)等函数,主要参数是要处理的文本字符串。对于词性标注等,参数可能包括分词后的词列表。

案例:

# -*- coding: utf-8 -*-
# time: 2023/11/22 10:18
# file: nltk_demo.py
# 公众号: 玩转测试开发import nltk
import random
from nltk.util import ngrams
from nltk.tag import pos_tag
from collections import Counter
from nltk.probability import FreqDist
from nltk.corpus import movie_reviews
from nltk.tokenize import word_tokenize
from nltk.classify.util import accuracy
from nltk.classify import NaiveBayesClassifier# demo - 01: 基本使用
text = "NLTK is a leading platform for building Python programs to work with human language data."
tokens = word_tokenize(text)# 首次运行,如果环境没配置好,会报错,具体解决步骤参考,注意事项
print(tokens)# demo - 02:文本分析
# a: 词频分布分析: 展示了如何使用NLTK来分析文本中词汇的频率分布。nltk.download('punkt')
with open(r"D:\codes\tom2023\IHaveADream.txt")as f:text = f.read()
tokens = word_tokenize(text)
fdist = FreqDist(tokens)# b: 输出最常见的10个词
for word, frequency in fdist.most_common(10):print(f"最常见的词 - {word}")# c: 词性标注: 展示了如何使用NLTK进行词性标注。
nltk.download('averaged_perceptron_tagger')text = "NLTK is a leading platform for building Python programs."
tokens = word_tokenize(text)
tags = pos_tag(tokens)print(f"tags:{tags}")# 简单的情感分类:展示了如何使用NLTK的分类工具进行简单的情感分析。
nltk.download('movie_reviews')def extract_features(words):return dict([(word, True) for word in words])# 构建训练和测试数据
fileids_pos = movie_reviews.fileids('pos')
fileids_neg = movie_reviews.fileids('neg')features_pos = [(extract_features(movie_reviews.words(fileids=[f])), 'Positive') for f in fileids_pos]
features_neg = [(extract_features(movie_reviews.words(fileids=[f])), 'Negative') for f in fileids_neg]
threshold = 0.8
num_pos = int(threshold * len(features_pos))
num_neg = int(threshold * len(features_neg))features_train = features_pos[:num_pos] + features_neg[:num_neg]
features_test = features_pos[num_pos:] + features_neg[num_neg:]# 训练分类器
classifier = NaiveBayesClassifier.train(features_train)# 测试分类器
print("Accuracy: ", accuracy(classifier, features_test))# 语言模型:展示了如何使用NLTK构建一个简单的n-gram语言模型。
nltk.download('reuters')
from nltk.corpus import reuterstext = reuters.raw(reuters.fileids()[0])
tokens = word_tokenize(text.lower())bigrams = ngrams(tokens, 2)
bigram_freq = Counter(bigrams)# 输出最常见的5个bigram
print(bigram_freq.most_common(5))

运行结果:

**图片**

注意事项:

性能问题:对于大规模数据集,NLTK可能不是最高效的选择。

语言支持:NLTK主要支持英语,对于其他语言可能需要额外的处理。

版本兼容性:确保使用的Python版本与NLTK兼容。

首次运行报错,需要手动导入下载,操作如下图

手动执行Python,然后导入,下载相应包

python >> import nltk >> nltk.download(“punkt”)

图片

总结:NLTK是Python中用于自然语言处理的重要库之一。它提供了丰富的工具和数据集,适用于文本处理、分析和建模等多种任务。虽然NLTK在处理大型数据集时可能不是最高效的,但它的易用性和强大功能使其成为学习和实践自然语言处理的优秀工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows系统下Elasticsearch-7.15.2安装

一、环境 此次笔记使用的运行环境以及软件版本 系统:WIN10 JDK版本:1.8 Elasticsearch版本:7.15.2 elasticsearch-head版本:最新 IK分词器版本:7.15.2 Kibana版本:7.15.2 二、Elasticsearch基本知识 2.1 介绍…

java源码-类与对象

1、类与对象的初步认知 在了解类和对象之前我们先了解一下什么是面向过程和面向对象。 1)面向过程编程: C语言就是面向过程编程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 2)面向对…

第一类瑞利索末菲标量衍射模型的方孔衍射的空间像计算(附python计算代码)

记第一类瑞利索末菲标量衍射模型的方孔衍射的空间像计算(附python计算代码) RS type 1 衍射空间像计算傅里叶变换采样条件实际计算计算要求傅立叶变换法计算直接卷积方法计算代码傅立叶变换方法直接卷积https://zhuanlan.zhihu.com/p/624292239 Goodman, J. W. (2004). Intro…

蓝桥杯day04——查询后矩阵的和

1.题目 给你一个整数 n 和一个下标从 0 开始的 二维数组 queries ,其中 queries[i] [typei, indexi, vali] 。 一开始,给你一个下标从 0 开始的 n x n 矩阵,所有元素均为 0 。每一个查询,你需要执行以下操作之一: …

C++作业2

自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height), 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() 代码&#xff1a…

数字图像处理(实践篇)十七 Shi-Tomasi 角点检测

目录 一 涉及的函数 二 实践 在使用OpenCV之前,需要先安装相关的库和依赖项,命令如下所示: # 安装OpenCV的基础版pip install opencv-python# 安装OpenCV的扩展版pip install opencv-contrib-python 一 涉及的函数 OpenCV 提供了cv2.goo…

gitee仓库使用教程

目录 一、项目与仓库映射 二、git常用命令的用法 一、项目与仓库映射 下载安装git;在本地项目文件夹右击鼠标点击Git Bash Here;输入git init,这个目录变成git可以管理的仓库,会出现一个.git文件夹,如果没出现的话需要选择“显…

DAPP开发【02】Remix使用

系列文章目录 系列文章在DAPP开发专栏 文章目录 系列文章目录使用部署测试网上本地项目连接remix本地项目连接remix 使用 创建一个新的工作空间 部署测试网上 利用metaMask连接测试网络 添加成功,添加时需要签名 即可进行编译 即可部署 本地项目连接remix 方…

JVM内存结构

一、 整体结构 .java文件被javac编译成.class字节码文件。 .class文件再由JVM编译成设用于具体系统的机器码文件 下图即JVM编译.class文件的过程 JVM分为 类加载器, 内存结构, 执行引擎三部分 一、类加载器负责加载二进制字节码文件 二、方法区存储类…

反序列化漏洞(二)

目录 pop链前置知识,魔术方法触发规则 pop构造链解释(开始烧脑了) 字符串逃逸基础 字符减少 字符串逃逸基础 字符增加 实例获取flag 字符串增多逃逸 字符串减少逃逸 延续反序列化漏洞(一)的内容 pop链前置知识,魔术方法触…

【Excel/Matlab】绘x-y图并求切线和截距(详细图解)

最近做大物实验数据较多,手绘图比较麻烦且不精确,所以开始用电脑作图,粗浅记录一下。 方法一 excel (简单快捷) 1 录入数据 在excel中录入数据 2 生成平滑线散点图 选中录入的所有数据->右键点击快速分析->选择…

TCP_握手+挥手过程状态变化分析

TCP状态解读 握手挥手过程状态变化 同时握手 双发同时发起syn请求,状态变化过程如下: 图片来源:http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-4.htm 同时挥手 4次挥手,可以理解为2…

Linux的权限(一)

目录 权限的本质 Linux权限的概念 如何创建与删除普通用户 创建普通用户: 设置用户密码: 删除普通用户: 删除与该用户关联的主目录和邮件目录 : su指令 sudo指令 Linux权限管理 Linux中文件访问者有三种“人” Linux…

使用 Go 构建高性能的命令行工具

命令行工具(CLI)在软件开发中扮演着重要的角色,尤其是在自动化工具、开发工具链和服务器管理等领域。Go 语言以其简洁性和高性能而闻名,非常适合用来创建强大且高效的 CLI 工具。本文将详细介绍如何使用 Go 语言来构建 CLI 应用&a…

甄知黄建华:从“天赋平平”到IT行业“六边形战士”,探索出企业数智化转型的“强IT”之路

本期我们先抛开人物和主体不表,从大环境开始谈起。随着科技的快速发展和全球商业环境的不断变化,中国企业对灵活性、创新性、全球化和效率的需求是迫切的,进行数字化转型来支撑企业的业务变革、组织优化已是业界共识。如何根据企业的实际情况…

锐捷EWEB网管系统 RCE漏洞复现

0x01 产品简介 锐捷网管系统是由北京锐捷数据时代科技有限公司开发的新一代基于云的网络管理软件,以“数据时代创新网管与信息安全”为口号,定位于终端安全、IT运营及企业服务化管理统一解决方案。 0x02 漏洞概述 Ruijie-EWEB 网管系统 flwo.control.ph…

定时任务特辑 | Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

Docker从入门到实战:Docker快速部署、Dockerfile编写、容器间通信及共享数据实战、Docker-compose详解

文章目录 一、基本概念1、体系结构2、容器与镜像1&#xff09;镜像2&#xff09;容器a、容器内部结构b、容器生命周期 3、执行流程 二、常用命令docker pull 镜像名<:tags> &#xff1a;从远程仓库抽取镜像docker images&#xff1a;查看本地镜像docker run 镜像名<:t…

C++11入门

目录 C11简介 统一的列表初始化 声明 范围for循环 STL中一些变化 C11简介 在2003年C标准委员会提交了一份技术勘误表(简称TC1).使得C03这个名字取代了C98成为C11之前的最新C标准名称.但由于C03主要是对C98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯的把…

代数学笔记6: 群同态基本定理,循环群结构定理

群同态 ρ : G 1 ( , ⋅ ) → G 2 ( , ∘ ) g ↦ ρ ( g ) \rho:G_1(\ ,\cdot)\to G_2(\ ,\circ)\\ \qquad\ \ g\mapsto \rho(g) ρ:G1​( ,⋅)→G2​( ,∘) g↦ρ(g) ∀ g 1 , g 2 ∈ G \forall g_1,g_2\in G ∀g1​,g2​∈G, 有 ρ ( g 1 ⋅ g 2 ) ρ ( g 1 ) ∘ ρ ( g 2 …