• 中文词频统计与词云生成



    中文词频统计

    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 matplotlib.pyplot as plt
    import jieba
    import pandas as pd
    
    
    f = open('luxun.txt', 'r', encoding='utf-8') #读取小说内容
    lx = f.read()
    f.close()
    
    f1 =  open('def.txt', 'r', encoding='utf-8')  #读取无用中文关键词
    kai = f1.read()
    f1.close()
    
    for i in [' ','
    ']:
        lx = lx.replace(i, '')
    #jieba添加词典与关键词
    jieba.add_word("鲁迅")
    jieba.load_userdict('fff.txt')
    kk=jieba.lcut(lx)  #用jieba切割nov
    
    
    #token过滤无用关键词,洗掉
    waste=kai.split('
    ')
    tokens = [token for token in kk if token not in kai]
    
    
    wordDict = {}
    wordSet = set(tokens)
    for w in wordSet:
        if len(w)>1:
            wordDict[w] = tokens.count(w)
    
    ##排序
    wordlist = sorted(wordDict.items(), key = lambda x:x[1], reverse = True)
    
    cut = " ".join(tokens)
    
    
    ##输出词频最大TOP20
    for i in range(20):
        print(wordlist[i])
    
    ##把结果存放到文件里
    pd.DataFrame(data=wordlist).to_csv('text.csv', encoding='UTF-8')

    def文本:洗掉的无关词,排除语法型词汇,代词、冠词、连词等停用词

    生成的csv:

    词云:由于在经历四个小时的wordcloud的安装失败,所以无法使用wordcloud包。

    使用cmd安装成功wordcloud后也不能在pycharm里面显示出来使用。

  • 相关阅读:
    MySQL中的while循环和repeat循环的区别
    Python 基础语法_Python脚本文件结构
    Python 基础语法_Python脚本文件结构
    MySQL存储过程和函数的区别
    第四章 语句和声明
    haproxy 4层和7层负载
    献血是件很赞的事——北漂18年(26)
    JavaScript字符串数值比较问题
    MySQL查看所有可用的字符集
    MySQL获取表格信息
  • 原文地址:https://www.cnblogs.com/LRZluck/p/10597003.html
Copyright © 2020-2023  润新知