• 大小: 155KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Java
  • 标签: java  查重  gui  

资源简介

电子文档doc查重,可一次导入n份。采用余弦算法查重,可自定义重复率生成结果。重复结果excle导出。采用java,gui形式。

资源截图

代码片段和文件信息

package chaCongSystem;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class CosineSimilarAlgorithm {
    public static double getSimilarity(String doc1 String doc2) {
        if (doc1 != null && doc1.trim().length() > 0 && doc2 != null
                && doc2.trim().length() > 0) {
            Map AlgorithmMap = new HashMap();
            //将两个字符串中的中文字符以及出现的总数封装到,AlgorithmMap中
            for (int i = 0; i < doc1.length(); i++) {
                char d1 = doc1.charAt(i);
                if(isHanZi(d1)){
                    int charIndex = getGB2312Id(d1);
                    if(charIndex != -1){
                        int[] fq = AlgorithmMap.get(charIndex);
                        if(fq != null && fq.length == 2){
                            fq[0]++;
                        }else {
                            fq = new int[2];
                            fq[0] = 1;
                            fq[1] = 0;
                            AlgorithmMap.put(charIndex fq);
                        }
                    }
                }
            }
            for (int i = 0; i < doc2.length(); i++) {
                char d2 = doc2.charAt(i);
                if(isHanZi(d2)){
                    int charIndex = getGB2312Id(d2);
                    if(charIndex != -1){
                        int[] fq = AlgorithmMap.get(charIndex);
                        if(fq != null && fq.length == 2){
                            fq[1]++;
                        }else {
                            fq = new int[2];
                            fq[0] = 0;
                            fq[1] = 1;
                            AlgorithmMap.put(charIndex fq);
                        }
                    }
                }
            }
            Iterator iterator = AlgorithmMap.keySet().iterator();
            double sqdoc1 = 0;
            double sqdoc2 = 0;
            double denominator = 0;
            while(iterator.hasNext()){
                int[] c = AlgorithmMap.get(iterator.next());
                denominator += c[0]*c[1];
                sqdoc1 += c[0]*c[0];
                sqdoc2 += c[1]*c[1];
            }
            return denominator / Math.sqrt(sqdoc1*sqdoc2);
        } else {
            throw new NullPointerException(
                    “ the Document is null or have not cahrs!!“);
        }
    }
    public static boolean isHanZi(char ch) {
        // 判断是否汉字
        return (ch >= 0x4E00 && ch <= 0x9FA5);
    }
    /**
     * 根据输入的Unicode字符,获取它的GB2312编码或者ascii编码,
     *
     * @param ch
     *            输入的GB2312中文字符或者ASCII字符(128个)
     * @return ch在GB2312中的位置,-1表示该字符不认识
     */
    public static short getGB2312Id(char ch) {
        try {
            byte[] buffer = Character.toString(ch).getBytes(“GB2312“);
            if (buffer.length != 2) {
            

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        772  2017-06-05 19:16  chaCongSystem\.classpath

     文件        389  2017-06-02 20:37  chaCongSystem\.project

     文件      26155  2017-06-02 20:36  chaCongSystem\.settings\org.eclipse.jdt.core.prefs

     文件       2794  2017-06-02 20:36  chaCongSystem\.settings\org.eclipse.jdt.ui.prefs

     文件       2905  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\CosineSimilarAlgorithm.class

     文件        493  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\Main.class

     文件       1233  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\ProgressMonitorExample$Update.class

     文件       1359  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\ProgressMonitorExample.class

     文件       3795  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\WenDangAction.class

     文件       4986  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\WenDangChaCong.class

     文件       1057  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\Window$1.class

     文件       3478  2017-06-05 19:16  chaCongSystem\bin\chaCongSystem\Window.class

    .......      2905  2017-04-23 13:57  chaCongSystem\CosineSimilarAlgorithm.class

    .......       493  2017-04-23 13:57  chaCongSystem\Main.class

    .......      1233  2017-04-28 22:20  chaCongSystem\ProgressMonitorExample$Update.class

    .......      1359  2017-04-28 22:20  chaCongSystem\ProgressMonitorExample.class

     文件       3598  2017-05-05 19:18  chaCongSystem\src\chaCongSystem\CosineSimilarAlgorithm.java

     文件        177  2017-04-09 19:04  chaCongSystem\src\chaCongSystem\Main.java

     文件       1036  2017-05-05 19:18  chaCongSystem\src\chaCongSystem\ProgressMonitorExample.java

     文件       3399  2017-05-23 14:55  chaCongSystem\src\chaCongSystem\WenDangAction.java

     文件       5072  2017-06-03 16:17  chaCongSystem\src\chaCongSystem\WenDangChaCong.java

     文件       4423  2017-05-23 10:44  chaCongSystem\src\chaCongSystem\Window.java

    .......      3745  2017-04-29 11:19  chaCongSystem\WenDangAction.class

    .......      4491  2017-04-29 11:15  chaCongSystem\WenDangChaCong.class

    .......      1056  2017-04-29 11:43  chaCongSystem\Window$1.class

    .......      2889  2017-04-29 11:43  chaCongSystem\Window.class

     文件      35840  2017-05-27 12:29  测试数据\100000000000 李四 实验1.doc

     文件      29696  2017-05-06 17:37  测试数据\120000000999 王五放 实验1.doc

     文件      30720  2017-05-06 17:36  测试数据\130000022200 张三 实验2.doc

     文件      32768  2017-04-23 10:50  测试数据\140000222000 小红 实验4.doc

............此处省略20个文件信息

评论

共有 条评论