/*
* 作成日: 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