这个作业属于哪个课程

这个作业要求在哪里

/homework/11146

这个作业的目标

实现论文查重算法,学会使用PSP表格估计,学会 Git commit 规范,学会单元测试


目录

  • 1. Github仓库
  • 2. PSP表格
  • 3.接口的设计与实现过程
  • 一、去停用词
  • 二、文件的读入
  • 三、创建词袋模型
  • 四、创建IF-TDF模型
  • 五、结果
  • 4.计算模块接口部分的性能改进
  • 5.代码块部分单元测试展示


1. Github仓库

https://github.com/NYH5288/5288

2. PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

20

25

· Estimate

· 估计这个任务需要多少时间

20

25

Development

开发

465

600

· Analysis

· 需求分析 (包括学习新技术)

30

30

· Design Spec

· 生成设计文档

60

80

· Design Review

· 设计复审

60

70

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

15

15

· Design

· 具体设计

30

40

· Coding

· 具体编码

180

280

· Code Review

· 代码复审

60

60

· Test

· 测试(自我测试,修改代码,提交修改)

30

35

Reporting

报告

60

90

· Test Report

· 测试报告

30

40

· Size Measurement

· 计算工作量

10

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

20

25

Total

· 合计

545

1425

3.接口的设计与实现过程

原理:文本相似度分析,顾名思义是分析文本之间相似程度,实际应用范围很广泛,小到文章的筛选推荐、拼写纠错,大到浏览器的搜索,都离不开这项技术。文本相似度的计算方法使用的是基于TF-IDF模型的相似度分析方法。配置的环境是python3.8,借用了Python工具包的三个包,分别是jieba,codecs,以及gensim下的3个包。

核心算法:Simhash

对于所需要进行对比的文章进行分词,可得到该文本的有效特征向量,同时给特征向量附加权重来体现出现的频率以及重要程度。接着通过hash函数来对其计算hash值,将字符串转换为数字,对其进行加权,然后降维,形成哈希签名。

python 中文文本查重 文本查重算法 python_单元测试


python 中文文本查重 文本查重算法 python_python 中文文本查重_02


python 中文文本查重 文本查重算法 python_单元测试_03

一、去停用词

由于文章中的停用词对文章的内容影响不大,所以要考虑先把文章中的停用词给去掉,stopwords.txt可以直接在网上下载。 jieba分词里面也对词性做了分类,如果没有stopwords.txt可以考虑用jieba分词自带的词库进行去分词的操作。

python 中文文本查重 文本查重算法 python_单元测试_04


python 中文文本查重 文本查重算法 python_Test_05

二、文件的读入

将要进行比对的TXT用文件夹进行存放或者直接加入项目中。

python 中文文本查重 文本查重算法 python_文本相似度_06

三、创建词袋模型

建立稀疏矩阵,把上一环节分好的词,转化成方便计算机处理的格式,把句子变成字典形式,出现的数字对应词语频率,数字的位置对应词语的位置。

python 中文文本查重 文本查重算法 python_文本相似度_07

四、创建IF-TDF模型

python 中文文本查重 文本查重算法 python_文本相似度_08

五、结果

python 中文文本查重 文本查重算法 python_文本相似度_09

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

python 中文文本查重 文本查重算法 python_单元测试_10

5.代码块部分单元测试展示

python 中文文本查重 文本查重算法 python_单元测试_11


python 中文文本查重 文本查重算法 python_python 中文文本查重_12