首页 > 其他分享 >第一次个人项目

第一次个人项目

时间:2023-09-16 19:00:12浏览次数:41  
标签:__ dictionary 个人 项目 代码 第一次 120 main gensim

这个作业属于哪个课程 软件工程
这个作业要求在哪里 作业要求
这个作业的目标 论文查重:项目地址

开发环境

windows下开发,python版本:3.7

需要安装jieba、gensim等库

词句分析

使用jieba的库可以很好的对一个中文语句进行分词

对字符串的处理接口如下,先使用正则表达式过滤特殊符号,再用jieba分词

def filter_str(str):
    self_re = re.compile(u"[^0-9A-Za-z\u4e00-\u9fa5]")
    string = self_re.sub("", str)
    result = jieba.lcut(str)
    return result

相似度计算

查阅资料发现可以使用gensim库计算余弦相似度,实现方法如下

def check_main(origin, target):
    texts = [origin, target]
    dictionary = gensim.corpora.Dictionary(texts)
    corpus = [dictionary.doc2bow(text) for text in texts]
    similarity = gensim.similarities.Similarity('-Similarity-index', corpus,num_features=len(dictionary))
    test_corpus_1 = dictionary.doc2bow(origin)
    cosine_sim = similarity[test_corpus_1][1]
    return cosine_sim

文件读取

文件内容读取的函数实现如下,注意打开的文本编码形式,如果不是utf-8则会报错

def read_file(path):
    with open(path, encoding='utf-8') as fd:
        data = fd.read()
        info("get "+path+" data sucess")
     
    return data

异常处理

对于IO异常和参数异常进行捕获并处理

except IOError:
    print("IO operation error,plz check your file")
except ValueError:
    print("Error args")

性能测试

通过pycharm的插件可以进行性能测试,设置profile即可

代码覆盖率

使用coverage检测代码覆盖率

coverage run -m unittest ./unit_test.py
coverage html -d report

可以看到没有被覆盖的地方是异常处理部分的代码,正常流程的代码都有覆盖到,覆盖率为89%

单元测试

测试脚本如下

import unittest
from main import main

class MyTestCase(unittest.TestCase):
    def test_my(self):
        self.assertTrue(main() < 0.99)  # 预测运行结果

if __name__ == '__main__':
    unittest.main()

可以看到能成功进行测试,并且成功输出相似程度

PSP表格记录

PSP Personal Software Process 预估耗时(分钟) 实际耗时(分钟)
Planning计划 计划 120 130
Estimate · 估计这个任务需要多少时间 120 160
Development 开发 480 430
· Analysis · 需求分析 (包括学习新技术) 120 90
· Design Spec · 生成设计文档 30 25
· Design Review · 设计复审 30 15
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20 5
· Design · 具体设计 10 5
· Coding · 具体编码 120 140
· Code Review · 代码复审 20 5
· Test · 测试(自我测试,修改代码,提交修改) 120 120
Reporting 报告 30 40
· Test Repor · 测试报告 20 10
· Size Measurement · 计算工作量 5 5
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 5 5
Total 总计 1250 1185

标签:__,dictionary,个人,项目,代码,第一次,120,main,gensim
From: https://www.cnblogs.com/jinhoo/p/17707122.html

相关文章