zoukankan      html  css  js  c++  java
  • 中文词频统计与词云生成

    本次作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822

    中文词频统计

    1. 下载一长篇中文小说。

    2. 从文件读取待分析文本。

    3. 安装并使用jieba进行中文分词。

    pip install jieba

    import jieba

    jieba.lcut(text)

    4. 更新词库,加入所分析对象的专业词汇。

    jieba.add_word('天罡北斗阵')  #逐个添加

    jieba.load_userdict(word_dict)  #词库文本文件

    参考词库下载地址:https://pinyin.sogou.com/dict/

    转换代码:scel_to_text

    5. 生成词频统计

    6. 排序

    7. 排除语法型词汇,代词、冠词、连词等停用词。

    stops

    tokens=[token for token in wordsls if token not in stops]

    8. 输出词频最大TOP20,把结果存放到文件里

    9. 生成词云。

    import jieba
    
    
    with open(r'F:stops_chinese.txt', 'r', encoding='utf-8')as f:
        stops = f.read().split('
    ')
    
    txt = open("A Dream in Red Mansions.txt", "r", encoding='utf-8', errors='replace').read()  # ?????
    words = jieba.lcut(txt)
    counts = {}
    for word in words:
        if len(word) == 1:
            continue
        else:
            counts[word] = counts.get(word, 0) + 1
    
    items = list(counts.items())
    items.sort(key=lambda x: x[1], reverse=True)
    for i in range(15):
        word, count = items[i]
        print("{0:<10}{1:>5}".format(word, count))
    
    jieba.add_word('天罡北斗阵')  #逐个添加
    jieba.load_userdict(r"F:红楼梦【官方推荐】.txt")  #词库文本文件
    #token过滤无用关键词
    tokens = [token for token in words  if token not in stops]
    Set = set(tokens)#把tokens转换为集合方便字典统计
    Dict = {}  # 创建一个字典统计词频
    for i in Set:
        Dict[i] = tokens.count(i)
    for i in range(20):  # 输出词频前20的词语
        print(words[i])
    
    import pandas as pd
    
    # pd.DataFrame(data=word).to_csv('pby.csv', encoding='utf-8')
    #生成词云图,进行字体变量配置后用空格分割内容
    wl_split =' '.join(tokens)
    from wordcloud import WordCloud
    mywc1 = WordCloud().generate(wl_split)
    import matplotlib.pyplot as plt
    plt.imshow(mywc1)
    plt.axis("off")
    plt.show()

    生成的top20:

    词云:

  • 相关阅读:
    Solution: Win 10 和 Ubuntu 16.04 LTS双系统, Win 10 不能从grub启动
    在Ubuntu上如何往fcitx里添加输入法
    LaTeX 笔记---Q&A
    Hong Kong Regional Online Preliminary 2016 C. Classrooms
    Codeforces 711E ZS and The Birthday Paradox
    poj 2342 anniversary party
    poj 1088 滑雪
    poj 2479 maximum sum
    poj 2481 cows
    poj 2352 stars
  • 原文地址:https://www.cnblogs.com/zjby/p/10593124.html
Copyright © 2011-2022 走看看