处理和分析人类语言数据-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)面向对…

【已解决】ModuleNotFoundError: No module named ‘PIL‘

问题描述 Traceback (most recent call last): File "train.py", line 75, in <module> import PILModuleNotFoundError: No module named PIL 解决办法 pip install pillow

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

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

rman SBT_TAPE NFS disk 模拟NBU带库 FRA

-----------------rman 将本地磁盘变成磁带----------------------------------- ##RAC 本地 /nfs----两个备份策略 clustern run { allocate channel ch00 device type SBT_TAPE PARMS"SBT_LIBRARYoracle.disksbt, ENV(BACKUP_DIR/nfs)"; backup recove…

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

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

已知二叉树采用顺序存储,求编号为i和j的结点的最近公共祖先结点编号。

题目描述&#xff1a;已知二叉树采用顺序存储&#xff0c;求编号为 i和j的结点的最近公共祖先结点编号。 分析&#xff1a; 令两个下标从两个初始点开始&#xff0c;你追我赶的交替向上&#xff0c;直到在某地相遇。即先令较大的下标&#xff08;对应位置较低的点&#xff09;…

C++作业2

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

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

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

gitee仓库使用教程

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

DAPP开发【02】Remix使用

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

探秘RabbitMQ:社区插件与扩展的奇妙世界【RabbitMQ 三】

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 探秘RabbitMQ&#xff1a;社区插件与扩展的奇妙世界 前言第一&#xff1a;RabbitMQ社区插件简介第二&#xff1a;高级队列插件特性实现延迟队列 - rabbitmq_delayed_message_…

Pytorch 中的 Hook 机制

Hook 是 PyTorch 中⼀个⼗分有⽤的特性。利⽤它&#xff0c;我们可以不必改变⽹络输⼊输出的结构&#xff0c;⽅便地获取、改变⽹络中间层变量的值和梯度。这个功能被⼴泛⽤于可视化神经⽹络中间层的feature、gradient&#xff0c;从⽽诊断神经⽹络中可能出现的问题&#xff0c…

JVM内存结构

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

反序列化漏洞(二)

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

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

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

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

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

Linux的权限(一)

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

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

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

DL中的GPU使用问题

写在前面 在使用GPU进行深度学习训练经常会遇到下面几个问题&#xff0c;这里做一个解决方法的汇总。 &#x1f415;Q1&#x1f415;&#xff1a;在一个多卡服务器上&#xff0c;指定了cuda:1&#xff0c;但是0号显卡显存还是会被占用一定量的显存。 这个问题很经典的出现场景就…