アットウィキロゴ
 
package shimane;
/*
* 作成日: 2006/11/16
*
* TODO この生成されたファイルのテンプレートを変更するには次へジャンプ:
* ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
*/

/**
* @author miyanishi
*
* @see http://tech.bayashi.net/pdmemo/contexttech.html
* 
* 
* TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
* ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
*/
public class TfIdf {

private float N; //全てのドキュメント数N
private int df; //Nの中で、キーワードを含むドキュメントの数

private int tf; //ある文章中のキーワード出現回数(term frequency)
private float idf; 
  //その単語が出現する文書が少なければ,その単語に対する重みを大きくする
  //(Inverse Document Frequency)
private int tfidf; //単語の特徴づけ

/* コンストラクタ */
public TfIdf(){
	//値の初期化
	setN(0);
	setDf(0);
	setTf(0);
	setIdf(0);
	setTfidf(0);
}

/**
 * Idfの値を計算してフィールドIdfに格納する
 */
private void calcIdf(){
	float _n = getN();
	int _df = getDf();
	
	float _idf = (float) Math.log( _n / _df );
	setIdf( _idf );
}

/**
 * Tf-Idfの値を計算して返す
 * 
 * @return _tfidf float
 */
public float calcTfIdf(){
	calcIdf();
	
	//System.out.println("Tf>" + getTf() );
	//System.out.println("N >" + getN() );
	//System.out.println("Df>" + getDf() +"\n" );
	
	int _tf = getTf();
	float _idf = getIdf();
	float _tfidf = _tf * _idf;
	return _tfidf;
}


/*getter,setterメソッド*/
private float getIdf() {
	return idf;
}
private void setIdf(float _idf) {
	this.idf = _idf;
}

private int getTf() {
	return tf;
}
public void setTf(int _tf) {
	this.tf = _tf;
}

public float getN() {
	return N;
}

public void setN(float _n) {
	N = _n;
}

public int getTfidf() {
	return tfidf;
}

public void setTfidf(int tfidf) {
	this.tfidf = tfidf;
}

public int getDf() {
	return df;
}
public void setDf(int df) {
	this.df = df;
}

public static void main(String[] args) {
	TfIdf ti = new TfIdf();
	
	ti.setN(80000000);
	ti.setDf(2050000);
	ti.setTf(2);
	ti.calcIdf();
	float tfidf = ti.calcTfIdf();
	System.out.println("計算結果 > " + tfidf);
}
}
最終更新:2007年10月30日 02:09