zoukankan      html  css  js  c++  java
  • 第一次个人编程作业

    GitHub链接:https://github.com/031804126/031804126
    PSP记录表格:

    经过查找资料,我发现实现文本相似度的计算大家比较常用并且难度不是很大的有TF-IDF与余弦相似性的应用、引用jieba库使用余弦相似度,还有难度稍微大一点的jaccard相似度,编辑距离,MinHash,SimHash+海明距离(对于我来说),所以这里选用了使用jieba库以及余弦相似度进行计算。原理如下:

    用到的主要函数:①extract_keyword():用来获取关键词。
    ②one_hot()。
    ③:cosine_similarity():计算余弦相似度。``
    计算模块部分的性能改进
    附上性能分析图:



    单元测试部分:
    函数部分与主函数相同
    if __name__ == '__main__':
    x=input()
    y=input()
    z=input()
    fx=open(x,'r',encoding='utf-8')
    fy=open(y,'r',encoding='utf-8')
    content_x = fx.read()
    content_y = fy.read()
    similarity = CosineSimilarity(content_x, content_y)
    similarity = similarity.main()
    g = open(r"C:Users123AppDataLocalProgramsPythonPython37 esult.txt",'w+')
    file_handle=open('result.txt',mode='w')
    file_handle.write('相似度: {:.2f}' .format(similarity))
    file_handle.close()
    fx.close()
    fy.close()
    print('相似度: {:.2f}' .format(similarity))
    测试结果:



    以上是在Windows中Python环境下测试的,读取方法比较low,在pycharm中进行性能测试的时候,进行了以下改进:
    文件读取方式改为:fx=open(sys.argv[1],'r',encoding='utf-8'),fy=open(sys.argv[2],'r',encoding='utf-8'),目标文件改为:output = open(sys.argv[3],'w',encoding='utf-8')
    覆盖率:

    异常处理
    (1)文件为空


    (2)文件不存在

    总结:
    没想到第一次实际编程就来了这么大的工程,刚开始属实有点吃不消,到处找资料,不过在实践中也丰富了自己,看来以后要多利用闲暇时间学习,才能面对接下来的挑战。

  • 相关阅读:
    uva 10986
    sed命令详解及应用实例
    JavaScript弹出层
    eclipspe导入hibernate的源代码
    用eclipse查看JDK源代码
    Java设计模式之适配器模式(Adapter)
    Java计算程序运行时间
    Java的IO流各个类的使用原则
    Java的IO输入输出流类的介绍(有图)
    解惑:字、位、字节、字符、字符串。
  • 原文地址:https://www.cnblogs.com/sunqingqing/p/13685964.html
Copyright © 2011-2022 走看看