分词


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 文本预处理相关推荐

  1. python nltk —— 文本预处理

    下载: import nltk nltk.download() 0. 语法知识 N:名词, V:动词,ADJ:形容词,ADV:副词, proper noun:专有名词 pronoun:代词,he/he ...

  2. python 英语分词_基于Python NLTK库进行英文文本预处理

    文本预处理是要文本处理成计算机能识别的格式,是文本分类.文本可视化.文本分析等研究的重要步骤.具体流程包括文本分词.去除停用词.词干抽取(词形还原).文本向量表征.特征选择等步骤,以消除脏数据对挖掘分 ...

  3. NLP任务中的文本预处理步骤、工具和示例

    作者 | Viet Hoang Tran Duong 来源 | DeepHub IMBA 头图 | CSDN付费下载于视觉中国 数据是新的石油,文本是我们需要更深入钻探的油井.文本数据无处不在,在实际 ...

  4. Python文本预处理:步骤、使用工具及示例

    作者 | Data Monster 译者 | Linstancy 编辑 | 一一 出品 | AI科技大本营(ID:rgznai100) 本文将讨论文本预处理的基本步骤,旨在将文本信息从人类语言转换为机 ...

  5. 【NLP】文本预处理:删除单词停用词

    作者 | Chetna Khanna 编译 | VK 来源 | Towards Data Science 我们很清楚这样一个事实:计算机可以很容易地处理数字. 然而,我们掌握的大部分信息都是以文本的形 ...

  6. 数据科学和人工智能技术笔记 五、文本预处理

    五.文本预处理 作者:Chris Albon 译者:飞龙 协议:CC BY-NC-SA 4.0 词袋 # 加载库 import numpy as np from sklearn.feature_ext ...

  7. 动手学深度学习(文本预处理+语言模型+循环神经网络基础)

    文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 分词 建立字典,将每个词映射到一个唯一的索引(index) ...

  8. Task02:学习笔记文本预处理;语言模型;循环神经网络基础

    Task02:学习笔记文本预处理:语言模型:循环神经网络基础 文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 ...

  9. U1C2 文本预处理

    U1C2 Text pre-processing 一.正则表达式 - Regular Expressions 1.基本正则表达式模式 Basic Regular Expression Patterns ...

最新文章

  1. sql%notfound与exception
  2. PostgreSQL在何处处理 sql查询之十二
  3. 马士兵java note 5
  4. LeetCode—207. 课程表
  5. Inside Class Loaders
  6. 圳不完全启示录之初来乍到----2
  7. Python环境下如何安装爬虫需求的一些库
  8. 【数据库】MySql分割字符串
  9. 《Doom启示录》(1-13)
  10. Win10搭建gym运行atari游戏pong
  11. FPGA零基础学习之旅#1 AC620V2开发板测试
  12. 计算机搜索不了硬盘文件资料,解决WINDOWS痛点,本地文件搜索从未如此简单
  13. 服务器debian系统重置,如何重置Debian 10系统的root登录密码
  14. ActiveMq简单使用
  15. ipa反编译修改icon,简洁教程
  16. 利用jsp内置对象实现的简易聊天室
  17. hdu3265(好题翻译)
  18. select option
  19. R语言使用caret包的train函数构建adaboost模型、模型调优、自定义设置trainControl函数和tuneLength参数
  20. 数字信封的介绍2.0:定义,优点,原理

热门文章

  1. 实现数组类(C++ 拷贝构造函数、拷贝函数)要判断赋值左右对象不相等,坑惨了...
  2. 开源作品ThinkJDBC—一行代码搞定数据库操作
  3. vue.js组件学习(上)
  4. nginx源码安装教程(CentOS)
  5. 七牛云音视频新功能:音频支持AAC_HE
  6. Oracle日期相关
  7. CloudStack部署运维手册V2 --- 新鲜出炉
  8. JVM的垃圾回收与内存分配
  9. 理解WebKit和Chromium: Chromium for Android
  10. 视频解码基础知识(二)