• python词云图与中文分词


    2019-12-12中文文本分词和词云图具体功能介绍与学习代码:

    import jieba
    a="由于中文文本的单词不是通过空格或者标点符号来进行分割"
    #jieba.lcut()s是最常用的中文分词函数,用于精准模式,即将字符串分割为等量的中文词组,返回结果是列表类型
    print(jieba.lcut(a))
    #jieba.lcut(s,cut_all=True):用于全模式,即将字符串所有分词可能均列出来,返回结果是列表类型,冗余性较大,速度很快,但是不能解决歧义的问题
    print(jieba.lcut(a,cut_all=True))
    #jieba.lcut_for_search函数主要是返回搜索引擎模式,该模式首先精准执行精确模式,然后再对其中的长词进行进一步的切片获得最终结果
    print(jieba.lcut_for_search(a))
    #jieba.add_word()函数主要用来增加jieba库中的内容新的单词
    jieba.add_word("燕江依")
    #词云图的绘制
    import wordcloud
    import jieba
    #英文的词云图生成比较简单,直接可以使用Wordcloud。generate()函数来进行,因为它是按照空格或者标点符号来进行划分
    t="i like Python,i am studying python"
    wd=wordcloud.WordCloud().generate(t) #Wordcloud类函数主要根据空格或者标点来进行划分和分词,主直接生成英文的词云图
    wd.to_file("test.png") #生成简单的文本词云图
    import matplotlib.pyplot as plt
    #对于中文文本的词云图生成,由于不是空格来进行划分,所以需要进行先中文分词,再将其以空格连接,之后对其进行Wordcloud的generate函数,这样便可以实现中文文本的词云图的生成
    a="程序设计语言是计算机能够理解和识别用户操作的一种交互体系,它可以按照规则组织计算机指令,是使得计算机进行目的的操作和实现"
    b=jieba.lcut(a) #中文文本需要先进行文本分词,在进行空格分隔
    newtext=" ".join(b)
    print(newtext)
    w=wordcloud.WordCloud(font_path="MSYH.TTF").generate(newtext) #font_path="msyh.ttc"词云图的字体设置,需要进行下载
    w.to_file("python.png") #词云图的两种显示方式:w.to_file()和plt.imshow(w)
    plt.imshow(w)
    plt.axis("off")
    plt.show()
    import wordcloud
    import imageio #可以使得词云图的输出和图片的样子一致
    mask=imageio.imread("孙悟空图片.jpg")
    with open("文本文档.txt","r") as f:
    text=f.read()
    wd=wordcloud.WordCloud(background_color="white",
    width=800,
    height=600,
    max_words=200,
    max_font_size=80,mask=mask,
    ).generate(text)
    plt.axis("off") #关掉坐标轴的显示
    plt.imshow(wd)
    wd.to_file("ciyuntu.png")
    plt.show()

    import jieba
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt

    s1 = """ 在克鲁伊夫时代,巴萨联赛中完成了四连冠,后三个冠军都是在末轮逆袭获得的。
    在91/92赛季,巴萨末轮前落后皇马1分,结果皇马客场不敌特内里费使得巴萨逆转。
    一年之后,巴萨用几乎相同的方式逆袭,皇马还是末轮输给了特内里费。
    在93/94赛季中,巴萨末轮前落后拉科1分。
    巴萨末轮5比2屠杀塞维利亚,拉科则0比0战平瓦伦西亚,巴萨最终在积分相同的情况下靠直接交锋时的战绩优势夺冠。
    神奇的是,拉科球员久基奇在终场前踢丢点球,这才有了巴萨的逆袭。"""

    s2 = """ 巴萨上一次压哨夺冠,发生在09/10赛季中。末轮前巴萨领先皇马1分,只要赢球就将夺冠。
    末轮中巴萨4比0大胜巴拉多利德,皇马则与对手踢平。
    巴萨以99分的佳绩创下五大联赛积分纪录,皇马则以96分成为了悲情的史上最强亚军。"""

    s3 = """在48/49赛季中,巴萨末轮2比1拿下同城死敌西班牙人,以2分优势夺冠。
    52/53赛季,巴萨末轮3比0战胜毕巴,以2分优势力压瓦伦西亚夺冠。
    在59/60赛季,巴萨末轮5比0大胜萨拉戈萨。皇马巴萨积分相同,巴萨靠直接交锋时的战绩优势夺冠。"""

    mylist = [s1, s2, s3]
    word_list = [" ".join(jieba.cut(sentence)) for sentence in mylist]
    new_text = ' '.join(word_list)
    wordcloud = WordCloud(font_path="MSYH.TTF",background_color="black").generate(new_text)
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()

     

  • 相关阅读:
    在java中写出完美的单例模式
    Zookeeper的功能以及工作原理
    java面试题之int和Integer的区别
    ActiveMQ面试专题
    并发队列ConcurrentLinkedQueue、阻塞队列AraayBlockingQueue、阻塞队列LinkedBlockingQueue 区别和使用场景总结
    Python requests 指定网卡ip发出请求
    Python 打包发布exe可执行文件
    Power BI 图标设置
    python git 基础操作
    C#通过SFTP协议操作文件
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12032079.html
Copyright © 2020-2023  润新知