• 复合数据类型,英文词频统计


    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

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

    列表的增删改及遍历

    #定义列表
    list1=list('gzcc')
    #列表的增加
    list1.append('!')
    list1.extend('yes')
    #列表的删除
    list1.pop(4)
    #列表的修改
    list1[0] = '1'  #将第0个元素修改为’1‘
    #列表的查找
    list1.index('1')
    #列表的遍历
    b=len(list1)
    for i in range(b):
      print(i+1,list1[i])#前面为序列号,后面为值

    元组 ,操作和列表类似,但是元组不能修改

    #创建
    tuple1 = ()
    tuple1 = 1,
    tuple1 = 1,2,3
    tuple1 = tuple([1,2,3,4]) 
    tuple1

    字典的增删改及遍历

    字典
    #创建
    dict1 = {
        'key':'value',
        'key1':'value1'
    }
    a = [('key1','value1'),('key2','value2')]
    dict1 = dict(a)
    dict1 = {}.fromkeys(['key1','key2'],'default_value') #从键值创建dict
    dict1 = dict(key1='value1',key2='value2')
     
    #增加
    dict1['key3']='value3' #字典可以自动添加
    dict1.setdefault('key5','N/A') #如果不存在,就设置默认值
     
    #删除
    del dict1['key3']
    print dict1.pop('key2')  #popitem随机删除 和列表的pop一样
    #dict1.clear()  #深删除,即使有拷贝 也会被删除
     
    #修改
    if 'key1' in dict1:
        dict1['key1']='new_value_1'
    #查找
    if 'key1' in dict1:
        print dict1['key1']
    if dict1.has_key('key1'):
        print dict1['key1']
    print dict1.get('key3','not exists') #宽松访问
    print dict1.keys(),dict1.values()
     
    #拼接
    dict2 = dict(key4 = 'value4') #从字典更新另一个字典
    dict1.update(dict2)

    集合增删改查及遍历

    A={'a','b','c','d','f','f'}
    B=set(A)#B为集合且B经过了去重
    set(B).add('e')##添加元素
    set(B).update('h')#添加元素
    setA.pop()  #删除操作,无返回值
    print([v for v in setA])  #遍历
    print(sorted(setA))  #set的排序

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

    • 括号
    • 有序无序
    • 可变不可变
    • 重复不可重复
    • 存储与查找方式

    字典无序,集合不可重复

    3.词频统计

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

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

      3.对文本进行预处理

      4.分解提取单词 list

      5.单词计数字典 set , dict

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

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

      • 自定义停用词表
      • 或用stops.txt

           8.输出TOP(20)

    • 9.可视化:词云

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

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

    线上工具生成词云:
    https://wordart.com/create
    fn=open("xiaoshuo.txt","r+")
    print("成功读取文件")
    str=fn.read()
    #去标点符号
    s=',.?:;'
    for c in s:
      text = str.replace(c,'')
    
    #转化为小写
    text=text.lower()
    
    #分割并显示
    atext=text.split()
    # print(atext)
    atext=list(atext)
    # list1=[]
    # list1=atext
    #统计词频
    print("计算单词出现的次数并按词频排序:")
    # # strSet=set(text)
    # for word in atext:
    #    print(word,text.count(word))
    fn1=open("stop.txt","r")
    tyc=fn1.read()
    tyc=list(tyc)
    
    #用字典表示词频
    res = {}
    for i in atext:
        if i in res:
            res[i] = res[i] + 1
        else:
            res[i] = 1
    # print(res)
    #按照字典的value进行排序
    res1 = sorted(res.items(), key=lambda d:d[1],reverse = True)
    print(res1)

    作业博客要求:

    • 文字作业要求言简意骇,用自己的话说明清楚。
    • 编码作业要求放上代码,加好注释,并附上运行结果截图。
    
    
  • 相关阅读:
    C#图片处理示例(裁剪,缩放,清晰度,水印)
    lucene4.5近实时搜索
    mongo 多条件 查询
    Lucene:QueryParser
    Lucene的中文分词器IKAnalyzer
    Lucene为不同字段指定不同分词器(转)
    Thrift初用小结
    lucene4.0与之前版本的一些改变
    lucene 资料
    Mongodb快速入门之使用Java操作Mongodb
  • 原文地址:https://www.cnblogs.com/JunhanLin/p/10538606.html
Copyright © 2020-2023  润新知