当前位置: 首页 > wzjs >正文

微网站特点公众号投放平台

微网站特点,公众号投放平台,喀什百度做网站多少钱,wordpress 首页调用文章目录 一、引言 二、针对Java 代码(.java文件), 比较余弦算法、Jaccard相似度、欧式距离、编辑距离等在计算相似度的差异 三、针对文本文件(.txt文件,里面是Java代码), 比较余弦算法、Jaccard相似度、欧式距离、编辑距离等在计算相似度的差异 四、初步…

目录

一、引言

二、针对Java 代码(.java文件), 比较余弦算法、Jaccard相似度、欧式距离、编辑距离等在计算相似度的差异

三、针对文本文件(.txt文件,里面是Java代码), 比较余弦算法、Jaccard相似度、欧式距离、编辑距离等在计算相似度的差异

四、初步结论


一、引言

对于文本相似度的问题,常见算法包括:

✔️数据量不是海量的场景下常用算法: 欧式距离、编辑距离、最长公共子串、余弦算法、Jaccard相似度等方法

✔️海量的场景下常用算法:

  • SimHash计算得到的Hash串会非常的相近,从而可以判断两个文本的相似程度
  • 海明距离应用最多的是在海量短文、文本去重上,以其性能优的特点。海明距离主要就是对文本进行向量化,或者说是把文本的特征抽取出来映射成编码(比如使用SimHash映射成编码),然后再对编码进行异或计算出海明距离。

二、针对Java 代码(.java文件), 比较余弦算法、Jaccard相似度、欧式距离、编辑距离等在计算相似度的差异

要求:比较源文件和目标文件(均为.java代码)的相似程度。比较时忽略注释、Java保留关键词、无意义中文等对代码比较的影响。

比较源文件和目标文件都是标准的Java代码(.java代码),唯一区别在于目标文件含有注释,源文件没有注释。

源文件内容如下(不含代码注释):

package com.homework.utils.hanlp;
import java.io.*;
public class FileIO {public static String readTxt(String txtPath) {String str = "";String strLine="";File storefile = new File(txtPath);FileInputStream fileInputStream = null;try {fileInputStream = new FileInputStream(storefile);InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);while ((strLine = bufferedReader.readLine()) != null) {str += strLine;}inputStreamReader.close();bufferedReader.close();fileInputStream.close();} catch (IOException e) {e.printStackTrace();System.out.println("读文件异常,exception = " + e.getLocalizedMessage());}return str;}public static void writeTxt(double txtElem,String txtPath){String str = Double.toString(txtElem);File file = new File(txtPath);FileWriter fileWriter = null;try {fileWriter = new FileWriter(file, true);fileWriter.write(str, 0, (str.length() > 3 ? 4 : str.length()));fileWriter.write("\r\n");fileWriter.close();} catch (IOException e) {e.printStackTrace();}}
}

目标文件内容如下(含代码注释):

