资源简介
电子文档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个文件信息
相关资源
- Java EE互联网轻量级框架整合开发 SS
- java简单版飞鸽传书
- java 路由分组转发仿真
- TF*IDFjava实现
- java源码分水岭算法
- java实现的sift全部代码
- java实现的R树
- JAVAEE图书管理系统
- java 简单购物车
- JAVA学生教师信息录入小系统
- servlet jar包
- hibernate.jar
- java 复数的类Complex
-
Java+sql数据库+fr
ame图形化界面 - 会议室预定系统java
- java画出一个八边形
- JAVA在服务器端和客户端传输图片和文
- myaql5.0.8驱动程序jar包:mysql-connector
- 超市收银系统 JAVA
- java实现基于websocket的聊天室
- Java反序列化生成Payload附利用脚本
- 达梦数据库jar包包含达梦67
- GsonFormat
-
javax.xm
l.bind.jar - JAVA 音频文件PCM转WAV Utils类
- java读取注册表的简单方法
- 魔板游戏java报告
- java(Mysql)简单的用户登录和注册
- 疯狂Java讲义(第4版)地址.txt
- java实现基于服务器的签到系统
评论
共有 条评论