封装汉语自然语言处理中的常用方法(附代码:生成中文词云)
前叙
该文章写作共花费二十分钟,阅读只需要七分钟左右,读完该文章后,你将学会使用少量代码,将中文小说,中文新闻,或者其他任意一段中文文本生成词云图
背景
在进行汉语自然语言处理时候,经常使用的几个方法,分词,清除停用词,以及获取新词,为了方便使用我们将其封装.
这样我们就可以通过一行简单的代码获取清除停用词并和英语一样分词完毕,并以空格分割的汉语字符串,或者还可以获得其他功能.
至于之所以加上这个例子,是因为之前写的任意中文文本生成中文词云代码比较,不宜于使用,而这次发的最基础版本的文件:FontCN_NLPtools.py 其功能完全是适宜于生成词云的例子,这样就可以通过少量代码,获取中文词云
代码结构
结构简介
- class FontCN_NLPtools()
- __init__(self, textPath, stopwordsPath):
- def ReadText(self, NewTextPath=False): # 读取文本,默认为初始化时传入的文本
- def getNewWordsByNLPIR(self, number): # 自动发现单词,这是其他类调用的方法
- def getNewWords(self, GetNewWordsNumber=20): # 获取新的单词,添加到self.__newWords,并将其返回
- def addUserWords(self, NewWordsList): # 向用户词库self.__userWords 中添加新单词
- def jiebaClearAndCutText(self, isAddWord=False): # 使用结巴清理停用词并返回分词字符串
- def NLPIRClearText(self, isAddWord=False): # 使用NLPIR清理停用词
- def NLPIR2016CutText(self): # 使用NLPIR分词
- def getText(self, isJieba=True, isAddWord=False, GetNewWordsNumber=30): # 直接获取分词完毕并清理停用词后的中文字符串
使用示例:
import FontCN_NLPtools as ftstext_path = 'txt/lztest.txt' # 设置要分析的文本路径
stopwords_path = 'stopwords\CNENstopwords.txt' # 停用词词表fontsTools = fts.FontCN_NLPtools(textPath=text_path, stopwordsPath=stopwords_path)# fontsTools.addUserWords([u'路明非'])# 便捷的处理完毕的中文字符串
text = fontsTools.getText(isAddWord=True)# 处理第二段文本
fontsTools.ReadText(NewTextPath=u'E:\Pythonfiles2.7\NLP\汉语自然语言处理基本组件\txt\dazhuzai17523.txt')newText = fontsTools.getText(isAddWord=True)# 或者只调用一个方法,或者进行任意组合
fontsTools.ReadText(NewTextPath=u'E:\Pythonfiles2.7\NLP\汉语自然语言处理基本组件\txt\dazhuzai17523.txt')cutText = fontsTools.jiebaClearAndCutText()
cutText2 = fontsTools.NLPIR2016CutText()# 在之后的版本中,我将会讲NLPIR以及jieba或者其他自然语言处理的类库进行高级封装,这样它将会更加简洁,近期我将会直接将词云生成功能封装到该文件中,并在之后的时间内在该code中陆续地添加其他新的功能,如果你有什么想法可以发送邮件给我:fonttian@gmail.com
下载地址我的NLP源码下载合集
例子,生成中文词云
代码阅读说明
其结构与之前代码差距不大,仍然使用绘梨衣与路明非的图片进行演示.
相较于之前的文章 Python词云 wordcloud 十五分钟入门与进阶不同之处在于
- 我们这次不需要在wordcloud 设置停用词
- 我们将图片保存了下来
wc.to_file('保存路径')
- 对wc进行了更详细的设置
代码如下
# - * - coding: utf - 8 -*-
#
# 作者:田丰(FontTian)
# 创建时间:'2017/7/28'
# 邮箱:fonttian@Gmaill.com
# CSDN:http://blog.csdn.net/fontthrone
from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import sysreload(sys)
sys.setdefaultencoding('utf-8')import FontCN_NLPtools as ftsd = path.dirname(__file__)text_path = 'txt/lztest.txt' # 设置要分析的文本路径
stopwords_path = 'stopwords\CNENstopwords.txt' # 停用词词表fontsTools = fts.FontCN_NLPtools(textPath=text_path, stopwordsPath=stopwords_path)
fontsTools.addUserWords([u'路明非'])
text = fontsTools.getText(isAddWord=True)font_path = 'D:\Fonts\simkai.ttf' # 为worldcloud设置中文字体路径没
back_coloring_path = "img/lz1.jpg" # 设置背景图片路径imgname1 = "WordCloudDefautColors.png" # 保存的图片名字1(只按照背景图片形状)
imgname2 = "WordCloudColorsByImg.png" # 保存的图片名字2(颜色按照背景图片颜色布局生成)
back_coloring = imread(path.join(d, back_coloring_path)) # 设置背景图片# 设置词云属性
wc = WordCloud(font_path=font_path, # 设置字体background_color="white", # 背景颜色max_words=2000, # 词云显示的最大词数mask=back_coloring, # 设置背景图片max_font_size=100, # 字体最大值random_state=42,width=1000, height=860, margin=2, # 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会)# 生成词云, 可以用generate输入全部文本(wordcloud对中文分词支持不好,建议启用中文分词),也可以我们计算好词频后使用generate_from_frequencies函数
wc.generate(text)
# 从背景图片生成颜色值
image_colors = ImageColorGenerator(back_coloring)plt.figure()
# 以下代码显示图片
plt.imshow(wc)
plt.axis("off")
plt.show()
# 绘制词云# 保存图片
wc.to_file(path.join(d, imgname1))image_colors = ImageColorGenerator(back_coloring)plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
# 绘制背景图片为颜色的图片
plt.figure()
plt.imshow(back_coloring, cmap=plt.cm.gray)
plt.axis("off")
plt.show()
# 保存图片
wc.to_file(path.join(d, imgname2))
效果如下
封装汉语自然语言处理中的常用方法(附代码:生成中文词云)相关推荐
- python生成中文词云的代码_[python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写...
1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意 ...
- python词云代码手机_Python词云入门——十行代码即可领取爱豆!
快来领取你的爱豆哇! 词云图大家应该不会陌生,即是由词汇组成类似云的彩色图形. 今天Henry带领大家一起学习用Python自带的词云库--wordcloud在十行代码内绘制出精美的词云图! 首先放一 ...
- python词云需要导入什么包_[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写...
词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客. ...
- python生成的词云没有图案_Python生成词云的实现代码
1 概述 利用Python生成简单的词云,需要的工具是cython,wordcloud与anaconda. 2 准备工作 包括安装cython,wordcloud与anaconda. 2.1 安装an ...
- python中做为词云轮廓的图片_WordCloud制作词云(2)--以图片为轮廓附制作心形词云❤...
准备工作: 1. 安装matplotlib以及numpy 2. 文本内容(英文最好,官方不支持中文词分割,第三节涉及到中文支持问题,可跳转查看中文支持,可以直接复制文本,也可以读取文本文件) 3. 一 ...
- 几行Python代码帮你生成精美词云图
近年来,互联网.新媒体等行业报告中经常会看到一些精美的词云图.它的原理其实比较简单,主要是对文章内容进行分词,统计各个词出现的次数,然后根据出现的次数,设置显示样式,例如大小.颜色等,从而使读者快速领 ...
- 词云可视化——四行代码轻松上手
所需的Python第三方模块: wordcloud.imageio.jieba与matplotlib 安装命令如:pip install wordcloud 1号词云:(四行代码上手) # 导入词云制 ...
- 词云可视化:四行Python代码轻松上手到精通
词云可视化:四行Python代码轻松上手到精通 文章目录 词云可视化:四行Python代码轻松上手到精通 本课概要 关于本课程 `粉丝答疑交流QQ群:953712961` `微信赞赏码` 不需要写代码 ...
- python词云代码简单_Python 简单实现标签词云
基于Python的词云生成类库,很好用,而且功能强大.博主个人比较推荐 github:https://github.com/amueller/word_cloud 官方地址:https://amuel ...
最新文章
- 概率论 - BZOJ - 4001 TJOI2015
- LeetCode:85. 最大矩形
- ubuntu18.4 安装swoole 和 php 扩展 swoole
- yield return关键字怎么使用?
- 时序分析:手势--空间轨迹模式识别
- linux 下的microsoft to do软件(Ao)
- java 关闭串口_java – 打开和关闭串行端口
- python去掉数字列表中括号_如何从列表中的元素中移除括号(Python)
- linux 多线程基础2
- 2013阿里技术嘉年华:阿里数据同步前世今生
- PHP网站加功能,如何实现添加分类的功能
- NLP技术基石:从N-gram统计语言模型到BERT预训练模型演变史概述
- 舞台音效控制软件_iSurround(电脑音效调节器) V1.0.0.1 官方版
- 24小时改变你的人生【转】
- Access入门之索引查询
- Arduino之PlatformIO_串口监视器使用
- 南京大学计算机学院英才计划,2020年“英才计划”工作实施方案
- ker矩阵是什么意思_基向量、标准正交基、对称矩阵、Hermite阵
- 最新苹果商务管理ABM注册及使用
- 【DL-安装遇错】解决出现 pip‘s dependency resolver does not currently take into account all the packages that..
热门文章
- 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
- visual studio 2015开发nodejs教程1搭建环境
- 《软件测试技术实战:设计、工具及管理》—第2章 2.2节运用决策表设计测试用例...
- 私有云Opetstack的创建与运用
- ASP删除黑客建立的只读文件夹和文件
- 简易ASP文件缓存技术
- 通过VMware vsphere搭建集群
- 员工之间可不可以交流工资收入?
- Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
- Android --- 如何使状态栏和标题栏底色相同