/*
* 作成日: 2007/06/11
*
* TODO この生成されたファイルのテンプレートを変更するには次へジャンプ:
* ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
*/
package shimane;
import java.util.Vector;
/**
* @author miyanishi
*
* TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
* ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
*/
public class Similarity {
private Vector vec1;
private Vector vec2;
public double cosine(Vector v1, Vector v2){
return innerproduct(v1,v2)/(sumsquares(v1)*sumsquares(v2));
}
/*vのノルム計算*/
private double sumsquares(Vector v){
double x = 0;
for(int i = 0 ; i < v.size() ; i++){
String s = String.valueOf( v.get(i) );
double f = Double.parseDouble(s);
x = x + f*f;
//System.out.println(x +" ");
}
//System.out.println( Math.sqrt(x) );
return Math.sqrt(x);
}
/*内積計算*/
private double innerproduct(Vector v1, Vector v2){
double x = 0;
for(int i = 0 ; i < v1.size() ; i++){//ベクトルの次元は同じなのでv1で統一
String s1 = String.valueOf( v1.get(i) );
double f1 = Double.parseDouble(s1);
String s2 = String.valueOf( v2.get(i) );
double f2 = Double.parseDouble(s2);
x = x + f1*f2;
//System.out.print(x +" ");
}
//System.out.println(x);
return x;
}
}
最終更新:2007年10月30日 02:06