论文查重
Posted 计科一班郭泳嘉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文查重相关的知识,希望对你有一定的参考价值。
论文查重
这个作业属于哪个课程 | 计科国际班软工 |
这个作业要求在哪里 | 个人项目 - 作业 - 计科国际班 - 班级博客 - 博客园 (cnblogs.com) |
这个作业的目标 | 论文查重 |
一、作业链接
我的github:guoyongjia/3119009430: homework (github.com)
二、PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
40 |
40 |
· Estimate |
· 估计这个任务需要多少时间 |
1500 |
1530 |
Development |
开发 |
300 |
280 |
· Analysis |
· 需求分析 (包括学习新技术) |
300 |
320 |
· Design Spec |
· 生成设计文档 |
50 |
40 |
· Design Review |
· 设计复审 |
30 |
40 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
20 |
35 |
· Design |
· 具体设计 |
80 |
80 |
· Coding |
· 具体编码 |
130 |
130 |
· Code Review |
· 代码复审 |
40 |
55 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
100 |
120 |
Reporting |
报告 |
180 |
170 |
· Test Repor |
· 测试报告 |
60 |
50 |
· Size Measurement |
· 计算工作量 |
20 |
20 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
30 |
|
· 合计 |
1500 |
1530 |
三、计算模块接口的设计与实现过程
余弦相似度 (Cosine Similarity)
通过计算两个向量的夹角余弦值来评估他们的相似度。将向量根据坐标值,绘制到向量空间中,求得他们的夹角,并得出夹角对应的余弦值,此余弦值就可以用来表征这两个向量的相似性。夹角越小,余弦值越接近于1,它们的方向越吻合,则越相似。
四、部分代码展示与测试:
#定义一个类
class getText():
def __init__(txts,f11,f22,K=1000):
txts.f1 = f11
txts.f2 = f22
#构造词和权重的关系
def vector(txts):
cut1 = jieba.analyse.extract_tags(txts.f1,topK = txts.topK, withWeight = True)
cut2 = jieba.analyse.extract_tags(txts.f2,topK = txts.topK, withWeight = True)
#构建向量
for key,value in cut1:
txts.vector1[key] = value
for key,value in cut2:
txts.vector2[key] = value
#利用余弦相似的公式计算相似度
def similar(txts):
txts.vector()
txts.delsim()
sum = 0
for key in txts.vector1:
sum += txts.vector1[key]*txts.vector2[key]
a = sqrt(reduce(lambda x,y: x+y, map(lambda x: x*x, txts.vector1.values())))
b = sqrt(reduce(lambda x,y: x+y, map(lambda x: x*x, txts.vector2.values())))
sum = sum/(a*b)
return sum
五、计算模块部分的性能改进
单元测试部分:
测试单元代码:
异常处理
1)文件为空
2)文件不存在
以上是关于论文查重的主要内容,如果未能解决你的问题,请参考以下文章