Python词云

词云图wordcloud

1.安装第三方库

j i e b a 库、 m a t p l o t l i b 、 w o r d c l o u d 库 jieba库、matplotlib、wordcloud库 jieba库、matplotlibwordcloud
民图灵机

2.过程

1.使用 j i e b a jieba jieba 库对数据进行分词整理,转为 t x t txt txt文件,转变为以空格分隔的词语字符串 s t r i n g string string
2.调用 w o r d c o l u d wordcolud wordcolud等函数绘制。

英文分词:

对于英文,使用空格来分开每个单词。
在这里插入图片描述

中文分词:

中文单独一个汉字跟词有时候就完全不是一个含义,所以中文分词比英文分词要难很多。
j i e b a jieba jieba分词利用一个中文词库,确定汉字之间的关联概率,概率大的组成词组,形成分词结果。

(1). j i e b a jieba jieba库分词的三种模式:
精确模式:把文本精确的分开,不存在冗余单词
全模式:把文中所有的词语都扫描出来,存在冗余单词
搜索引擎模式:在精确模式的基础上,对长词再次划分
(2).常用库函数:
在这里插入图片描述
在这里插入图片描述

有的时候,如果按照jieba正常分词,会把我们不希望分开的词语给分开,这个时候就会改变句子的意思。就如以下例子,我们希望 不喜欢 是一个词,不被分开:

import jieba
messages = jieba.cut("我不喜欢下雨天刮风")   #默认精确模式
print ( "/ ".join(messages)) 
运行结果:
我// 喜欢/ 下雨天/ 刮风

这个时候,我们可以使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来:

import jieba
messages = jieba.cut("我不喜欢下雨天刮风")   #默认精确模式
jieba.suggest_freq(('不喜欢'),tune=True)
print ( "/ ".join(messages)) 
运行结果:
我/ 不喜欢/ 下雨天/ 刮风

3.wordcloud的常用方法函数参数

参数:

1. f o n t _ p a t h : s t r i n g font\_path : string font_path:string : 字体路径,格式:字体路径+后缀名,
C : \ w i n d o w s \ F o n t \ w h i t e . t t f C:\backslash windows\backslash Font \backslash white.ttf C:\windows\Font\white.ttf
2. w i d t h : i n t ( d e f a u l t = 400 ) width : int(default=400) width:int(default=400) : 输出的画布宽度
3. h e i g h t : i n t ( d e f a u l t = 200 ) height : int (default =200) height:int(default=200) : 输出的画布高度
4. p r e f e r _ h o r i z o n t a l : f l o a t ( d e f a u l t = 0.90 ) prefer\_horizontal : float(default=0.90) prefer_horizontal:float(default=0.90) : 词语水平方向排版出现的频率,垂直方向做差。
5. s c a l e : f l o a t ( d e f a u l t = 1 ) scale : float(default=1) scale:float(default=1) : 按照比例放大画布,如设置 s c a l e = 2 scale=2 scale=2,则长宽都是原来的 2 2 2倍。
6. m i n _ f o n t _ s i z e : i n t ( d e f a u l t = 4 ) min\_font\_size : int(default=4) min_font_size:int(default=4) : 显示的最小字体的大小。
7. m a x _ w o r d s : i n t ( d e f a u l t = 200 ) max\_words : int(default=200) max_words:int(default=200) : 显示的词的最大个数。
8. b a c k g r o u n d _ c o l o r : ( d e f a u l t = ′ b l a c k ′ ) background\_color : (default='black') background_color:(default=black) :背景颜色。
9. m a x _ f o n t _ s i z e : i n t ( d e f a u l t = N o n e ) max\_font\_size : int(default=None) max_font_size:int(default=None) : 显示的最大字体的大小。
10. m a s k : n p . a r r a y 、 N o n e mask : np.array 、None mask:np.arrayNone :参数为空,默认词云形状为长方形。

函数:

1. g e n e r a t e _ f r o m _ t e x t ( t e x t ) generate\_from\_text(text) generate_from_text(text):根据文本生成词云。
2. g e n e r a t e ( t e x t ) generate(text) generate(text) : 根据文本生成词云。
3. g e n e r a t e _ f r o m _ f r e q u e n c i e s ( f r e q u e n c i e s [ , . . . ] ) generate\_from\_frequencies(frequencies[, ...]) generate_from_frequencies(frequencies[,...]) : 根据词频生成词云。
4. t o _ f i l e ( f i l e n a m e ) to\_file(filename) to_file(filename) : 输出到文件。

def generate(self, text):
    """Generate wordcloud from text.
    The input "text" is expected to be a natural text. If you pass a sorted
    list of words, words will appear in your output twice. To remove this
    duplication, set ``collocations=False``.
    Alias to generate_from_text.
    Calls process_text and generate_from_frequencies.
    Returns
    -------
    self
    """
    return self.generate_from_text(text)

def generate_from_text(self, text):
    """Generate wordcloud from text.
    The input "text" is expected to be a natural text. If you pass a sorted
    list of words, words will appear in your output twice. To remove this
    duplication, set ``collocations=False``.
    Calls process_text and generate_from_frequencies.
    ..versionchanged:: 1.2.2
        Argument of generate_from_frequencies() is not return of
        process_text() any more.

    Returns
    -------
    self
    """
    words = self.process_text(text)
    self.generate_from_frequencies(words)
    return self


调用过程:
g e n e r a t e ( s e l f , t e x t ) ⇒ s e l f . g e n e r a t e _ f r o m _ t e x t ( t e x t ) ⇒ w o r d = s e l f . p r o c e s s _ t e x t s e l f . g e n e r a t e _ f r o m _ t e x t ( w o r d ) generate(self, text) \Rightarrow self.generate\_from\_text(text) \Rightarrow \\word=self.process\_text \\ self.generate\_from\_text(word) generate(self,text)self.generate_from_text(text)word=self.process_textself.generate_from_text(word)

实例

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值