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

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;


/**
* @author miyanishi
*
* TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
* ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
*/
public class TextChoise {
private int freqcnt;//単語の登場回数
//private int key; //注目する単語
private ArrayList sentences;//注目する単語を含む文
private ArrayList rankedword; //文を並び替える
private String[] folderfiles;
private Text[] text;

public void setFolder(String[] folderfiles){
	this.folderfiles = folderfiles;
}

private String[] getFolderFiles(){
	return folderfiles;
}

public void setText(Text[] _text){
	this.text = _text;
}

private ArrayList storeTextChoise = new ArrayList();

//単語の登場回数とその単語数はある
public Hashtable search(String key){
	//System.out.println("Key>>" + key );
	String[] folderfiles = getFolderFiles();
	for(int filenum = 0 ; filenum < folderfiles.length ; filenum++ ){
		for(int sennum = 0 ; sennum < text[filenum].getStoreonesentence().size() ; sennum++){
			Hashtable ht = (Hashtable) text[filenum].getStoreonesentence().get(sennum);
			
			if(ht.containsKey(key)){
				//System.out.println("含まれる文章>"+ filenum + " " + sennum +" " + ht);
				TextPart part = new TextPart(key, filenum, sennum, ht);
				storeTextChoise.add(part);
			}
		}
	}
	//System.out.println( rankWord() );//同じ単語を含んだ文章の並べ替え
	Hashtable temp = rankWord();
	return temp;
}

/* ある単語を含んだ文章中の単語の頻度の並び替え */
private Hashtable rankWord(){
	Hashtable temp = new Hashtable();
	for(int i = 0 ; i < storeTextChoise.size() ; i++ ){
		TextPart part = (TextPart) storeTextChoise.get(i);
		//keyの取得
		String keys = part.getKeys();
		
		Hashtable ht = part.getHashtable();
		
		Enumeration e = ht.keys();//keyを取り出したいときはkeys,値のときはelements
		//keyについてのhashtable作成
		while (e.hasMoreElements()){
			String text = (String) e.nextElement();
			Integer n = (Integer)ht.get(text);//新たに登場するhashのキーと値を取得
			Integer m = (Integer)temp.get(text);//もともとhashキーの値をたすため
			//System.out.println("text>" + text + n);
			
			//出現頻度の高い単語を取り出す(自分自身を除く)
			if( !(keys.equals(text))){
				if( !(temp.containsKey(text)) ){
					temp.put( text , n );
				}
				else{
					temp.put( text ,new Integer((int)(n.intValue() + m.intValue() ) ));
				}
			}
		}
		//System.out.println("key:" + keys + ":" + temp);
	}
	return temp;
}
		

		
		
		



	/*keyに含まれている文のうち,その中でそれ以外の単語が何回登場するか*/



private void printKeys(){
	for(int i = 0 ; i < storeTextChoise.size() ; i ++){
		TextChoise t = (TextChoise) storeTextChoise.get(i);
		int c = t.freqcnt;
		System.out.println(c);
	}
}

private ArrayList getSentences(){
	return sentences;
}
}
最終更新:2007年10月30日 02:07