zoukankan      html  css  js  c++  java
  • 复合数据类型,英文词频统计

    1.列表,元组,字典,集合分别如何增删改查及遍历。

    使用append()方法来添加列表项(仅支持增加一个元素),extend()增加一个列表,insert()根据索引添加元素

    del 根据索引删除元素,或者使用remove()删除指定值的元素,pop()根据索引删除元素

    对列表数组某元素进行赋值,以进行更新

    搜索可以通过搜索元素或者搜索元素索引值

    列表有三种遍历方法,一种是带Index索引的循环,一种是用range()方法进行的,还有一种是使用enumerate() 方法的。

    元组的增加和修改不能直接通过赋值,但可以对元组进行连接组合,

    例:

    tup3 = tup1 + tup2

    元组可以使用下标索引来访问元组中的值

    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

    字典的访问需要在输出时把相应的键放入到方形弧内

    向字典添加新内容的方法是增加新的键,由于字典是另一种可变容器模型,且可存储任意类型对象,所以可以直接在方形弧内添加新的名称

    而字典内的修改是对已有键进行修改

    删除使用del()可以删除整个词典的条目,也可以用dict来删除某一条目。

    集合的增加是通过使用add()方法添加元素,使用remove()进行删除元素,

    2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:

    列表:

    括号:有括号:[]

    有序无序:有序

    可变不可变:可变

    重复不可重复:可重复

    存储与查找方式:顺序查找和根据下标查找,存储根据对应下标存储

    元组:

    括号:有括号:()

    有序无序:有序

    可变不可变:不可变

    重复不可重复:可重复

    存储与查找方式:顺序查找和根据下标查找,存储根据对应下标存储

    字典:

    括号:有括号:{}

    有序无序:无序

    可变不可变:可变,根据key改变键值

    重复不可重复:key不可重复,键值可重复

    存储与查找方式:根据key存储和查找所对应的键值

    集合:

    括号:有括号:()

    有序无序:无序

    可变不可变:可变

    重复不可重复:不可重复

    存储与查找方式:顺序查找和根据下标查找,存储根据对应下标存储

    3.词频统计

    1.下载一长篇小说,存成utf-8编码的文本文件 file

    2.通过文件读取字符串 str

    txt = open("E:\abc.txt", encoding="utf-8").read()
    words  = jieba.lcut(txt)

    3.对文本进行预处理

    4.分解提取单词 list

    5.单词计数字典 set , dict

    import jieba

    import pandas as pd

    txt = open("E:\abc.txt", encoding="utf-8").read()

    words  = jieba.lcut(txt)

    counts = {}

    stopwords = [line.strip() for line in open("CS.txt",encoding="utf-8").readlines()] 

    for word in words:

        counts[word] = counts.get(word,0) + 1

    items = list(counts.items())

    items.sort(key=lambda x:x[1], reverse=True)

    for i in range(20):

        word, count = items[i]

        print ("{0:<10}{1:>5}".format(word, count))

    6.按词频排序 list.sort(key=lambda),turple

    7.排除语法型词汇,代词、冠词、连词等无语义词

    自定义停用词表

    或用stops.txt

           8.输出TOP(20)

    stopwords = [line.strip() for line in open("stops.txt",encoding="utf-8").readlines()] 

    counts = {} 

    for word in words: 

        #不在停用词表中 

        if word not in stopwords: 

            #不统计字数为一的词 

            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(20): 

        word, count = items[i] 

        print ("{:<10}{:>7}".format(word, count))

    9.可视化:词云

     排序好的单词列表word保存成csv文件

    import pandas as pd

    pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')

    线上工具生成词云:

    https://wordart.com/create

     

     

  • 相关阅读:
    ASCII码详解
    C#中判断上传类型为Excel,03和07版的链接字符串
    文本搜索工具的制作过程之搜索
    文本搜索工具之显示
    用C#实现十六进制字符串转换为ASCII
    7个秘诀 工作效率和薪水都翻倍
    C#委托
    VB的写法,关于版本写入注册表
    k8s 集群灾难恢复 k8s
    k8s 接合阿里云负载均衡 k8s
  • 原文地址:https://www.cnblogs.com/ChiuMingKit/p/10579558.html
Copyright © 2011-2022 走看看