• 第一次个人编程作业


    第一次个人编程作业

    github

    目录

    参考文件

    代码思路

    • 余弦相似度

      利用余弦算法求出相似度

    代码函数

    读出文件内容

    利用jieba.analyse.extract_tags将文本分割完并且得出tfidf值

    将两个文本的分词对齐 如{‘第一’:1,“第二”;2,“第三”:3}
    {“第二”;2,“第三”:3,“第四”;4}
    对齐为{‘第一’:1,“第二”;2,“第三”:3,“第四”;0}和
    {第一’:0,“第二”;2,“第三”:3,“第四”;4}
    并且获得两个字典的权重列表vec_a和vac_b

    计算余弦相似度
    把答案写入文件

    性能分析

    用pycharm自带的性能分析工具分析


    放大看

    单元测试

    
    import os
    
    import main
    
    
    def test():
        copy_paths = './sim_0.8'
        origin_path = './orig.txt'
        ans_path='./answer.TXT'
        for path in os.listdir(copy_paths):
            print(f'{path}:', main.get_similar(f'{copy_paths}/{path}', origin_path))
            # res = os.system(f'python main.py {origin_path} {copy_paths}/{path} {ans_path}')
            # print(f'{path}:',res)
            # print(f'{path}一样:', main.get_similar(origin_path, origin_path))
        # # 参数缺失
        res = os.system(f'python main.py {origin_path}')
        print(res)
        #
        # # 无效文本
        res = os.system(f'python main.py {origin_path} ./empty.txt ./answer.TXT')
        print(res)
        #
        # # 文件不存在
        res = os.system(f'python main.py ./0000.txt ./empty.txt ./answer.TXT')
        print(res)
    
    #文章一样
    
    if __name__ == '__main__':
        test()
    

    测试结果 基本符合预期

    也找到一些错误


    psp表格

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 30 60
    Estimate 估计这个任务需要多少时间 60 60
    Development 开发 1200 1000
    Analysis 需求分析 (包括学习新技术) 200 300
    Design Spec 生成设计文档 120 60
    Design Review 设计复审 30 30
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 30 60
    Design 具体设计 30 40
    Coding 具体编码 300 360
    Code Review 代码复审 30 60
    Test 测试(自我测试,修改代码,提交修改) 200 240
    Reporting 报告 120 120
    Test Repor 测试报告 20 30
    Size Measurement 计算工作量 10 10
    Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 30
    -- 合计 2210 2450

    个人总结

    • 这次整个项目的完成十分艰难 ,从一开始学tfidf到最后用jieba.analyse 中间消耗了非常多时间,舍友提供了很多帮助。这次也是第一次完成一个算是完整的项目,真正让我感觉难的反而是单元测试,测试代码请教了舍友非常多,所以感觉测试代码都是“舍友的样子”
    • 虽然学过python,但真正运用的时候还是非常不熟 平时代码写太少
    • 平时要多敲代码 当面对难题时才不会感觉束手无策
  • 相关阅读:
    python学习笔记4核心类型字典
    python学习笔记5核心类型元组和文件及其他
    python学习笔记11异常总结
    python学习笔记14类总结
    python学习笔记17常用函数总结整理
    python学习笔记1核心类型数字
    python学习笔记3核心类型列表
    python学习笔记16各种模块和开放工具收集整理
    源码、反码、补码
    素数
  • 原文地址:https://www.cnblogs.com/shenshuai/p/13684641.html
Copyright © 2020-2023  润新知