jieba库使用和好玩的词云

一、jieba库的使用

1.jieba库介绍

jieba是优秀的中文分词第三方库,使用pip安装后可以使用其来对中文文本进行分词

特点:

  • 支持三种分词模式:

    • 精确模式,试图将句子最精确地切开,适合文本分析,单词无冗余;
    • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义,存在冗余;
    • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • 支持繁体分词

  • 支持自定义词典

  • MIT 授权协议

 

2.jieba库方法

(1)jieba库3种分词方法(3种模式)

3种模式对应的方法如下:

  • cut(s)和lcut(s)                            # 精确模式
  • lcut(s, cut_all=True)                             # 全模式(存在冗余)
  • cut_for_search(s)和lcut_for_search(s)     # 搜索模式(存在冗余)

注:cut()和lcut()的不同:cut返回的是生成器,lcut返回的是列表。cut_for_search()和lcut_for_search()也是前者返回生成器,后者返回列表

另外:

  • cut 方法lcut方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
  • cut_for_search 方法和lcut_for_searchlcut_for_search接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
  • 待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8

示例:

结果:

 

 

(2)向字典中添加新词或添加自定义词典

使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典,当然也可以使用load_userdict(file_name)来导入自定义字典

最简单的用法:add_word() 直接向分词词典中添加新词

示例:

 

接下来是词云制作:

将“C:\Windows\Fonts”下的微软雅黑字体文件复制到“E:\ciyun\fonts\”目录中,备用。

将github仓库中的“规划纲要”文档text.md下载到“E:\ciyun\”目录中,备用。md文件为类txt文档,可以使用系统自带的记事本打开查看文档内容。

以下操作的截图,详见github仓库中的操作截图ciyun.jpg。

点击打开安装好的Anaconda命名提示符(Anaconda Prompt),执行ipython命令打开python操作环境。

把jieba和wordcloud以及plt绘图工具导入备用:

In [1]: import jieba as jb

In [2]: from wordcloud import WordCloud

In [3]: import matplotlib.pyplot as plt

四、对《规划纲要》文档预处理

读入《规划纲要》文档:

In [4]: text = open(‘E:\ciyun\text.md’, encoding=’utf-8’).read()

可以输入text后回车,查看读入的文档内容, 限于篇幅,截图中没有进行该操作,大家可自行操作。

发现文档中有大量的“\n\n”、“#”、“\u3000”等无意义的内容,

去掉“\u3000”;去掉连续换行符,去掉“#”:

In [5]: text = text.replace(‘\u3000’,’’)

In [6]: text = text.replace(‘\n\n’,’\n’)

In [7]: text = text.replace(‘#’,’’)

可以输入text后回车查看处理后的文档内容。

五、使用jieba对文档进行分词

使用jieba的cut函数对文档进行切分,使用“/”符号把分词连起来,备用:

In [8]: seg_list = jb.cut(text)

In [9]: text_cut = ‘/‘.join(seg_list)

此时,可以输入text_cut后回车,查看用“/”符号分割的文档字符。

六、使用wordcloud制作词云

设置词云图片的背景色为白色,字体为微软雅黑,图片宽度和高度,以分词为内容生成词云:

In [10]: wordcloud = WordCloud(background_color=”white”,font_path=’E:\fonts\msyh.ttf’,width=1000, height=860, margin=2).generate(text_cut)

把词云放置在绘图工作中;隐藏图片的坐标轴;显示绘图结果:

In [11]: plt.imshow(wordcloud);plt.axis(“off”);plt.show()

点击绘图结果中的保存按钮,选择保存位置,保存词云图片。也可以自行调整相关的参数,查看不同的词云效果。

退出ipython:

In [12]: exit

再次exit退出Anaconda命名提示符(Anaconda Prompt)。

以《“健康中国2030”规划纲要》文档为例,在python中使用jieba分词和wordcloud词云制作工具,制作该文档的简单版词云,最终结果如下:

 

转载于:https://www.cnblogs.com/debruyne17/p/10652021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值