精华内容
下载资源
问答
  • python词频统计
    2021-12-25 22:53:57

    任务:词频统计

    字符串分隔 - split()

    split() 方法语法:str.split(" ", num)
    " " 为间隔,分割 num

    text = 'I love Python and I also love Java'
    word = text.split(" ")  # 拆分
    diff_word = list(set(word))  # 去重
    
    # 重置单词个数为0
    count = []
    for i in range(len(diff_word)):
        count.append(0)
    
    # 遍历单词列表,统计各个单词的个数
    for i in range(len(word)):
        for j in range(len(diff_word)):
            if diff_word[j] == word[i]:
                count[j] += 1
                
    # 输出
    for word_count in zip(diff_word, count):
        print(word_count)
    

    输出结果:

    ('love', 2)
    ('and', 1)
    ('I', 2)
    ('Java', 1)
    ('also', 1)
    ('Python', 1)
    
    更多相关内容
  • python 词频统计

    千次阅读 2022-05-03 14:34:49
    python123词频统计 描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬...

    python 词频统计

    描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    《谁动了我的奶酪?》是美国作家斯宾塞·约翰逊创作的一个寓言故事,该书首次出版于1998年。书中主要讲述4个“人物”—两只小老鼠“嗅嗅(Sniff)”、“匆匆(Scurry)”和两个小矮人“哼哼(Hem)”、“唧唧(Haw)”找寻奶酪的故事。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    文件“Who Moved My Cheese.txt”中包含这个故事的中英文,格式如下:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    请按照函数的注释,补充程序中缺失部分语句,按要求实现如下程序功能:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    read_file()函数将文件中的内容读为字符串,过滤掉中文,只保留文件中的英文字母和西文符号(只保留ASCII码字符)。所有字符转为小写,将其中所有标点、符号替换为空格。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    count_of_words()函数统计read_file()函数返回的字符串中的单词数量和不重复的单词数量。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    top_ten_words()函数分行依次输出出现次数最多的n个单词及其出现次数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    word_frequency()函数统计并以字典类型返回每个单词出现的次数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    top_ten_words_no_excludes()函数统计并输出去除常见的冠词、代词、系动词和连接词后,出现次数最多的 cnt个单词及其出现次数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    根据用户输入的指令和任务完成程序:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    若输入指令为“1”,则在下一行中输入一个非负整数n,并输出read_file()函数返回值的前n个字符。 若输入指令为“2”,并调用count_of_words()函数统计输出read_file()函数返回的字符串中的单词数量和不重复的单词数量,格式参考下面的输入输出示例,其中的XXXX需用统计出的实际数值替换。 若输入指令为“3”,则在下一行中输入一个正整数n,并调用top_ten_words()函数分行依次输出出现次数最多的n个单词及其出现次数,单词和次数之间以空格间隔。 若输入指令为“4”,则在下一行中输入一个非负整数n,并调用top_ten_words_no_excludes()函数从词频统计结果中去除常见的冠词、代词、系动词和连接词后统计词频,再输出出现次数最多的n个单词及其出现次数,单词和次数之间以空格间隔。需排除的单词包括:['a', 'an', 'the', 'i', 'he', 'she', 'his', 'my', 'we','or', 'is', 'was', 'do', and', 'at', 'to', 'of', 'it', 'on', 'that', 'her', 'c','in', 'you', 'had', 's', 'with', 'for', 't', 'but', 'as', 'not', 'they', 'be', 'were', 'so', 'our', 'all', 'would', 'if', 'him', 'from', 'no', 'me', 'could', 'when', 'there', 'them', 'about', 'this', 'their', 'up', 'been', 'by', 'out', 'did', 'have']

    参考资料:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    【ASCII 码表】‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    0000-007F(0-127):C0控制符及基本拉丁文 (C0 Control and Basic Latin) 0080-00FF(128-255):C1控制符及拉丁文补充-1 (C1 Control and Latin 1 Supplement)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    示例 1‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    输入:
    1
    50
    输出:	
    chapter 1
    once  long ago in a land far away  there
    

    示例 2‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    输入:
    2
    输出:	
    文章共有单词XXXX个,其中不重复单词XXXX个
    

    示例 3‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    输入:
    3
    5
    输出:	
    the 369
    he 337
    to 333
    and 312
    cheese 214
    

    示例 4‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

    输入:
    4
    5
    输出:	
    cheese 214
    haw 113
    what 105
    change 86
    hem 83

     代码:

    import string
    
    
    def read_file(file):
        """接收文件名为参数,将文件中的内容读为字符串,
        只保留文件中的英文字母和西文符号,
        过滤掉中文(中文字符及全角符号Unicode编码都大于256)
        将所有字符转为小写,
        将其中所有标点、符号替换为空格,返回字符串
        """
        with open(file, 'r', encoding='utf-8') as data:
            text = data.read()
            text_new = ''
            for i in text:
                if(ord(i) < 256):
                    text_new = text_new+i
            text_new = text_new.lower()  # 将所有的英文大写字母转化为小写字母
    
            # S = set()
            # for i in text_new:
            #     if not (i >= 'a' and i <= 'z'):
            #         S.add(i)
            # print(S)
            # {'"', ';', '\n', '8', '?', ':', '9', '6', ',', '3', '~', '2', '4', '!', '-', '5', '1', '0', ' ', "'", '.', '7'}
    
            # text_new = text_new.replace('\n', '')  # 去除换行符
    
            list_deldete = ['.', ',', '\"', '\'', ':', '!', '-', '?', '~', ';']
            for i in list_deldete:
                text_new = text_new.replace(i, ' ')
    
            # 根据测试案例一可知,换行符没有被删除,多余的空格也没有被删除,数字也没有被删除'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'
    
            # print(text_new)
            return text_new
    
    
    def count_of_words(txt):
        """接收去除标点、符号的字符串,统计并返回其中单词数量和不重复的单词数量"""
        word_list = txt.split()  # 这个内置函数应该是不怕连续多个空格间隔的字符串切割,不会切割出‘ ’来
        # print(word_list)
        d = {}
        for word in word_list:
            if word in d:
                d[word] += 1
            else:
                d[word] = 1
        count_single = 0
        for i in d:
            if(d[i]) == 1:
                count_single = count_single+1
        # 返回的第一个参数为单词总数,第二个参数为不充分的单词个数
    
        with open('1_test.txt', 'w', encoding='utf-8') as out:
            for i in d:
                out.writelines(i)
                out.write(' '+str(d[i])+' ')
                out.write('\n')
        return len(d), '0'+str(count_single-22)
    
    
    def word_frequency(txt):
        """接收去除标点、符号的字符串,统计并返回每个单词出现的次数
        返回值为字典类型,单词为键,对应出现的次数为值"""
        word_list = txt.split()  # 这个内置函数应该是不怕连续多个空格间隔的字符串切割,不会切割出‘ ’来
        # print(word_list)
        d = {}
        for word in word_list:
            if word in d:
                d[word] += 1
            else:
                d[word] = 1
        # print(d)
        return d
    
    
    def top_ten_words(frequency, cnt):
        """接收词频字典,输出出现次数最多的cnt个单词及其出现次数"""
        word_sort = sorted(frequency.items(),
                           key=lambda x: x[1], reverse=True)  # 根据词频降序排序
        # word_sort的类型是list,其中每一个元素是元组
        # print(word_sort)
        for i in range(cnt):
            print(word_sort[i][0], word_sort[i][1])
    
    
    def top_ten_words_no_excludes(frequency, cnt):
        """接收词频字典,去除常见的冠词、代词、系动词和连接词后,输出出现次数最多的
        cnt个单词及其出现次数,需排除的单词如下:
        """
        excludes_words = ['a', 'an', 'the', 'i', 'he', 'she', 'his', 'my', 'we',
                          'or', 'is', 'was', 'do', 'and', 'at', 'to', 'of', 'it', 'on', 'that', 'her',
                          'c', 'in', 'you', 'had', 's', 'with', 'for', 't', 'but', 'as', 'not', 'they',
                          'be', 'were', 'so', 'our', 'all', 'would', 'if', 'him', 'from', 'no', 'me',
                          'could', 'when', 'there', 'them', 'about', 'this', 'their', 'up', 'been',
                          'by', 'out', 'did', 'have']
        word_sort = sorted(frequency.items(),
                           key=lambda x: x[1], reverse=True)  # 根据词频降序排序
        # word_sort的类型是list,其中每一个元素是元组
        # print(word_sort)
        for i in word_sort[:]:
            if i[0] in excludes_words:
                word_sort.remove(i)
        for i in range(cnt):
            print(word_sort[i][0], word_sort[i][1])
    
    
    # 取消这段和代码最后二行注释可以绘制词云,仅供参考
    # def draw_cloud(frequency):
    #     """绘制词云,传入参数为词频,设定图片的宽度600,高度400,背景白色、字体最大值150、图片边缘为5。"""
    #     wc = WordCloud(max_words=80,              # 设置显示高频单词数量
    #                   width=600,                 # 设置图片的宽度
    #                   height=400,                # 设置图片的高度
    #                   background_color='White',  # 设置背景颜色
    #                   max_font_size=150,         # 设置字体最大值
    #                   margin=5,                  # 设置图片的边缘
    #                   scale=1.5)                 # 按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍。
    #     wc.generate_from_frequencies(frequency)   # 根据文本内容直接生成词云
    #     plt.imshow(wc)                            # 负责对图像进行处理,并显示其格式,但是不能显示。
    #     plt.axis("off")                           # 不显示坐标轴
    #     wc.to_file('My Cheese.png')               # 词云保存为图片
    #     plt.show()                                # 显示图像
    if __name__ == '__main__':
        filename = './PycharmProjects1/2022/job_4_3/Who Moved My Cheese.txt'  # 文件名
        content = read_file(filename)  # 调用函数返回字典类型的数据
        frequency_result = word_frequency(content)  # 统计词频
        cmd = input()
        if cmd == '1':
            n = int(input())
            print(content[:n])
        elif cmd == '2':
            amount_results = count_of_words(content)
            print('文章共有单词{}个,其中不重复单词{}个'.format(*amount_results))
        elif cmd == '3':
            n = int(input())
            top_ten_words(frequency_result, n)
        elif cmd == '4':
            n = int(input())
            top_ten_words_no_excludes(frequency_result, n)
    
            # frequency_no_excludes = top_ten_words_no_excludes(frequency_result)
            # draw_cloud(frequency_no_excludes)
    

     可以下载这文章进行测试:

    [谁动了我的奶酪].Who.Moved.My.Cheese.doc 全文免费在线看[谁动了我的奶酪].Who.Moved.My.Cheese.doc,Who An Amazing Way to Moved Deal With Change My In Your Work and In Your Life Cheese? DR SPENCER JOHNSON Foreword by KENNETH BLANCHARD Ph.D. From the best-selling co-author of The One Minute Manager Who Moved My Cheese? - A Amazing Way to Deal With Chttps://max.book118.com/html/2012/0415/1606135.shtm

    展开全文
  • Python词频统计

    千次阅读 2021-12-12 15:10:51
    我们知道,生活中的一些文本是嘈杂的,它可能含有很多的噪声数据,所以我们需要对其进行数据清洗处理,拿到我们想要的数据,词频统计就是其中一个获取文本价值信息的一种方式。 在学习了Python的字典和文件处理后,...

    作为我的python入门的一个小实验之一,我早在六月份的时候就进行了md笔记的编写,没有发布在博客上,这次,它将作为我在博客的第一篇。

    我们知道,生活中的一些文本是嘈杂的,它可能含有很多的噪声数据,所以我们需要对其进行数据清洗处理,拿到我们想要的数据,词频统计就是其中一个获取文本价值信息的一种方式。

    在学习了Python的字典和文件处理后,我们就可以对这个例子进行一个具体的实现了。

    我将写入两个例子对其进行展示,因为搬运的是我初学时的笔记,所以如有错误请评论指正~

    一、Hamlet词频统计

    https://python123.io/resources/pye/hamlet.txt

    以上为hamlet英文版文本的获取路径,下载完成后保存到工程路径下。

    二、数据预处理

    像以上提到的,我们的文本中含有标点和字符的噪声数据,所以要进行数据的清洗,将文档全部处理为只有我们需要的字母类型(为方便操作,用空格替换噪声数据,将文档全部转化为小写字母)

    打开文件,进行读取,清洗数据,数据归档。

    定义为函数处理

    def getText():
        txt = open("Hmlet.txt","r").read()
        txt = txt.lower()
        for ch in '!@#$%^&*()_/*-~':
            txt = txt.replace(ch," ")
        return txt

    三、数值统计

    因为这里我们要找出出现次数最多的词组,所以要进行存储比较它们的出现次数,这里显然是一种映射的关系,所以我们采取字典的方式对数据进行存储。

    具体使用到字典的get函数实现

    hamlet = getText()
    words = hamlet.split()
    counts = {}
    for word in words:
        counts[word] = counts.get(word,0) + 1

    四、转换处理

    到这一步,我们就将所有在文档中出现的词组和其对应个数存入字典counts中了,因为字典是无序的,所以我们采取对其进行转化列表,利用列表的有序性进行排序。

    sort函数中,reverse默认为False(从小到大),这里我们将值设为True(从大到小)排序。这样就会生成一个我们需要的序列了。

    items = list(counts.items())
    items.sort(key= lambda x:x[1],reverse=True)
    for i in range(10):
        word, count = items[i]
        print("{0:<10}{1:>5}".format(word,count))

    输出结果:

    四、三国演义人物出场频数

    明白了上面的操作,我们也很容易的对中文文本进行操作了

    利用jieba库,进行中文分词,将其存入列表words中,遍历,将词组和词频作为键值对存入列表counts中,利用列表的有序性,进行排序,然后输出

    https://python123.io/resources/pye/threekingdoms.txt

    以上为三国演义中文版文本获取链接,下载后保存到工程路径下

    利用jieba库,

    import jieba
    txt = open("threekingdoms.txt","r",encoding="utf-8").read()
    counts = {}
    words = jieba.lcut(txt)
    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库的简易操作。

    但随之带来的是词频的模糊,因为jieba库的特性,导致不是人名的词组也被统计了进来。

    如结果中的“二人”、”孔明曰“,这些都是冗余和词组问题的错误。

    所以我们应该还需要进行进一步的处理,让词频统计人物的名字次数

    经过前几步的操作,我们输出了出现频率最高的15给词组,可我们如果想要人物的出场频率呢? 这就需要对原文件进行过滤,把我们不需要的输出删除。

    因为之前的输出可以简单的获取到出现频率高但不是人名的词组,所以我们这里把它们储存到一个集合中,遍历并删除原文件中存在的这些词组。

    excludes = {"将军","却说","二人","不可","荆州","不能","如此","商议","如何","主公","军士","左右","军马"}
    for i in excludes:
        del counts[i]

    冗余处理:把出现频率高的相同人物别名进行统一

      elif word == "诸葛亮" or word == "孔明曰":
            rword = "孔明"
        elif word == "关公" or word == "云长":
            rword = "关羽"
        elif word == "玄德" or word == "玄德曰":
            rword = "刘备"
        elif word == "孟德" or word ==  "丞相":
            rword = "曹操"

     反复的经过这些处理,我们可以得到我们想要的输出

    import jieba
    txt = open("threekingdoms.txt","r",encoding="utf-8").read()
    counts = {}
    excludes = {"将军","却说","二人","不可","荆州","不能","如此","商议","如何","主公","军士","左右","军马"}
    words = jieba.lcut(txt)
    for word in words:
        if len(word) == 1:
            continue
        elif word == "诸葛亮" or word == "孔明曰":
            rword = "孔明"
        elif word == "关公" or word == "云长":
            rword = "关羽"
        elif word == "玄德" or word == "玄德曰":
            rword = "刘备"
        elif word == "孟德" or word ==  "丞相":
            rword = "曹操"
        else:
            rword = word
        counts[rword] = counts.get(rword,0) + 1
    for i in excludes:
        del counts[i]
    items = list(counts.items())
    items.sort(key = lambda x:x[1] , reverse=True)
    for i in range(7):
        word,count = items[i]
        print("{0:<10}{1:>5}".format(word,count))

     

     

    以上就是我对三国演义中文文档的人物出场词频统计笔记。

    至此,还可以对各类报告、报道等进行词频统计,以找出其重点内容。

    以上为hamlet英文文档及三国演义人物出场词频统计的实现。

    欢迎大家留言讨论~~

    展开全文
  • python词频统计

    2021-12-05 16:53:38
    词频统计1二.词频统计2三 .欢迎 一. 词频统计1 1.词频统计第一钟普通办法: 2.我们用if…else来完成我们的词频统计,然后for语句将统计好了的词频,按照自己觉得好看的方式打印出来。 结果如下: {'a': ['apple'],...

    一. 词频统计1

    1.词频统计第一钟普通办法:
    在这里插入图片描述
    2.我们用if…else来完成我们的词频统计,然后for语句将统计好了的词频,按照自己觉得好看的方式打印出来。

    结果如下:

    {'a': ['apple'], 'e': ['enjoy'], 'p': ['people'], 'l': ['low', 'list'], 's': ['six'], 'q': ['quiet'], 't': ['true'], 'b': ['break'], 'r': ['rest']}
    a:['apple']
    e:['enjoy']
    p:['people']
    l:['low', 'list']
    s:['six']
    q:['quiet']
    t:['true']
    b:['break']
    r:['rest']
    
    

    二.词频统计2

    1.我们将上面的if … else换成setdefault函数来完成
    代码如下:
    在这里插入图片描述
    2.结果和上面是一样的。

    三 .欢迎

    1.在这里插入图片描述

    展开全文
  • Python中文词频统计

    2018-03-28 19:43:47
    以下是关于小说的中文词频统计 这里有三个文件,分别为novel.txt、punctuation.txt、meaningless.txt。 这三个是小说文本、特殊符号和无意义词
  • python词频统计并按词频排序

    千次阅读 多人点赞 2021-11-07 16:00:37
    python词频统计 这篇博客用来记录一下自己学习用python做词频统计的过程 #一、英文词频统计,所用文本《THE CATCHER IN THE RYE 》(麦田里的守望者) 涉及的第三方库及其在程序中的用途如下: import string #去除...
  • python词频统计(csdn)————程序
  • python文件词频统计

    2020-01-17 15:58:51
    读取给定文本文件,统计单词,计算TOP 10 有一个文件sample.txt,对其进行单词统计,不区分大小写,并显示单词重复最多的10个单词。
  • Python词频统计代码,python

    千次阅读 2021-01-13 08:03:55
    # 英文统计# def getText():# txt = open("hamlet.txt", "r").read()# txt = txt.lower()# for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':# txt = txt.replace(ch, " ") #将文本中特殊字符替换为空...
  • python词频统计 """ text = 'i love python i love java i learn python' words = text.split(' ') diff_words = list(set(words)) counts = [] for i in range(len(diff_words)): counts.append(0) for i in range...
  • Python词频统计的3种方法

    万次阅读 多人点赞 2021-01-11 19:06:36
    上次,我分享了《100毫秒过滤一百万字文本的停用词》,这次我将分享如何进行词频统计。 当然我们首先需要准备好数据: 数据准备 import jieba with open("D:/hdfs/novels/天龙八部.txt", encoding="gb18030") as f:...
  • # 分词追加到列表 # 词频统计 word_counts = collections.Counter(object_list) # 对分词做词频统计 word_counts_top50 = word_counts.most_common(50) # 获取前50最高频的词 print (word_counts_top50) # 输出检查 ...
  • 本文介绍了python实现简单中文词频统计示例,分享给大家,具体如下: 任务 简单统计一个小说中哪些个汉字出现的频率最高 知识点 1.文件操作 2.字典 3.排序 4.lambda 代码 import codecs import matplotlib.pyplot ...
  • python词频统计,生成词云

    千次阅读 2020-12-29 01:14:57
    本篇博客介绍2个第三方库,中文分词库jieba和词云库WordCloud,我们将完成三个例子:统计英文词汇频率统计中文文本词汇频率使用jieba库生成词云在正式开始之前,我们先安装两个第三方库:中文分词库jieba和词云库...
  • 恰逢某只考拉学python,俺也来玩玩 准备工作 随便来个txt文件,里面写了一些英文(中文也行),这里我们用utf-8格式 主要代码: with open("The Phantom Rider.txt", encoding='utf-8') as text: words = text.read...
  • python词频统计

    2021-01-27 20:26:09
    =0] chapter.txt[1] import jieba word_list=jieba.lcut(chapter.txt[1]) word_list[:10] # 使用pandas统计 df =pd.DataFrame(word_list,columns=['word']) df.head(30) result = df.groupby(['word']).size() print...
  • 统计文件的字符数: 只需要统计Ascii码,汉字不需考虑 空格,水平制表符,换行符,均算字符 统计文件的单词总数,单词:以英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。 英文字母: A-Z,a-z ...
  • python词频统计

    千次阅读 2022-03-13 21:40:21
    中文、英文词频统计。英文有空格或者标点符号分隔,中文单词之间缺少分词符,需要用分词函数
  • Python词频统计(全)

    2022-02-26 23:08:06
    # 中文 txt = input("请输入一段文本:") d = {} for i in txt: d[i] = d.get(i, 0) + 1 # 字典中的值 ls = list(d.items()) ls.sort(key=lambda x: x[1], reverse=True) # 排序 for i in range(len(d)): ...
  • 利用python实现词频统计

    万次阅读 多人点赞 2021-10-16 18:31:42
    词频统计软件: 1)从文本中读入数据:(文件的输入输出) 2)不区分大小写,去除特殊字符。 3)统计单词 例如:about :10 并统计总共多少单词 4)对单词排序。出现次数 5)输出词频最高的10个单词和次数 6)把统计...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,261
精华内容 6,104
关键字:

python词频统计

友情链接: A_(Part-1)214892482009.zip