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



    中文词频统计

    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里面显示出来使用。

  • 相关阅读:
    根据某字符(字符串)分割字符串
    call函数心得
    Git之常用命令
    ES6之async与await
    CSS之 sass、less、stylus 预处理器的使用方式
    JavaScript之继承
    vue之keep-alive的使用
    CSS之单行、多行文本溢出显示省略号
    Vue之 watch、computed、filter之间的区别与使用场景
    Vue之watch监听对象中某个属性的方法
  • 原文地址:https://www.cnblogs.com/LRZluck/p/10597003.html
Copyright © 2020-2023  润新知