zoukankan      html  css  js  c++  java
  • 第一次个人编程作业

    第一次个人编程作业

    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,但真正运用的时候还是非常不熟 平时代码写太少
    • 平时要多敲代码 当面对难题时才不会感觉束手无策
  • 相关阅读:
    vim对光标所在的数字进行增减
    fedora找开ftpd服务器并以root登陆
    wxwidget自定义消息处理步骤
    c++的检测的确比C++更严格
    php常用字符串操作函数
    如何判断一个数组是一维数组或者是二维数组?用什么函数?
    php 面试 题汇总
    php 数组 常用函数
    php 会话控制
    用tp实现中文验证码
  • 原文地址:https://www.cnblogs.com/shenshuai/p/13684641.html
Copyright © 2011-2022 走看看