**GUIを作成しない簡易版の作り方は以下のリンク先へ [#f8521860] -[[マイニング処理ツールの作り方(簡易版)]]~ *マイニング処理ツール [#wcd53674] -入力テキストのデータ([[テキストデータ]])を入力として,入力テキストに関する処理結果をデータとして生成し,可視化ツールに出力します. -[[''マイニング処理ツール作成用ツールキット''>#k8b5fd70]]&color(blue){(''処理ツール作成用ソース'')}; *マイニング処理ツール作成の概要 [#rfa968f8] -マイニング処理ツール作成用の、''[[マイニングモジュールクラス]]''(&color(red){MiningModule};)を継承(extends)してクラスを作成します。 -出力データを作成するための処理は,&color(blue){miningOperations()}; メソッドの中から、呼び出される形で記述します。&color(blue){(''オーバーライド'')}; -パネルを作成するときに必要な初期化処理は、&color(blue){initializePanel()}; メソッドの中に記述します。&color(blue){(''オーバーライド'')}; --パネルが(再)構築されたときに呼び出されます。 -出力データの作成に必要な(データの再生成時に必要な)初期化処理は、&color(blue){initializeData()}; メソッドの中に記述します。&color(blue){(''オーバーライド'')}; --入力テキストの再読み込みがあった場合など、データ再生成の命令があったときに呼び出されます。 -処理結果は、&color(blue){setData***()}; メソッドを利用して、可視化インタフェースツールに渡します。 --***の部分には渡すデータの型を表す文字列が入ります。 --&color(blue){setData***()}; メソッドが呼び出された瞬間に、可視化インタフェースツール内の ''setData()''メソッドが呼び出されます。 --&color(blue){setData***()}; メソッドは、&color(blue){miningOperations()}; メソッドの中で、出力データを作成する処理が終わった後に記述します。 **マイニング処理ツールの構成 [#w2f26b5b] &ref(MiningConst2.png,,35%,); **初期化時の処理の流れ [#nbc1c24e] &ref(InitMining2.png,,35%,); **データ更新時(「再読込+実行」「再実行」「再処理を実行」)の処理の流れ [#m84d2fca] &ref(Retry.png,,35%,); **データ送信の流れ [#w3c3357a] &ref(dataio.png,,35%,); **サンプルプログラム [#if4c3872] &ref(Sample2.java); :入力テキストの単語間にスペースを入れた文字列を生成(ボタンを押すと実行) *作成の準備 [#o12046dd] -module/MiningModules フォルダ内に,自分が作成するツール(クラス)名のフォルダ(たとえばMyModule)を作成します. --&color(red){モジュール名に使用できるのは,アルファベットか数字のみで,一文字目は大文字にする必要があります.}; -作成したフォルダ内に,ソースファイル MyModule.java を用意します. -MiningModule クラスのサブクラスとして実装します. -ボタンが押されたときの処理を追加するため ActionListener を追加します. 例) class MyModule extends MiningModule implements ActionListener *コンストラクタの作成 [#q25d06c8] -setModuleIDメソッドにより,ツールIDを与えます.(公開用に取得したID,または他のツールとかぶらないID) 例) setModuleID(4723); -配列 pairingVisualizationID を初期化して,ペアとなる可視化インタフェースツールのIDを1つ以上指定します. 例) pairingVisualizationID = new int[]{1}; -[[ツールタイプ]]が,1:シンプル,2:プリミティブ,3:セミプリミティブ,に該当するときは,setToolType(int) メソッドにより,該当するタイプ番号をセットして下さい. 例) setToolType(2); -コンストラクタ内には,[[マイニングモジュールクラス]]のコンストラクタ用の処理以外は記述しないで下さい *変数の宣言 [#ue40d5e6] -クラス内のグローバル変数を宣言して下さい. -宣言した変数の初期化とインスタンス化は,&color(red){''必ずいずれかのメソッド内で''};行って下さい. *入力 [#ka4f4712] -入力は,[[マイニングモジュールクラス]]で定義されている TextData 型のインスタンス text を利用して下さい. *自動実行メソッドの実装 [#nfb2a6c8] -[[マイニングモジュールクラス]]で用意されている下記のメソッドを,オーバーライドして実装してください. ***&color(red){[1.GUI初期化]}; void initializePanel(){} [#be134339] -Swing を利用して作成したGUIコンポーネントを,[[マイニングモジュールクラス]]内で定義されている JPanel 型のインスタンス operationPanel に add して下さい. ***&color(red){[2.初期化と前処理]}; void initializeData(){} [#z44bc8ea] -処理ツール内の変数の初期化,マイニングの前処理を記述して下さい. -GUIコンポーネントのうち,入力データに依存するものの初期化は,こちらに記述してください. ***&color(red){[5. 7.マイニング処理と結果の出力]}; void miningOperations(int optionNumber){} &color(red){(実装必須)}; [#b0410be5] -全体を&color(red){switch(optionNumber) case 文};により記述した上で,&color(red){case 0:}; の箇所に以下を記述してください. --マイニング処理の結果を生成する処理 --処理結果を可視化ツールに送る setData*** メソッド -&color(red){case -1:};として,可視化ツールの初期表示(&color(red){''[6.結果の描画]''};)が終わった後に実行する処理を記述することができます. -可視化ツールの初期表示(&color(blue){''[6.結果の描画]''};)が終わった後に実行する処理(&color(red){''[7.マイニング後処理]''};)を, &color(red){case -1:};の箇所に記述することができます. --可視化ツールの表示オプションを指定(ボタン等の初期設定)するなどの利用を想定しています. *出力 [#x5066dbe] **dataID について [#xf863041] -出力は,まず,dataID (可視化ツールがデータ受け取る際のID番号.可視化ツール内でデータ型ごとにカウント)の値を0にリセットする、下記のメソッドを呼び出してください。 void resetData(); --setData*** メソッドにより可視化ツールがデータの受け取りに成功するごとに、可視化ツール内の,そのデータ型の dataID は 1 ずつ増加します --dataIDの値は、ペアとする可視化ツールごとに、0から1ずつ増加していきます。 **setData*** メソッド [#j8175873] -出力データの型に対応する setData*** メソッド([[マイニングモジュールクラス]]内で定義)の引数に,生成したデータを与えて呼び出すことで、データを出力してください. void setDataBoolean(boolean data); void setDataInteger(int data); void setDataDouble(double data); void setDataString(String data); void setDataBooleanArray(boolean data[]); void setDataIntegerArray(int data[]); void setDataDoubleArray(double data[]); void setDataStringArray(String data[]); void setDataBooleanArray2(boolean data[][]); void setDataIntegerArray2(int data[][]); void setDataDoubleArray2(double data[][]); -上記のメソッドを1つだけ用いる場合,&color(red){''プリミティブツール''(参考:[[ツールタイプ]])};となります. -特定の dataID のデータとして可視化ツールにデータを送りたい場合,上記メソッドの使用回数を把握して数を合わせるか,下記のメソッドにより直接 dataID を指定してデータを送ってください. void setDataBoolean(int dataID, boolean data); void setDataInteger(int dataID, int data); void setDataDouble(int dataID, double data); void setDataString(int dataID, String data); void setDataBooleanArray(int dataID, boolean data[]); void setDataIntegerArray(int dataID, int data[]); void setDataDoubleArray(int dataID, double data[]); void setDataStringArray(int dataID, String data[]); void setDataBooleanArray2(int dataID, boolean data[][]); void setDataIntegerArray2(int dataID, int data[][]); void setDataDoubleArray2(int dataID, double data[][]); -dataID を指定するメソッドを利用した場合,[[データ型コンバート]]は行われません.&color(red){(プリミティブ、セミプリミティブツール(参考:[[ツールタイプ]])の認定対象外となります)}; -[[マイニングモジュールクラス]]の&color(red){''setFocusSegments, setFocusSentences, setFocusKeywordsメソッドによりフォーカス情報をセットした時に,同時にsetDataBooleanArrayのdataIDの4501番と4502番と4503番が用いられ,boolean型のfocusSegments[], focusSentences[], focusKeywords[]のfocus情報が自動的に送信されます.''}; *GUI操作時の処理の実装 [#j7928041] -GUIのアクションを制御するメソッド actionPerformed をオーバーライドして実装してください public void actionPerformed(ActionEvent e); -GUIの操作時には,下記の処理を実行することが想定されます. --マイニング処理と結果の出力: &color(blue){miningOperations(optionNumber)}; メソッドを,特定の引数を与えて呼び出す. ---呼ばれた先の &color(blue){miningOperations}; メソッドでは,対応する &color(blue){optionNumber}; の &color(red){case 文};を増やして,マイニング処理の実行と,結果を出力する &color(blue){setData***}; メソッドの呼び出しを行って下さい. --可視化ツールの操作: 組み合わせて使用する可視化ツールの &color(blue){displayOperations(optionNumber)}; メソッドを,特定の引数を与えて呼び出す *コンパイル [#v789613f] -統合環境の tetdm フォルダ内で make または ant でコンパイルしてください.(自動的に統合環境に組み込まれます) --makeまたはantコマンドが無い場合は,コマンドをインストールしてください. --Windowsのコマンドプロンプトでは,Makefileに記述されているjavacコマンド内のワイルドカード*が使用できないことがあります. ---その場合,antコマンドを使用できるようにしていただくか,cygwinなどのターミナルソフトのインストールが必要です. --&color(blue){antコマンドでコンパイルを行った場合,各フォルダ内にclassファイルは作成されませんが動作には問題ありません.}; *マイニング処理ツール作成用ツールキット [#k8b5fd70] -&color(blue){処理ツール作成用ソース}; &ref{MiningToolKit.zip}; -MiningToolKit.java -MiningToolKit.txt -Japanese.txt -README.txt --3つのボタンを用意し、ボタン名を日本語と英語で切り替え可能 ---日本語と英語の切り替えは,「キーワード設定」最下部の「メニューを日本語にする」のチェックで行えます. --各ボタンが押されると、テキストの一部をもとに作成したString型データを可視化ツールに送ります --プリミティブツール([[ツールタイプ]])