zoukankan      html  css  js  c++  java
  • 广师大学习笔记之文本统计(jieba库好玩的词云)

    1.jieba库,介绍如下:

    (1) jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组;除此之外,jieba 库还提供了增加自定义中文单词的功能。

    (2) jieba 库支持3种分词模式:

    精确模式:将句子最精确地切开,适合文本分析。

    全模式:将句子中所以可以成词的词语都扫描出来,速度非常快,但是不能消除歧义。

    搜索引擎模式:在精确模式的基础上,对长分词再次切分,提高召回率,适合搜索引擎分词。

    2.按安装jieba库

    (1)在命令行下输入:pip inshtall jieba

    有进度条弹出来,再等待一下就安装好了。

    (2)调用库函数  1:导入库函数<库名>

    使用库中函数:<库名> . <函数名> (<函数参数>)

    4.jieba库函数

    (1)库函数常用的功能

    2.jieba库的应用

    3.利用jieba库统计一篇文章的出场顺序:

    上代码:

    复制代码
     1 # -*- coding: utf-8 -*-
     2 import jieba
     3 
     4 txt = open("D:\文本\Detective_Novel(utf-8)Detective_Novel(utf-8).txt", "r", encoding='utf-8').read()
     5 words = jieba.lcut(txt)     # 使用精确模式对文本进行分词
     6 counts = {}     # 通过键值对的形式存储词语及其出现的次数
     7 
     8 for word in words:
     9     if len(word) == 1:    # 单个词语不计算在内
    10         continue
    11     else:
    12         counts[word] = counts.get(word, 0) + 1    # 遍历所有词语,每出现一次其对应的值加 1
    13 
    14 items = list(counts.items())
    15 items.sort(key=lambda x: x[1], reverse=True)    # 根据词语出现的次数进行从大到小排序
    16 
    17 for i in range(3):
    18     word, count = items[i]
    19     print("{0:<5}{1:>5}".format(word, count))
    复制代码

    4.运行结果

    五。再利用wordcloud库生成词云图:

    1.安装wordcloud库 在命令行打pip install wordcloud 

    代码如下:

    复制代码
     1 from wordcloud import WordCloud
     2 
     3 import matplotlib.pyplot as plt #绘制图像的模块
     4 
     5 import jieba #jieba分词
     6 
     7 path_txt='D:\文本\Detective_Novel(utf-8)Detective_Novel
     8 l(utf-8)'
     9 
    10 f = open("D:\文本\Detective_Novel(utf-8)Detective_Novel(utf-8).txt", "r", encoding='utf-8').read()
    11 
    12 # 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
    13 
    14 cut_text = " ".join(jieba.cut(f))
    15 
    16 wordcloud = WordCloud(
    17 
    18 #设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
    19 
    20 font_path="C:/Windows/Fonts/simsun.ttc",
    21 
    22 #设置了背景,宽高
    23 
    24 background_color="black",width=2000,height=1200).generate(cut_text)
    25 
    26 plt.imshow(wordcloud, interpolation="bilinear")
    27 
    28 plt.axis("off")
    29 
    30 plt.show()
    复制代码

    运行结果如下:

  • 相关阅读:
    Mongo DB intro
    java class 初始化
    Java Multi-Thread
    Java Exception
    PHP基础2
    Java STL
    javascript getElemet 获取元素 (转)
    javascript 异常处理
    javascript 输出
    LinkButton跳转页面及传递参数(转载)
  • 原文地址:https://www.cnblogs.com/wangxinyu520/p/10649707.html
Copyright © 2011-2022 走看看