チュートリアルで試せる内容

1)作成する処理モジュールの仕様を決めます

  • [モジュール名] AllNoun(全名詞)
  • [入力] テキスト情報
  • [処理] テキストに含まれる,すべての名詞を抽出する
  • [出力] 抽出した名詞を格納した配列( -> 可視化モジュールTextDisplayを利用して表示)
  • [GUI] 名詞の表示方法を改行区切りで表示するか,スペース区切りで表示するかを切り替える

2)雛形のSample2.java を利用して,モジュール作成の準備をします

  • tetdmのフォルダ内の,moduleフォルダ内のMiningModuleフォルダ内にある,Sample2フォルダを,フォルダごとコピーします
  • コピーしてできたフォルダの名前を,作成するモジュール名「AllNoun」に変更します
  • コピーして作成したフォルダ内のファイル名を変更します
    • Sample2.java -> AllNoun.java
    • Sample2.txt -> AllNoun.txt (テキストファイルの中身も「全名詞」に変更します)
    • 必要に応じて,モジュール完成後にREADME.txtを修正します
  • 作成するボタンの日本語として,ファイル Japanese.txt 内に,「改行」「スペース」を2行に分けて書き,保存します

3)AllNoun.java を編集し,プログラム作成の準備をします

  • プログラム中の Sample2 と書かれている箇所をすべて AllNoun に変更します(コメント内を含め5カ所)
    • // AllNoun.java Version 0.30
    • package module.MiningModules.AllNoun;
    • public class AllNoun extends MiningModule
    • public AllNoun()
    • System.out.println("writing ERROR in AllNoun");(この部分は後で利用しません)

コンストラクタの記述の修正

  • モジュールのIDを決め,コンストラクタ内のメソッド setModuleID の引数として与えます
  • 配列 pairingVisualizationID を初期化して,ペアとなる可視化インタフェースモジュールのIDを指定します.
	public AllNoun()
	{
		setModuleID(9912);						// Set your module ID after you have got it
		pairingVisualizationID = new int[1];
		pairingVisualizationID[0] = 1;
	}

4)一度コンパイルして,AllNounモジュールの動作を確認します

  • make または ant コマンドでコンパイルします
  • コンパイル後TETDMプログラムを起動して,いずれかのテキストを読み込みます
  • パネル上部の処理ツールを選ぶメニューの中から「全名詞」を選択し,パネル下部の「改行 スペース」と書かれたボタンを押します
    • (「全名詞」が表示されない場合,右下の「環境設定」ボタンを押し,ピンクの処理ツール一覧に「全名詞」があることを確認し,チェックボタンをチェックして,再度「環境設定」ボタンを押して戻ると,メニューに現れます)
  • 入力テキストが,単語間にスペースが入った状態で表示されていることを確認します(Sample2.java の処理)

5)プログラムの作成に使える入力情報を確認します

  • テキスト情報は,TextData型の変数 text に予め格納されているので,その中の単語情報に関するメンバー変数を確認します
  • テキストデータ
    • KeywordData keyword[];
    • int keywordNumber;
    • String word; (KeywordDataクラス内)
    • int partOfSpeech; (KeywordDataクラス内.値が1なら名詞)

6)名詞リストを配列に格納するプログラムを作成します

コンストラクタの前の,クラス内グローバル領域での変数の宣言

  • 名詞リストを保存するための配列,ボタン用の変数2つ,ボタンの日本語名を格納する変数を宣言します
	JButton button1, button2;
	String buttonNameInJapanese[];	
	String wordList[];

自動実行メソッド initializePanel() の作成(オーバーライド)

  • ボタンの初期化を行い,GUI用のパネルoperationPanel にadd します
  • ボタンの日本語名を,ボタンの日本語名を読み込む変数に読み込みます
	public void initializePanel()
	{
		button1 = new JButton();
		button1.addActionListener(this);
		operationPanel.add(button1);
		
		button2 = new JButton();
		button2.addActionListener(this);
		operationPanel.add(button2);
		buttonNameInJapanese = fileReadArray();		
	}

自動実行メソッド initializeData() の作成(オーバーライド)

  • ボタンに,読み込んだ日本語名を割り当てます
	public void initializeData()
	{
		if(isMenuInJapanese())
			button1.setText(buttonNameInJapanese[0]);
		else
			button1.setText("ENTER");
		
		if(isMenuInJapanese())
			button2.setText(buttonNameInJapanese[1]);
		else
			button2.setText("SPACE");		
	}

名詞リストを作成する MyMethod() メソッドを作成します

  • miningOperations メソッドの case 0: が自動的に実行されますので,これを修正して,そこから呼び出されるように記述します.
	case 0:	
		MyMethod(); 
		break;
	void MyMethod()
	{	
		int nounID[] = new int[text.keywordNumber];
		int frequency[] = new int[text.keywordNumber];
		int count;
		
		count = 0;
		for(int i=0;i<text.keywordNumber;i++)
			if(text.keyword[i].partOfSpeech == 1)
				count++;
		
		wordList = new String[count];
		
		count = 0;
		for(int i=0;i<text.keywordNumber;i++)
			if(text.keyword[i].partOfSpeech == 1)
				wordList[count++] = text.keyword[i].word;
	}		

ボタンが押されたときの動作を,actionPerformed(ActionEvent e)メソッドに記述します

  • miningOperations メソッドの case 1: と case 2: に対応させることにします
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == button1)
			miningOperations(1);
		
		if(e.getSource() == button2)
			miningOperations(2);		
	}
  • miningOperations メソッドの case 1: と case 2: を作成します
    • TextDisplay のsetDataは,引数が(1, String[]) で文字型配列の中身を改行で分けて表示,引数が(2, String[]) で文字型配列の中身をスペースで分けて表示します
    • 可視化モジュールの case 0: を displayOperations(0) で実行して,表示を更新します
			case 1:
				setData(1,wordList);
				displayOperations(0);
				break;
				
			case 2:
				setData(2,wordList);
				displayOperations(0);
				break;	

7)コンパイルして動作を確認します

  • 起動時には「テキストなし」と表示され,「改行」「スペース」ボタンを押すと,それぞれの表示方法で全名詞が表示されます

添付ファイル: fileAllNoun.java 1033件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-01-03 (木) 01:58:01 (4129d)