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