第一次个人编程作业

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了第一次个人编程作业脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

第一次个人编程作业

01 课程及作业目标

这个作业属于哪个课程 班级链接
这个作业要求在哪里 作业要求
这个作业的目标 论文查重算法实现+单元测试使用+学会程序性能分析+程序结构设计
本人GIThub 3119005424

02 PSP 表格

PSP2.1 PErsonal Software PRocess Stages 预计耗时(分钟) 实际耗时(分钟)
Planning 计划 30 65
EstiMATE 估计这个任务需要多少时间 10 5
Development 开发 360 540
Analysis 需求分析(包括学习新技 300 370
Design Spec 生成设计文档 30 35
Design review 设计复审 20 30
Coding Standard 代码规范(为目前的开发制定合适的规范) 30 45
Design 具体设计 60 45
Coding 具体编码 240 410
Code Review 代码复审 30 40
test 测试(自我测试,修改代码,提交修改) 60 25
Reporting 报告 30 45
Test Reporting 测试报告 30 50
Size Measurement 计算工作量 15 10
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 15 25
合计 1260 1695

03 所使用的包及算法

jieba库

  • 首先是jieba库的原理图

    @H_304_221@

1.支持三种分词模式:

  • 精确模式,试图将句子最精确地切开,适合文本分析;
  • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

2.jieba自带了一个叫做dict.txt的词典, 里面有2万多条词

  • 该词条包含了词条出现的次数(这个次数是于作者自己基于人民日报语料等资训练得出来的)和词性. 这个第一条的trie树结构的词图扫描, 说的就是把这2万多条词语, 放到一个trie树中, 而trie树是有名的前缀树, 也就是说一个词语的前面几个字一样, 就表示他们具有相同的前缀, 就可以使用trie树来存储, 具有查找速度快的优势。

3.jieba分词应该属于概率语言模型分词

  • 概率语言模型分词的任务是:在全切分所得的所有结果中求某个切分方案S,使得P(S)最大。

4.总而言之,jieba库是我在网上查阅资料之后,确定的最全面且使用的python中文分词组件,因为此前也没有系统学习过python,使用这个库是对于我而言较为实际的选择。

jieba.analyse jieba.analyse.extract_tags(sentence, topK=n, withWeight=True) 参数说明 :

  • sentence 需要提取的字符串,必须是str类型,不能是list
  • topK 提取前多少个关键字
  • withWeight 是否返回每个关键词的权重

原理: jieba.analyse.extract_tags()提取关键字的原理是使用TF-iDF算法

第一次个人编程作业

第一次个人编程作业

Jaccard相似度算法 jaccard index又称为jaccard similarity coefficient用于比较有限样本集之间的相似性和差异性。 主要应用场景: 比较文本的相似度,用于文本的查重与去重 计算对象间的距离,用于数据聚类

用于衡量有限样本集之间的相似程度:

第一次个人编程作业

jaccard距离公式:

第一次个人编程作业

jaccard系数取值范围[0,1] 当A==B时,jaccard系数为1;当A与B不相交,jaccard系数为0 jaccard距离表示样本或集合的不相似程度,jaccard距离越大,样本相似度越低。

04 部分代码及解释

  • 关于Jaccard函数的使用

    第一次个人编程作业

  • 对分词的关键词进行提取与处理

    第一次个人编程作业

    首先对分词与关键词进行提取,再进行Jaccard相似度计算,并且除0处理

  • 异常的捕捉

    第一次个人编程作业

    当键盘键入的文件路径错误时,会提醒“文件路径错误”,并允许重新输入

  • 可进行多次查重对比

    第一次个人编程作业

    第一次个人编程作业

05 测试结果

  • 运行结果

    第一次个人编程作业

06 性能分析

第一次个人编程作业

  • 占用内存

    第一次个人编程作业

07 个人总结

  • 认识到了python语言的强大以及其在文本识别、数据处理方面的易用性,以及其开源库的强大,数据处理相关的、统计学相关的几乎任何模型、公式、都能在其中找到,并能够很快的上手调用,但是缺点是对此中的原理以及细节就并不是很掌握,其中所使用的算法往往也较为复杂。
  • 在学习语言的时候,语言的细节十分重要,算法同样占据非常重要的地位,并且在软件开发时要注意易用性与完整性,以及与用户的交互。
  • 由于是第一次接python语言,还是有很多很多细节没有详细去掌握,更多是实用主义的拿来就用调好参数,会用就行,需要后期对python语言的特性以及细节进行更深入的学习与掌握

脚本宝典总结

以上是脚本宝典为你收集整理的第一次个人编程作业全部内容,希望文章能够帮你解决第一次个人编程作业所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。