【自然语言处理】-nltk库学习笔记(一)
句子切分(Sentence Tokenize)
nltk的分词是句子级别的,所以对于一篇文档首先要将文章按句子进行分割,然后句子进行分词
from nltk.tokenize import sent_tokenizetext = """Hello Mr. Smith, how are you doing today? The weather is great, and
city is awesome.The sky is pinkish-blue. You shouldn't eat cardboard"""tokenized_text = sent_tokenize(text)
print(tokenized_text)
['Hello Mr. Smith, how are you doing today?', 'The weather is great, and \ncity is awesome.The sky is pinkish-blue.', "You shouldn't eat cardboard"]
单词切分(Word Tokenize)
import nltksent = "Study hard and improve every day."
token = nltk.word_tokenize(sent)
print(token)
['Study', 'hard', 'and', 'improve', 'every', 'day', '.']
移除标点符号
对每个切词调用该函数,移除字符串中的标点符号,string.punctuation包含了所有的标点符号,从切词中把这些标点符号替换为空格。
python的string模块下的 punctuation 包含所有的英文标点符号,所以用replace()一下就可以去除
注意:
string.punctuation中的标点符号只有英文
#所有的标点字符
import string
string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
去除中文标点符号:
如果是中文文本,可以调用zhon包的zhon.hanzi.punctuation函数即可得到中文的标点符号集合
英文的
import string
s = 'a,sbch.:usx/'
S = s.translate(str.maketrans(string.punctuation, " " * len(string.punctuation)))
print(S)
a sbch usx
import string
stri = 'today is friday, so happy..!!!'
punctuation_string = string.punctuationprint("所有的英文标点符号:", punctuation_string)
for i in punctuation_string:stri = stri.replace(i, '')
print(stri)
所有的英文标点符号: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
today is friday so happy
如果是中文的捏
from zhon.hanzi import punctuationstr = '今天周五,下班了,好开心呀!!'
punctuation_str = punctuation
print("中文标点符合:", punctuation_str)
for i in punctuation:str = str.replace(i, '')
print(str)
中文标点符合: "#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、 、〃〈〉《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏﹑﹔·!?。。
今天周五下班了好开心呀
string模块
在对字符串操作时,如果感觉自己写的很复杂时,可以试试string模块,里面有很多实用的属性。
>>>import string
>>>string.punctuation#所有的标点字符
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>>string.whitespace#所有的空白字符
' \t\n\r\x0b\x0c'
>>>string.ascii_uppercase#所有的大写字母
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>>string.ascii_lowercase#所有的小写字母
'abcdefghijklmnopqrstuvwxyz'
>>>string.hexdigits#所有的十六进制字符
'0123456789abcdefABCDEF'
zhon库
学习笔记——zhon库的简介、安装、使用方法之详细攻略
import re
import zhon.hanzirst = re.findall(zhon.hanzi.sentence, '我买了一辆车。妈妈做的菜,很好吃!')
print(rst)
['我买了一辆车。', '妈妈做的菜,很好吃!']
移除停用词
将数据转换为计算机可以理解的内容的过程称为预处理。预处理的主要形式之一是过滤掉无用的数据。在自然语言处理中,无用的单词(数据)称为停用词。
停用词是指搜索引擎已编程忽略的常用词(例如“the”,“a”,“an”,“in”)。
我们不希望这些单词占用我们数据库中的空间,或占用宝贵的处理时间。为此,我们可以通过存储要停止使用的单词的列表轻松删除它们。
关于安装NLTK语料库
这个是详细介绍
import nltk
nltk.download()
关于NLTK_DATA下载的坑
经过不懈的努力终于搞好了(这些问题可能别人也会遇到)
OSError: No such file or directory: 'C:\Users\2019\AppData\Roaming\nltk_data\corpora\stopword
解决方案
使用split()函数进行分词
import nltk
from nltk.corpus import stopwords
stop_words = stopwords.words("english")
text = """Hello Mr. Smith, how are you doing today? The weather is great, and city is awesome. """
word_tokens = nltk.tokenize.word_tokenize(text.strip())
filtered_word = [w for w in word_tokens if not w in stop_words]
print(filtered_word)
['Hello', 'Mr.', 'Smith', ',', 'today', '?', 'The', 'weather', 'great', ',', 'city', 'awesome', '.']
【自然语言处理】-nltk库学习笔记(一)相关推荐
- python自然语言处理案例-Python自然语言处理 NLTK 库用法入门教程【经典】
本文实例讲述了Python自然语言处理 NLTK 库用法.分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP).本教程将会使用 Python NLTK ...
- Python自然语言处理 NLTK 库用法入门教程【经典】
@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法.分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python ...
- python xlwings 切片_Python xlwings库学习笔记(1)
Python xlwings库学习笔记(1) Python是最近几年很火的编程语言,被办公自动化的宣传吸引入坑,办公自动化必然绕不开Excel的操作,能操作Excel的库有很多,例如: xlrd xl ...
- python标准库学习笔记
原创:python标准库学习笔记 数据结构 bisect 模块里实现了一个向列表插入元素时也会顺便排序的算法. struct - 二进制数据结构:用途:在 Python 基本数据类型和二进制数据之间进 ...
- 深度学习常用python库学习笔记
深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...
- Huggingface Transformers库学习笔记(二):使用Transformers(上)(Using Transformers Part 1)
前言 本部分是Transformer库的基础部分的上半部分,主要包括任务汇总.模型汇总和数据预处理三方面内容,由于许多模型我也不太了解,所以多为机器翻译得到,错误再所难免,内容仅供参考. Huggin ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- STM32 HAL库学习笔记4-SPI
STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...
- Python_pygame库学习笔记(1):pygame的由来,特点以及模块简介
Python_pygame库学习笔记 1 Pygame库的由来: Python适合用来开发游戏吗? Pygame的安装 Pygame模块简介 Pygame库的由来: 2000年,作者Pete Shin ...
最新文章
- ShineTime - 带有 CSS3 闪亮特效的缩略图相册
- 【spring cloud zookeeper】KeeperErrorCode = Unimplemented for
- HarmonyOS之深入解析图像的位图操作和属性解码
- 读《数学之美》第四章 谈谈分词
- 中国移动停售华为5G手机?双方回应...
- php实现最后登录时间,php实例之基于Cookie的登录表单和获取最后登录时间
- 【java】对学生成绩进行排序
- sklearn笔记之preprocessing
- 紧张的337小时,终于等来了宇宙条字节跳动offer
- realme v11密码解锁_真我V11忘记密码怎么刷机删除跳过激活账号使用
- texture_laws 纹理滤波用于缺陷检测
- 制作ZedBoard-linaro-desktop-ubuntu全过程之运行linaro系统
- ME525 刷机历险记
- (转)Android屏幕适配全攻略(最权威的官方适配指导)
- 极客日报:恶意软件感染超1000万台安卓设备;淘宝App已支持“云闪付”付款;OpenSSH 8.8发布
- WORD页码相同问题
- Mac安装brew 及安装报错的解决办法【已解决】
- QTextDocument
- 通信协议-GMSL(千兆多媒体串行链路)
- flinkSql中自定义时间窗口开启时间
热门文章
- ajax局部刷新不出来,关于Ajax局部刷新未出来数据的问题
- 最新上海市小区面shp数据学校大厦等占地范围面数据2021年(含预览图)arcgis下载与介绍
- 青春不过,几次世界杯,足球让我明白,努力的方向
- Win10软件出现找不到HID.DLL问题
- Java 按照范围生成随机数公式
- 图像处理: Canny边缘检测
- 【OpenCV-Python】:Canny边缘检测的图像化与数值化直观显示
- 【190112】VC++ 小型会员积分管理系统源代码
- Python操作数据库写入CSV文件
- html+页面的背景透明,css设置背景透明 元素不透明