nltk 文本预处理
分词
from nltk import word_tokenize
sentence = """
3w.ναdΜāιι.com Provide you with a professional platform for the sale and purchase of
virtual products for games. Welcome to settle in 3w.ναdΜāιι.com loving cats geese goods
"""
token_words = word_tokenize(sentence)
print(token_words)
['3w.ναdΜāιι.com', 'Provide', 'you', 'with', 'a', 'professional', 'platform', 'for', 'the', 'sale', 'and', 'purchase', 'of', 'virtual', 'products', 'for', 'games', '.', 'Welcome', 'to', 'settle', 'in', '3w.ναdΜāιι.com', 'loving', 'cats', 'geese', 'goods']
词根提取 ,如 ‘Provide’ 变成词根’provid’
from nltk.stem.lancaster import LancasterStemmer
lancaster_stemmer = LancasterStemmer()
words_stemmer = [lancaster_stemmer.stem(token_word) for token_word in token_words]
print(words_stemmer)
['3w.ναdμāιι.com', 'provid', 'you', 'with', 'a', 'profess', 'platform', 'for', 'the', 'sal', 'and', 'purchas', 'of', 'virt', 'produc', 'for', 'gam', '.', 'welcom', 'to', 'settl', 'in', '3w.ναdμāιι.com', 'lov', 'cat', 'gees', 'good']
单词变体还原,‘geese’ 变成 ‘goose’
from nltk.stem import WordNetLemmatizer
wordnet_lematizer = WordNetLemmatizer()
words_lematizer = [wordnet_lematizer.lemmatize(token_word) for token_word in token_words]
print(words_lematizer)
['3w.ναdΜāιι.com', 'Provide', 'you', 'with', 'a', 'professional', 'platform', 'for', 'the', 'sale', 'and', 'purchase', 'of', 'virtual', 'product', 'for', 'game', '.', 'Welcome', 'to', 'settle', 'in', '3w.ναdΜāιι.com', 'loving', 'cat', 'goose', 'good']
词性标注
from nltk import word_tokenize,pos_tag
#sentence = "DBSCAN - Density-Based Spatial Clustering of Applications with Noise. Finds core samples of high density and expands clusters from them. Good for data which contains clusters of similar density"
token_word = word_tokenize(sentence) #分词
token_words = pos_tag(token_word) #词性标注
print(token_words)
[('3w.ναdΜāιι.com', 'CD'), ('Provide', 'NNP'), ('you', 'PRP'), ('with', 'IN'), ('a', 'DT'), ('professional', 'JJ'), ('platform', 'NN'), ('for', 'IN'), ('the', 'DT'), ('sale', 'NN'), ('and', 'CC'), ('purchase', 'NN'), ('of', 'IN'), ('virtual', 'JJ'), ('products', 'NNS'), ('for', 'IN'), ('games', 'NNS'), ('.', '.'), ('Welcome', 'NNP'), ('to', 'TO'), ('settle', 'VB'), ('in', 'IN'), ('3w.ναdΜāιι.com', 'CD'), ('loving', 'VBG'), ('cats', 'NNS'), ('geese', 'JJ'), ('goods', 'NNS')]
词形归一化,loving 变成love
from nltk.stem import WordNetLemmatizer
words_lematizer = []
wordnet_lematizer = WordNetLemmatizer()
for word, tag in token_words:if tag.startswith('NN'):word_lematizer = wordnet_lematizer.lemmatize(word, pos='n') # n代表名词elif tag.startswith('VB'): word_lematizer = wordnet_lematizer.lemmatize(word, pos='v') # v代表动词elif tag.startswith('JJ'): word_lematizer = wordnet_lematizer.lemmatize(word, pos='a') # a代表形容词elif tag.startswith('R'): word_lematizer = wordnet_lematizer.lemmatize(word, pos='r') # r代表代词else: word_lematizer = wordnet_lematizer.lemmatize(word)words_lematizer.append(word_lematizer)
print(words_lematizer)
['3w.ναdΜāιι.com', 'Provide', 'you', 'with', 'a', 'professional', 'platform', 'for', 'the', 'sale', 'and', 'purchase', 'of', 'virtual', 'product', 'for', 'game', '.', 'Welcome', 'to', 'settle', 'in', '3w.ναdΜāιι.com', 'love', 'cat', 'geese', 'good']
去除停用词
from nltk.corpus import stopwords
cleaned_words = [word for word in words_lematizer if word not in stopwords.words('english')]
print('原始词:', words_lematizer)
print('去除停用词后:', cleaned_words)
原始词: ['3w.ναdΜāιι.com', 'Provide', 'you', 'with', 'a', 'professional', 'platform', 'for', 'the', 'sale', 'and', 'purchase', 'of', 'virtual', 'product', 'for', 'game', '.', 'Welcome', 'to', 'settle', 'in', '3w.ναdΜāιι.com', 'love', 'cat', 'geese', 'good']
去除停用词后: ['3w.ναdΜāιι.com', 'Provide', 'professional', 'platform', 'sale', 'purchase', 'virtual', 'product', 'game', '.', 'Welcome', 'settle', '3w.ναdΜāιι.com', 'love', 'cat', 'geese', 'good']
去除特殊字符
characters = [',', '.','DBSCAN', ':', ';', '?', '(', ')', '[', ']', '&', '!', '*', '@', '#', '$', '%','-','...','^','{','}']
words_list = [word for word in cleaned_words if word not in characters]
print(words_list)
['3w.ναdΜāιι.com', 'Provide', 'professional', 'platform', 'sale', 'purchase', 'virtual', 'product', 'game', 'Welcome', 'settle', '3w.ναdΜāιι.com', 'love', 'cat', 'geese', 'good']
大小写转换
words_lists = [x.lower() for x in words_list ]
print(words_lists)
['3w.ναdμāιι.com', 'provide', 'professional', 'platform', 'sale', 'purchase', 'virtual', 'product', 'game', 'welcome', 'settle', '3w.ναdμāιι.com', 'love', 'cat', 'geese', 'good']
统计词频
from nltk import FreqDist
freq = FreqDist(words_lists)
for key,val in freq.items():print (str(key) + ':' + str(val))
3w.ναdμāιι.com:2
provide:1
professional:1
platform:1
sale:1
purchase:1
virtual:1
product:1
game:1
welcome:1
settle:1
love:1
cat:1
geese:1
good:1
折线图
freq.plot(20,cumulative=False)
词云
words = ' '.join(words_lists)from wordcloud import WordCloud
from imageio import imread
import matplotlib.pyplot as plt
pic = imread('./mm.jpg')
wc = WordCloud(mask = pic,background_color = 'white',width=800, height=600)
wwc = wc.generate(words)
plt.figure(figsize=(10,10))
plt.imshow(wwc)
plt.axis("off")
plt.show()
词云背景图
词云图
参考链接
nltk 文本预处理相关推荐
- python nltk —— 文本预处理
下载: import nltk nltk.download() 0. 语法知识 N:名词, V:动词,ADJ:形容词,ADV:副词, proper noun:专有名词 pronoun:代词,he/he ...
- python 英语分词_基于Python NLTK库进行英文文本预处理
文本预处理是要文本处理成计算机能识别的格式,是文本分类.文本可视化.文本分析等研究的重要步骤.具体流程包括文本分词.去除停用词.词干抽取(词形还原).文本向量表征.特征选择等步骤,以消除脏数据对挖掘分 ...
- NLP任务中的文本预处理步骤、工具和示例
作者 | Viet Hoang Tran Duong 来源 | DeepHub IMBA 头图 | CSDN付费下载于视觉中国 数据是新的石油,文本是我们需要更深入钻探的油井.文本数据无处不在,在实际 ...
- Python文本预处理:步骤、使用工具及示例
作者 | Data Monster 译者 | Linstancy 编辑 | 一一 出品 | AI科技大本营(ID:rgznai100) 本文将讨论文本预处理的基本步骤,旨在将文本信息从人类语言转换为机 ...
- 【NLP】文本预处理:删除单词停用词
作者 | Chetna Khanna 编译 | VK 来源 | Towards Data Science 我们很清楚这样一个事实:计算机可以很容易地处理数字. 然而,我们掌握的大部分信息都是以文本的形 ...
- 数据科学和人工智能技术笔记 五、文本预处理
五.文本预处理 作者:Chris Albon 译者:飞龙 协议:CC BY-NC-SA 4.0 词袋 # 加载库 import numpy as np from sklearn.feature_ext ...
- 动手学深度学习(文本预处理+语言模型+循环神经网络基础)
文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 分词 建立字典,将每个词映射到一个唯一的索引(index) ...
- Task02:学习笔记文本预处理;语言模型;循环神经网络基础
Task02:学习笔记文本预处理:语言模型:循环神经网络基础 文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 ...
- U1C2 文本预处理
U1C2 Text pre-processing 一.正则表达式 - Regular Expressions 1.基本正则表达式模式 Basic Regular Expression Patterns ...
最新文章
- sql%notfound与exception
- PostgreSQL在何处处理 sql查询之十二
- 马士兵java note 5
- LeetCode—207. 课程表
- Inside Class Loaders
- 圳不完全启示录之初来乍到----2
- Python环境下如何安装爬虫需求的一些库
- 【数据库】MySql分割字符串
- 《Doom启示录》(1-13)
- Win10搭建gym运行atari游戏pong
- FPGA零基础学习之旅#1 AC620V2开发板测试
- 计算机搜索不了硬盘文件资料,解决WINDOWS痛点,本地文件搜索从未如此简单
- 服务器debian系统重置,如何重置Debian 10系统的root登录密码
- ActiveMq简单使用
- ipa反编译修改icon,简洁教程
- 利用jsp内置对象实现的简易聊天室
- hdu3265(好题翻译)
- select option
- R语言使用caret包的train函数构建adaboost模型、模型调优、自定义设置trainControl函数和tuneLength参数
- 数字信封的介绍2.0:定义,优点,原理