Nltk——语料库

NLTK使用方法总结

NLTK(natural language toolkit)是一套基于python的自然语言处理工具集

安装与功能描述

首先,打开终端安装nltk。

pip install nltk

打开Python终端并输入以下内容来安装 NLTK 包

import nltk
nltk.download()

语言处理功能以及相应NLTK模块以及功能描述。

在这里插入图片描述

自带的语料库

在nltk.corpus包下,提供了几类标注好的语料库。见下表:
在这里插入图片描述

from nltk.corpus import brown
print(brown.categories())   #输出brown语料库的类别
print(len(brown.sents()))   #输出brown语料库的句子数量
print(len(brown.words()))   #输出brown语料库的词数量'''
结果为:
['adventure', 'belles_lettres', 'editorial', 'fiction', 'government', 'hobbies', 
'humor', 'learned', 'lore', 'mystery', 'news', 'religion', 'reviews', 'romance', 
'science_fiction']
57340
1161192
'''

NLTk词频统计

NLTK 中的FreqDist( ) 类主要记录了每个词出现的次数,根据统计数据生成表格或绘图。其结构简单,用一个有序词典进行实现

在这里插入图片描述

词频统计功能实现:

import nltk
tokens=[ 'my','dog','has','flea','problems','help','please','maybe','not','take','him','to','dog','park','stupid','my','dalmation','is','so','cute','I','love','him'  ]
#统计词频
freq = nltk.FreqDist(tokens)#输出词和相应的频率
for key,val in freq.items():print (str(key) + ':' + str(val))#可以把最常用的5个单词拿出来
standard_freq=freq.most_common(5)
print(standard_freq)#绘图函数为这些词频绘制一个图形
freq.plot(20, cumulative=False)

去除停用词

from nltk.corpus import stopwords
tokens=[ 'my','dog','has','flea','problems','help','please','maybe','not','take','him','to','dog','park','stupid','my','dalmation','is','so','cute','I','love','him'  ]clean_tokens=tokens[:]
stwords=stopwords.words('english')
for token in tokens:if token in stwords:clean_tokens.remove(token)print(clean_tokens)

分句与分词

分句

from nltk.tokenize import sent_tokenize
mytext = "Hello Adam, how are you? I hope everything is going well. Today is a good day, see you dude."
print(sent_tokenize(mytext))

分词

from nltk.tokenize import word_tokenize
mytext = "Hello Mr. Adam, how are you? I hope everything is going well. Today is a good day, see you dude."
print(word_tokenize(mytext))

nltk标记非英语语言文本

from nltk.tokenize import sent_tokenize
mytext = "Bonjour M. Adam, comment allez-vous? J'espère que tout va bien. Aujourd'hui est un bon jour."
print(sent_tokenize(mytext,"french"))

NLTK词干提取

单词词干提取就是从单词中去除词缀并返回词根。(比方说 working 的词干是 work。)搜索引擎在索引页面的时候使用这种技术,所以很多人通过同一个单词的不同形式进行搜索,返回的都是相同的,有关这个词干的页面。

词干提取的算法有很多,但最常用的算法是 **Porter 提取算法。NLTK 有一个 PorterStemmer 类,**使用的就是 Porter 提取算法。

from nltk.stem import PorterStemmer
porter_stemmer = PorterStemmer()
print(porter_stemmer.stem('working'))
#结果为:work 

LancasterStemmer

from nltk.stem import LancasterStemmer
lancaster_stemmer = LancasterStemmer()
print(lancaster_stemmer.stem('working'))
#结果为:work 

SnowballStemmer 提取非英语单词词干

SnowballStemmer 类,除了英语外,还可以适用于其他 13 种语言。支持的语言如下:

from nltk.stem import SnowballStemmer
print(SnowballStemmer.languages)
#结果为:
('danish', 'dutch', 'english', 'finnish', 'french', 'german', 'hungarian', 'italian', 'norwegian', 'porter', 'portuguese', 'romanian', 'russian', 'spanish', 'swedish')

NLTK词形还原

(1)词形还原与词干提取类似, 但不同之处在于词干提取经常可能创造出不存在的词汇,词形还原的结果是一个真正的词汇

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('increases'))#结果为:increase

(2) 结果可能是同义词或具有相同含义的不同词语。有时,如果你试图还原一个词,比如 playing,还原的结果还是 playing。这是因为默认还原的结果是名词,如果你想得到动词,可以通过以下的方式指定。

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('playing', pos="v"))#结果为:play

(3)实际上,这是一个非常好的文本压缩水平。最终压缩到原文本的 50% 到 60% 左右。结果可能是动词,名词,形容词或副词

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('playing', pos="v"))
print(lemmatizer.lemmatize('playing', pos="n"))
print(lemmatizer.lemmatize('playing', pos="a"))
print(lemmatizer.lemmatize('playing', pos="r"))
'''
结果为:
play
playing
playing
playing
'''

词性标注(POS Tag)

(1)词性标注是把一个句子中的单词标注为名词,形容词,动词等

import nltk
text=nltk.word_tokenize('what does the fox say')
print(text)
print(nltk.pos_tag(text))'''
结果为:
['what', 'does', 'the', 'fox', 'say']
输出是元组列表,元组中的第一个元素是单词,第二个元素是词性标签
[('what', 'WDT'), ('does', 'VBZ'), ('the', 'DT'), ('fox', 'NNS'), ('say', 'VBP')]
'''### 简化的词性标集记列表

简化的词性标记集列表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

NLTK中的wordnet

wordnet 是为自然语言处理构建的数据库。它包括部分词语的一个同义词组和一个简短的定义

通过 wordnet可以得到给定词的定义和例句

from nltk.corpus import wordnet
syn = wordnet.synsets("pain")  #获取“pain”的同义词集
print(syn[0].definition())
print(syn[0].examples())'''
结果为:
a symptom of some physical hurt or disorder
['the patient developed severe pain and distension']
'''

使用 wordnet来获得同义词

from nltk.corpus import wordnet
synonyms = []
for syn in wordnet.synsets('Computer'):for lemma in syn.lemmas():synonyms.append(lemma.name())
print(synonyms)'''
结果为:
['computer', 'computing_machine', 'computing_device', 'data_processor', 'electronic_computer', 'information_processing_system', 'calculator', 'reckoner', 'figurer', 'estimator', 'computer']
'''

学习心得

复现论文,不要满足于就把代码给跑通,
要学会将各种函数啥都尝试一遍,全部将其跑通都行啦,
以及利用语料库,把该学习的模型都尝试一遍。
坚持把一两种框架都学透彻都行啦的样子与打算的,全部都将其搞定都行啦的回事与样子。

NLTK主要功能

在这里插入图片描述

  • 词频统计
  • 去除停用词
  • 分句和分词
  • 词干提取
  • 词干还原
  • 词性标注
  • wordnet

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

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

相关文章

自然语言处理NLP(2)——统计语言模型、语料库

在上一部分中,我们已经了解了自然语言处理的基本知识:自然语言处理NLP(1)——概述。 在这一部分中,我们将简要介绍NLP领域的基本模型——语言模型,我们还将对自然语言处理的基础——语料库的概念进行介绍。…

一起来学自然语言处理----语料库和词汇资源

语料库和词汇资源 1、自然语言工具包(NLTK)2、获取文本语料1.语料库古腾堡语料库网络和聊天文本布朗语料库路透社语料库就职演说语料库标注文本语料库在其他语言的语料库语料库结构载入自己的语料库 2.条件频率分布理解条件频率分布使用双连词生成随机文…

【自然语言处理】浅谈语料库

文章目录 【自然语言处理】浅谈语料库前言一、浅谈语料库1、语料和语料库2、语料库语言学3、 建议语料库的意义 二、语料库深入了解1、语料库划分与种类2、语料库构建原则3、语料标注的优缺点 三、自然语言处理工具包:NLTK1、 了解NLTK2、 获取NLTK3、 Standford NL…

NLP浅谈语料库

NLP浅谈语料库 1. 浅谈语料库 1.1 语料和语料库 ​ 语料通常指在统计自然语言处理中实际上不可能观测到大规模的语言实例。所以人们简单地用文本作为替代,并把文本中的上下文关系作为现实世界中语言的上下文关系的替代品。 ​ 语料库一词在语言学上意指大量的文…

任正非谈成功秘诀:28年只对准一个城墙口冲锋

文/记者 赵东辉、李斌、刘诗平、蔡国兆、彭勇、何雨欣 任正非和华为公司,堪称当代商业史上的传奇。 1987年,年满43岁的任正非和5个同伴集资2.1万元成立华为公司,利用两台万用表加一台示波器,在深圳的一个“烂棚棚”里起…

AI流量监控,哪些AI应用正在迅速崛起?

“ 通过对网站数据分析工具SimilarWeb的数据监控,观察AI相关站点的网站访问量变化,来发掘AI应用端的变化趋势,找到当下最火爆的AI应用。” AI网站访问量数据变化 访问量成长周冠军 LLamaIndex本周流量成长冠军是llamaindex.ai,周访…

chatgpt赋能python:Python不报错,为什么还是运行不了?

Python不报错,为什么还是运行不了? 如果你是一位有着10年 Python 编程经验的工程师,你很可能会遇到这样的问题:代码没有报错,但运行时却出现了一些奇怪的问题。 在这篇文章中,我们将着重探讨这个问题&…

CTFHub | 前端验证

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。 0x01 题目描述…

chatgpt赋能python:Python绕过验证码分析

Python绕过验证码分析 介绍 验证码(CAPTCHA)是一种常见的人机验证机制,用于保护网站不被自动化机器人恶意攻击。但是,对于一些恶意攻击者而言,绕过这种验证机制是他们完成攻击的必由之路。Python是一种强大的编程语言…

如何区分GPT3.5和4?

切换模型 前两天申请的GPT 4的API调用权限终于申请下来了。 这两天我也是抓紧开发,让自己搭建的国内网站(aichatroom.cn)可以快速支持上使用GPT 4。 GPT 3.5和GPT4的区别 GPT-3.5 和 GPT-4 分别代表了 OpenAI 发布的两个不同版本的自然语言处…

2021年度泰晤士全球大学【计算机科学排名】公布

转载于 青塔 泰晤士世界大学学科排名(THE World University Rankings by Subject)涵盖工程技术、理学、生命科学、计算机科学、教育学、临床前期与临床健康、商业与经济、法学、社会科学、艺术与人文、心理学等11个学科领域。 学科排名采用与世界大学排名…

再见正则表达式!这次彻底告别手写!

这篇文章的目的是让你能得到完美的正则表达式,而且还不用自己拼。 说到正则表达式,一直是令我头疼的问题,这家伙一般时候用不到,等用到的时候发现它的规则是一点儿也记不住,\d表示一个数字,\s表示包括下划…

软银成功收购波士顿动力,收获顶尖的机器人技术

波士顿动力(Boston Dynamics)在机器人领域里属于顶尖的研发公司,而这家在行业内取得了巨大成功的公司,却被Alphabet(谷歌母公司)整体出售给日本软银,并且与Boston Dynamics一起被出售的是日本本土的一家机器人公司Scha…

深度学习经典入门项目—波士顿房价预测

目录 房价预测--线性回归数据处理数据形状变换数据集划分数据归一化处理housing.data数据格式 模型设计线性回归模型设计 训练配置训练过程保存并测试模型保存模型测试模型 房价预测–线性回归 波士顿房价预测数据集是经典的机器学习、深度学习入门的数据集。下面我们用这个数…

本周AI热点回顾:波士顿动力机器狗去新西兰放羊了、微软WSL将支持GPU、ERNIE-GEN刷新SOTA

01 波士顿动力机器狗去新西兰放羊了!网友:不努力连狗都不如 波士顿动力的科学家可能做梦也没想到,他们研制出来的Spot机械狗,刚刚商用,就被训练来放羊了。 新西兰,一个因为牛奶和羊毛被中国人熟知的国家&am…

机器学习项目实践——波士顿房价预测

基于线性回归预测波士顿房价 摘要:分类和回归属于机器学习领域有监督学习算法的两种方法,有监督学习是通过已有的训练样本去训练得到一个模型,再使用这个模型将所有的输入映射到相应的输出,若输出结果是离散型称为分类&#xff0…

起底网红机器人波士顿动力

关注网易智能,聚焦AI大事件,读懂下一个大时代! 这家“网红”机器人公司又火了。 最近,接连发布的两条波士顿动力机器人的最新视频让不少人感到惊讶,一段是发布于今年10月11日标题为“跑酷阿特拉斯”的视频,…

重磅干货!揭秘波士顿动力背后的专利技术

【导读】本文从波士顿动力背后申请的专利入手,从动力系统、步态分析,详细探讨了波士顿动力机器人背后的技术实现。 波士顿动力四足机器人的发展历程(前世今身) 相比于轮式或履带机器人,波士顿足式机器人具有更强的地形适应能力,身体十分灵活,可以在各种崎岖不平的地面行…

机器学习实战演练 波士顿房价预测与模型评估

介绍数据集: 本数据集共有506个样本,每个样本有13个特征及标签MEDV 特征信息: CRIM 城镇人均犯罪率 ZN 占地面积超过2.5万平方英尺的住宅用地比例 INDUS 城镇非零售业务地区的比例 CHAS 查尔斯河虚拟变量 ( 1 如果土地在河边;否则…

这就是波士顿动力第一款商用产品「机器狗」Spot

波士顿动力 CEO Marc Raibert 告诉《The Verge》称,最近 Spot 正在大量的「概念验证」环境下接受测试,包括包裹递送和监控作业。他表示,尽管商用版 Spot 没有具体的上线日期,但应该会在几个月内与公众见面,并且年底前肯…