package com.homework.utils.hanlp;
import java.io.*;public class FileIO {/*** 读出txt文件* 传入文件绝对路径,将文件内容转化为 String字符串输出*  txtPath 文件路径*  返回 文件内容*/public static String readTxt(String txtPath) {String str = "";String strLine="";// 将 txt文件按行读入 str中File storefile = new File(txtPath);FileInputStream fileInputStream = null;try {//将文件信息读入内存并利用InputStreamReader将字节信息转为字符流fileInputStream = new FileInputStream(storefile);InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);// 利用BufferedReader创建对象,用readLine方法按行拼接字符串while ((strLine = bufferedReader.readLine()) != null) {
//                // 过滤特殊字符
//                String[] strings = {" ", "\n", "\r", "\t", "\\r", "\\n", "\\t", " ", "&", "<", ">", """, "&qpos;"};
//                for (String string : strings) {
//                    strLine = strLine.replaceAll(string, "");
//                }str += strLine;}// 关闭资源inputStreamReader.close();bufferedReader.close();fileInputStream.close();} catch (IOException e) {e.printStackTrace();System.out.println("读文件异常,exception = " + e.getLocalizedMessage());}return str;}/*** 写入txt文件* 传入内容、文件全路径名,将内容写入文件并换行*  txtElem 传入的内容*  txtPath 写入的文件路径*/public static void writeTxt(double txtElem,String txtPath){String str = Double.toString(txtElem);File file = new File(txtPath);FileWriter fileWriter = null;try {fileWriter = new FileWriter(file, true);fileWriter.write(str, 0, (str.length() > 3 ? 4 : str.length()));fileWriter.write("\r\n");// 关闭资源fileWriter.close();} catch (IOException e) {e.printStackTrace();}}
}

不同算法对源Java文件、目标Java文件相似度统计结果:

初步结论: 不同相似度方法 没有表现出明显的算法优劣差异

三、针对文本文件(.txt文件,里面是Java代码), 比较余弦算法、Jaccard相似度、欧式距离、编辑距离等在计算相似度的差异

要求:比较源文件和目标文件(均为.txt,里面内容为Java代码)的相似程度。比较时忽略注释、Java保留关键词、无意义中文等对代码比较的影响。

比较源文件和目标文件都是标准的Java代码,唯一区别在于目标文件含有注释,源文件没有注释。

源文件和目标文件内容 同上面的源文件和目标文件内容:

源文件:

package com.homework.utils.hanlp;
import java.io.*;
public class FileIO {
    public static String readTxt(String txtPath) {
        String str = "";
        String strLine="";
        File storefile = new File(txtPath);
        FileInputStream fileInputStream = null;
        try {
            fileInputStream = new FileInputStream(storefile);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            while ((strLine = bufferedReader.readLine()) != null) {

                str += strLine;
            }
            inputStreamReader.close();
            bufferedReader.close();
            fileInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("读文件异常,exception = " + e.getLocalizedMessage());
        }
        return str;
    }

    public static void writeTxt(double txtElem,String txtPath){
        String str = Double.toString(txtElem);
        File file = new File(txtPath);
        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(file, true);
            fileWriter.write(str, 0, (str.length() > 3 ? 4 : str.length()));
            fileWriter.write("\r\n");
            fileWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

目标文件:

package com.homework.utils.hanlp;
import java.io.*;

public class FileIO {

    /**
     * 读出txt文件
     * 传入文件绝对路径,将文件内容转化为 String字符串输出
     *  txtPath 文件路径
     *  返回 文件内容
     */
    public static String readTxt(String txtPath) {
        String str = "";
        String strLine="";
        // 将 txt文件按行读入 str中
        File storefile = new File(txtPath);
        FileInputStream fileInputStream = null;
        try {
            //将文件信息读入内存并利用InputStreamReader将字节信息转为字符流
            fileInputStream = new FileInputStream(storefile);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            // 利用BufferedReader创建对象,用readLine方法按行拼接字符串
            while ((strLine = bufferedReader.readLine()) != null) {
//                // 过滤特殊字符
//                String[] strings = {" ", "\n", "\r", "\t", "\\r", "\\n", "\\t", " ", "&", "<", ">", """, "&qpos;"};
//                for (String string : strings) {
//                    strLine = strLine.replaceAll(string, "");
//                }

                str += strLine;
            }
            // 关闭资源
            inputStreamReader.close();
            bufferedReader.close();
            fileInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("读文件异常,exception = " + e.getLocalizedMessage());
        }
        return str;
    }

    /**
     * 写入txt文件
     * 传入内容、文件全路径名,将内容写入文件并换行
     *  txtElem 传入的内容
     *  txtPath 写入的文件路径
     */
    public static void writeTxt(double txtElem,String txtPath){
        String str = Double.toString(txtElem);
        File file = new File(txtPath);
        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(file, true);
            fileWriter.write(str, 0, (str.length() > 3 ? 4 : str.length()));
            fileWriter.write("\r\n");
            // 关闭资源
            fileWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

不同算法对源文件、目标文件相似度统计结果:

初步结论: 相同的Java代码复制到文本文件中(.txt文件),不同算法检查的相似度差异较大。

四、初步结论

        为了实现更准确对比2个Java代码的相似度(用于Java课程作业查重场景), 可以将Java源码原封不动保存到.java文件中,可以得到更准确结果,且不同相似度算法下计算的相似度差异一致。


文章转载自:

http://ZQageZ02.jghty.cn
http://uAyB0FDW.jghty.cn
http://zyvOCmhD.jghty.cn
http://WBMqUIiU.jghty.cn
http://JqxOjyUq.jghty.cn
http://n2fNG6rm.jghty.cn
http://yuDIF1rF.jghty.cn
http://VfHYB9WN.jghty.cn
http://XlLpQGGw.jghty.cn
http://HqZ5qohy.jghty.cn
http://TyE93KkP.jghty.cn
http://JcelKTwt.jghty.cn
http://ltN0LC77.jghty.cn
http://RauGlMR9.jghty.cn
http://WsIfbHdY.jghty.cn
http://2UOS467i.jghty.cn
http://bjHbM9OZ.jghty.cn
http://ogmGKuZD.jghty.cn
http://3bVs3nyh.jghty.cn
http://xZZ3P5SB.jghty.cn
http://JPJ5fL4A.jghty.cn
http://9LzO7HxV.jghty.cn
http://qnKneyPB.jghty.cn
http://B1dV7i5M.jghty.cn
http://eqxSELq6.jghty.cn
http://jR7vS2H0.jghty.cn
http://mQjo0xDv.jghty.cn
http://LvgtnS4r.jghty.cn
http://FKadOoeU.jghty.cn
http://SZuWFHKe.jghty.cn
http://www.dtcms.com/wzjs/768740.html

相关文章:

  • 简述网站建设基本过程wordpress主题模版开发
  • 网站优化的重要性网站开发合作运营平台合同
  • 网站制作公司官网首页在线制作表白网站
  • 德州市建设工程协会网站泰州网站建设制作工作室
  • 韩国做游戏的电影 迅雷下载网站怎么用asp.net做网站
  • 厦门建设网站首页工作证模板word
  • 江门北京网站建设手工制作钟表
  • 做百度推广送网站wordpress的数据库在那里
  • 企业核名网站百度网站收录提交入口
  • 企业网站建设规划书的内容建设公司网站要注意哪些
  • 网站备案名称几个字软件外包公司怎么找业务
  • 网站编辑好做吗wordpress视频站主题
  • 石家庄市城乡建设局网站中国建设银行u盾官方网站
  • 建设租车网站泽国镇规划建设局网站
  • 公司做的网站费用如何做账为什么上不了建设银行个人网站
  • 网站制作基本规则怎么搭建php网站
  • 无锡企业建站模板上海市建设工程咨询网
  • 网站风格类型是如何做简易个人网站
  • 菏泽做企业网站国外简约网站
  • 做蛋糕的网站企业名录是什么
  • 苏州规划建设局网站短链接在线工具
  • 做古玩的网站合肥网站设计建设
  • 太仓网站建设企业网站竞价如何屏蔽恶意点击
  • 1企业网站案例郑州网站推广¥做下拉去118cr
  • 精仿源码社区网站源码永川网站制作
  • 建立微网站动漫制作专业学习方法
  • 国外做伞的品牌网站广州天华建筑设计有限公司
  • 深圳盐田建设交易中心网站商标设计logo免费软件
  • 网站建设客户需求学术网站怎么做
  • 换空间网站备案百度网址大全官网