第一次个人编程作业

| 这个作业属于哪个课程 | 软件工程 |
| :------ | :------ | :------ |
| 这个作业要求在哪里 | 作业要求 |
| 这个作业的目标 | 熟悉个人软件开发项目流程并且锻炼能力 |
| GitHub链接 | https://github.com/dsm-mxz/3118005417 |

PSP表格

PSP 各个阶段 自己预估的时间(分钟) 实际的记录(分钟)
计划 30 40
需求分析 (包括学习新技术) 60 80
生成设计文档 40 50
设计复审 10 15
代码规范 (为目前的开发制定合适的规范) 10 10
具体设计 30 30
具体编码 120 150
代码复审 60 60
测试(自我测试,修改代码,提交修改) 60 30
报告 60 50
测试报告 40 25
计算工作量 30 25
事后总结, 并提出过程改进计划 60 50
合计 610 615

核心算法

余弦相似度公式

设计思路

设计论文查重,首先要进行分词,而Python中jieba模块的分词功能较为强大,所以采用jieba模块中的精准模式进行分词

函数

thesis函数主要用于遍历两篇文章,找出重复的词语并且输出重复的次数,这里用了python的字典,通过关键字来得出次数

计算余弦相似度的代码

获取命令行参数,最后输出路径


计算模块接口部分的性能改进



程序中时间消耗最大的函数便是jieba库中的方法lcut
由于程序代码实现简单,找不出能提高的地方

计算模块部分单元测试展示

测试的是thesis函数输出次数的功能

小结

初次尝试的时候感觉很难,但是做的过程中发现代码不算难,难的是真正过一遍软件工程的流程,认识到了想要做工程师只会打代码是不行的,还是需要测试,维护,改进方面。然后继续加油吧!

posted @ 2020-09-24 20:52  愣头小青年  阅读(137)  评论(0编辑  收藏  举报
!function(e,a){"use strict";"function"==typeof define&&define.amd?define([],a):"object"==typeof exports?module.exports=a():e.emojify=a()}(this,function(){"use strict";var e=function(){function e(){var e={named:/:([a-z0-9A-Z_-]+):/,smile:/:-?\)/g,open_mouth:/:o/gi,scream:/:-o/gi,smirk:/[:;]-?]/g,grinning:/[:;]-?d/gi,stuck_out_tongue_closed_eyes:/x-d/gi,stuck_out_tongue_winking_eye:/[:;]-?p/gi,rage:/:-?[\[@]/g,frowning:/:-?\(/g,sob:/:['’]-?\(|:'\(/g,kissing_heart:/:-?\*/g,wink:/;-?\)/g,pensive:/:-?\//g,confounded:/:-?s/gi,flushed:/:-?\|/g,relaxed:/:-?\$/g,mask:/:-x/gi,heart:/<3|<3/g,broken_heart:/<\/3|</3/g,thumbsup:/:\+1:/g,thumbsdown:/:\-1:/g};return d.ignore_emoticons&&(e={named:/:([a-z0-9A-Z_-]+):/,thumbsup:/:\+1:/g,thumbsdown:/:\-1:/g}),Object.keys(e).map(function(a){return[e[a],a]})}function a(){var e=_.map(function(e){var a=e[0],o=a.source||a;return o=o.replace(/(^|[^\[])\^/g,"$1"),"("+o+")"}).join("|");return new RegExp(e,"gi")}function o(e){return" "===e||" "===e||"\r"===e||"\n"===e||""===e||e===String.fromCharCode(160)}function r(e){var a=null;if(e.replacer)a=e.replacer.apply({config:d},[":"+e.emojiName+":",e.emojiName]);else{var o=d.tag_type||h[d.mode];a=e.win.document.createElement(o),"img"!==o?a.setAttribute("class","emoji emoji-"+e.emojiName):(a.setAttribute("align","absmiddle"),a.setAttribute("alt",":"+e.emojiName+":"),a.setAttribute("class","emoji"),a.setAttribute("src",d.img_dir+"/"+e.emojiName+".png")),a.setAttribute("title",":"+e.emojiName+":")}e.node.splitText(e.match.index),e.node.nextSibling.nodeValue=e.node.nextSibling.nodeValue.substr(e.match[0].length,e.node.nextSibling.nodeValue.length),a.appendChild(e.node.splitText(e.match.index)),e.node.parentNode.insertBefore(a,e.node.nextSibling)}function t(e){if(e[1]&&e[2]){var a=e[2];if(m[a])return a}else for(var o=3;o