*テキストデータを扱うためのTextData型クラス [#w0fbabd4]
-「&color(blue){マイニング処理モジュール};」「&color(blue){可視化インタフェースモジュール};」のいずれも,スーパークラスにおいて,&color(red){TextData}; 型の参照型インスタンス &color(red){text}; に下記データが格納されています.
*処理ツール作成のためのMiningModuleクラス [#u149e1e6]
-マイニング処理モジュールは,このクラスを継承して作成します.

*TextData型 [#k07c2deb]
*MiningModuleクラス [#rd8f831e]

|変数名|説明|
|int textID;|テキストのID.現在は,以下の値が設定されます.&br;&color(blue){0:ファイルから読み込んだテキスト};&br;&color(blue){1:セグメント絞り込みで作成された部分テキスト};&br;&color(blue){2:文絞り込みで作成された部分テキスト};|
|String originalText;|入力テキストの文字列|
|String sourceFilename;|入力テキストのファイル名(絶対パスつき)|
|String absolutePath;|TETDMの実行ファイルがあるフォルダへの絶対パス|
|String defaultCode;|入力テキスト保存時の文字コード|
|String getSegmentTag();|セグメントの区切り文字の取得(Ver.0.45から)|
|String getSentenceTag();|文の区切り文字の取得(Ver.0.45から)|
|SegmentData segment[];|セグメントデータ(&color(blue){環境設定/設定ファイル tetdm.conf で指定された文字列&br;「&color(red){スナリバラフト};」を区切りとして分けられる)};|
|int segmentNumber;|セグメント数(SegmentData 型配列 segment[] の要素数)|
|SentenceData sentence[];|文データ(&color(blue){環境設定/設定ファイル tetdm.conf で指定された &color(red){句点}; を区切りとして分けられる)};&br;&color(red){(上記 SegmentData内でインスタンス化した sentence を参照する)};|
|int sentenceNumber;|文の数(SentenceData 型配列 sentence[] の要素数)|
|int sentenceToSegment[];|添字として与えられた番号の文が属するセグメント番号&color(blue){(ただし先頭の文番号,セグメント番号は0)};|
|KeywordData keyword[];|テキスト内のキーワード&color(blue){(環境設定/設定ファイル tetdm.conf で指定した品詞)};に関するデータ|
|int keywordNumber;|テキスト内のキーワードの種類数(KeywordData 型配列 keyword[] の要素数)|
|final int maxKeywordNumber=10000;|テキスト内のキーワードの最大種類数&color(red){(この数値を超えるときにはエラーになります)};|
|RelationalData segmentRelation;|「セグメント」をベクトル,「キーワード」をベクトルの要素とした,ベクトル間の関連度|
|RelationalData sentenceRelation;|''(現在使用できません)''「文」をベクトル,「キーワード」をベクトルの要素とした,ベクトル間の関連度|
|RelationalData keywordRelationBySegment;|「キーワード」をベクトル,「キーワードが出現するセグメント」をベクトルの要素とした,ベクトル間の関連度|
|RelationalData keywordRelationBySentence;|''(現在使用できません)''「キーワード」をベクトル,「キーワードが出現する文」をベクトルの要素とした,ベクトル間の関連度|
|Focus focus;|モジュール間連動のためのフォーカス情報を扱うための情報|
|void setSegmentPartialTextData();|セグメント絞り込み(Focus型のfocusSegments[]で,trueにセットされたセグメント)によるテキストデータの作成.以下,作成されるデータの概要↓&br;&color(blue){セグメント数};:フォーカス中のセグメント数&br;&color(blue){文数};:フォーカス中のセグメントに含まれる文の数の合計&br;&color(blue){キーワード数};:もとのまま.頻度は再計算される|
|void setSentencePartialTextData();|文絞り込み(Focus型のfocusSentences[]で,trueにセットされた文)によるテキストデータの作成.以下,作成されるデータの概要↓&br;&color(blue){セグメント数};:もとのまま.文の数が0になることもある&br;&color(blue){文数};:フォーカス中の文の数&br;&color(blue){キーワード数};:もとのまま.頻度は再計算される|
|void fileSaveOnly(String)|引数として与えられた文字列で,入力テキストを上書きする.TETDMの実行ファイルがあるフォルダ内にも,ファイル「&color(red){REVISEDTEXT};」をコピーとして作成する.|
|void fileSaveOnly(String[])|引数として与えられた文字列を結合した文字列で,入力テキストを上書きする.TETDMの実行ファイルがあるフォルダ内にも,ファイル「&color(red){REVISEDTEXT};」をコピーとして作成する.|
|void fileSave(String)|引数として与えられた文字列で,入力テキストを上書きする.&color(blue){上書き後,すべてのパネルの処理が再実行される.};TETDMの実行ファイルがあるフォルダ内にも,ファイル「&color(red){REVISEDTEXT};」をコピーとして作成する.|
|void fileSave(String[])|引数として与えられた文字列を結合した文字列で,入力テキストを上書きする.&color(blue){上書き後,すべてのパネルの処理が再実行される.};TETDMの実行ファイルがあるフォルダ内にも,ファイル「&color(red){REVISEDTEXT};」をコピーとして作成する.|
**入力データ [#secc8ca9]
|TextData text;|テキストデータ.[[テキストデータ]]クラスのインスタンス|

**SegmentData型 [#o33578de]

|int segmentID;|セグメントのID.セグメント選択の前後で不変.|
|String segmentText;|セグメントのテキスト|
|SentenceData sentence[];|セグメント内の文データ|
|int sentenceNumber;|セグメント内の文の数(SentenceData 型配列 sentence[] の要素数)|
|int wordNumber;|セグメント内の総単語数|
|int kindKeywordNumber;|セグメント内のキーワード種類数|
|int positionOfSegment;|入力テキスト内でのセグメント番号&color(blue){(ただし先頭のセグメント番号は0)};|
|int positionOfFirstSentence;|セグメント内の先頭の文の,入力テキスト内での文番号&color(blue){(ただし先頭の文番号は0)};|

**SentenceData型 [#i9e20ed2]
**コンストラクタ内に記述する変数 [#jaecfd87]
|int pairingVisualizationID[];|処理モジュールが組合せ対象とする可視化モジュールのIDのリスト&color(red){(必須)};|
|boolean focusTouchExecute;|可視化モジュールからの,マウスでオブジェクトに触れることによる,フォーカス連動の要請を受けるか(true:受ける,false:受けない(デフォルト値))|
|boolean focusClickExecute;|可視化モジュールからの,マウスでクリックすることによる,フォーカス連動の要請を受けるか(true:受ける,false:受けない(デフォルト値))|
|int defaultSetPanelModuleID[];|セットボタンを押したときにセットされる処理モジュールのIDのリスト(左のパネルから順番)|
|int defaultSetPanelVisualizationID[];|セットボタンを押したときにセットされる可視化モジュールのIDのリスト(左のパネルから順番)|

|int sentenceID;|文のID.セグメント選択,文選択の前後で不変.|
|String sentenceText;|文のテキスト|
|int keywordIDList[];|文内に出現するキーワード&color(blue){ID};のリスト(出現順)(IDは KeywordData型配列 keywords[] の添字を表す)|
|int keywordNumber;|文内に出現するキーワード数(int 型配列 keywordIDList[] の要素数)|
|int kindKeywordNumber;|文内のキーワード種類数|
|String word[];|文内の全単語リスト(出現順)(出現時の活用形)|
|String wordEndForm[];|文内の全単語リスト(出現順)(終止形)|
|int wordIDList[];|文内に出現する単語&color(blue){ID};のリスト(出現順)(IDは KeywordData型配列 keyword[] の添字を表す)&br;&color(red){ただし,キーワード以外の単語IDはすべて-1};|
|int wordNumber;|文内の単語数(String 型配列 word[], wordEndForm[], wordIDList[] の要素数)|
|int positionOfSegment;|文を含むセグメント内での文番号&color(blue){(ただし先頭の文番号は0)};|
|int positionOfSentence;|入力テキスト内での文番号&color(blue){(ただし先頭の文番号は0)};|
|boolean subjectCheck[];|文内の各単語が主語であればtrue,要素数はwordNumber|
|boolean hasSubject;|文が主語を含んでいればtrue|
**処理モジュール作成用:基本変数 [#u20a4b2f]
|JPanel operationPanel;|ボタン類をのせるためのパネル.GridLayout()で初期化されている.|
|void initializePanel();|パネル初期化用メソッド&color(blue){(自動実行メソッド1)};|
|void initializeData();|データ初期化用メソッド&color(blue){(自動実行メソッド2)};|
|void miningOperations(int)|データ初期化用メソッド&color(blue){(自動実行メソッド5)};&color(red){(必須)};|
|void displayOperations(int)|組み合わせて使用する可視化モジュールの処理 displayOperations(引数として与える番号) を実行する.|

**KeywordData型 [#l1d68ccc]
**データ送信用メソッド [#j1ba5825]
|''推奨メソッド''||
|void setDataBoolean(boolean)|boolean型のデータを,可視化モジュールに送る|
|void setDataInteger(int)|int型のデータを,可視化モジュールに送る|
|void setDataDouble(double)|double型のデータを,可視化モジュールに送る|
|void setDataString(String)|String型のデータを,可視化モジュールに送る|
|void setDataBooleanArray(boolean[])|boolean[]型のデータを,可視化モジュールに送る|
|void setDataIntegerArray(int[])|int[]型のデータを,可視化モジュールに送る|
|void setDataDoubleArray(double[])|double[]型のデータを,可視化モジュールに送る|
|void setDataStringArray(String[])|String[]型のデータを,可視化モジュールに送る|
|void setDataBooleanArray2(boolean[][])|boolean[][]型のデータを,可視化モジュールに送る|
|void setDataIntegerArray2(int[][])|int[][]型のデータを,可視化モジュールに送る|
|void setDataDoubleArray2(double[][])|double[][]型のデータを,可視化モジュールに送る|
|''dataID指定メソッド''||
|void setDataBoolean(int dataID, boolean)|boolean型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataInteger(int dataID, int)|int型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataDouble(int dataID, double)|double型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataString(int dataID, String)|String型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataBooleanArray(int dataID, boolean[])|boolean[]型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataIntegerArray(int dataID, int[])|int[]型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataDoubleArray(int dataID, double[])|double[]型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataStringArray(int dataID, String[])|String[]型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataBooleanArray2(int dataID, boolean[][])|boolean[][]型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataIntegerArray2(int dataID, int[][])|int[][]型のデータを,dataIDを指定して,可視化モジュールに送る|
|void setDataDoubleArray2(int dataID, double[][])|double[][]型のデータを,dataIDを指定して,可視化モジュールに送る|

|String word;|キーワードの文字列(活用する単語の場合は終止形)|
|int partOfSpeech;|キーワードの品詞:1 名詞, 2 動詞, 3 形容詞, 4 接続詞, 5 副詞, 6 感動詞, 7 助詞, 8 助動詞&br;&color(blue){(現在,未知語は扱えません)};|
|int frequency;|キーワードの総頻度|
|int frequencyInSegment[];|キーワードの各セグメント内での頻度&color(blue){(添字は 0 から始まるセグメント番号)};|
|int sentenceFrequencyInSegment[];|キーワードの各セグメント内での文頻度&color(blue){(添字は 0 から始まるセグメント番号)};|
|int appearingSegment[];|キーワードが出現するセグメント番号のリスト|
|int appearingSegmentTable[];|添字がキーワードが出現するセグメント番号であれば 1, そうでなければ 0|
|int segmentFrequency;|&color(blue){セグメント頻度};:キーワードが出現するセグメントの数(int 型配列 appearingSegment[] の要素数)|
|int lastAppearingSegment;|キーワードが最後に出現するセグメント番号|
|int appearingSentence[];|キーワードが出現する文番号のリスト|
|int appearingSentenceTable[];|添字がキーワードが出現する文番号であれば 1, そうでなければ 0|
|int sentenceFrequency;|&color(blue){文頻度};:キーワードが出現する文の数(int 型配列 appearingSentence[] の要素数)|
|int lastAppearingSentence;|キーワードが最後に出現する文番号|
|int frequencyAsSubject;|キーワードが主語として出現する頻度|
|int segmentFrequencyAsSubject;|キーワードが主語として出現するセグメント数|
**オプションによる処理連動:実行用メソッド [#cc1961dd]
|void executeOtherModuleFirst(int moduleID, int option)|自パネル以外にセットされている,指定IDの処理モジュールの miningOperations(option)を実行する&color(blue){(この処理の後,同一IDの処理モジュールに,引き続き処理連動を実施する場合に用いる)};|
|void executeOtherModule(int moduleID, int option)|自パネル以外にセットされている,指定IDの処理モジュールの miningOperations(option)を実行する|
|void executeModuleFirst(int moduleID, int option)|指定IDの処理モジュールの miningOperations(option)を実行する&color(blue){(この処理の後,同一IDの別の処理モジュールに対して,引き続き処理連動を実施する場合に用いる)};|
|void executeModule(int moduleID, int option)|指定IDの処理モジュールの miningOperations(option)を実行する|
**オプションによる可視化連動:実行用メソッド [#ib2d75d8]
|void displayOtherModuleFirst(int moduleID, int option)|自パネル以外にセットされている,指定IDの可視化モジュールの displayOperations(option)を実行する&color(blue){(この処理の後,同一IDの可視化モジュールに,引き続き可視化連動を実施する場合に用いる)};|
|void displayOtherModule(int moduleID, int option)|自パネル以外にセットされている,指定IDの可視化モジュールの displayOperations(option)を実行する|
|void displayModuleFirst(int moduleID, int option)|指定IDの可視化モジュールの displayOperations(option)を実行する&color(blue){(この処理の後,同一IDの可視化モジュールに対して,引き続き可視化連動を実施する場合に用いる)};|
|void displayModule(int moduleID, int option)|指定IDの可視化モジュールの displayOperations(option)を実行する|

**RelationalData型 [#lffc1fb0]
**データ取得による処理連動用メソッド [#k25f49f4]
|''データ取得用''||
|boolean getDataBoolean(int moduleID, int dataID)|boolean型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|int getDataInteger(int moduleID, int dataID)|int型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|double getDataDouble(int moduleID, int dataID)|double型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|String getDataString(int moduleID, int dataID)|String型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|boolean[] getDataBooleanArray(int moduleID, int dataID)|boolean[]型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|int[] getDataIntegerArray(int moduleID, int dataID])|int[]型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|double[] getDataDoubleArray(int moduleID, int dataID)|double[]型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|String[] getDataStringArray(int moduleID, int dataID)|String[]型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|boolean[][] getDataBooleanArray2(int moduleID, int dataID)|boolean[][]型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|int[][] getDataIntegerArray2(int moduleID, int dataID)|int[][]型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|double[][] getDataDoubleArray2(int moduleID, int dataID)|double[][]型のデータを,指定IDの処理モジュールが生成する,dataIDのデータを取得する|
|''データ生成+データ取得用''||
|boolean getNewDataBoolean(int moduleID, int dataID)|boolean型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|int getNewDataInteger(int moduleID, int dataID)|int型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|double getNewDataDouble(int moduleID, int dataID)|double型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|String getNewDataString(int moduleID, int dataID)|String型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|boolean[] getNewDataBooleanArray(int moduleID, int dataID)|boolean[]型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|int[] getNewDataIntegerArray(int moduleID, int dataID])|int[]型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|double[] getNewDataDoubleArray(int moduleID, int dataID)|double[]型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|String[] getNewDataStringArray(int moduleID, int dataID)|String[]型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|boolean[][] getNewDataBooleanArray2(int moduleID, int dataID)|boolean[][]型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|int[][] getNewDataIntegerArray2(int moduleID, int dataID)|int[][]型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|
|double[][] getNewDataDoubleArray2(int moduleID, int dataID)|double[][]型のデータを,指定IDの処理モジュールを実行した上で,dataIDのデータを取得する|

|String name[];|各ベクトルの名前|
|int frequency[];|各ベクトルの非ゼロの要素数|
|int coFrequency[][];|ベクトル間で共通に存在する非ゼロ要素数|
|double cond[][];|ベクトル間の条件付き確率&color(blue){(各ベクトルの要素は 0 または 1 としたとき)};|
|double cos[][];|ベクトル間のコサイン類似度&color(blue){(各ベクトルの要素は 0 または 1 としたとき)};|
|int number;|ベクトル数&color(blue){(上記各配列,各次元の要素数)};|
**処理モジュール基本情報 [#he52bd88]
|String myModulePath;|処理モジュールがあるフォルダへの絶対パス|
|String myModuleName;|処理モジュールの名前|
|String visuModulePath;|組み合わせて使用中の可視化モジュールがあるフォルダへの絶対パス|
|String visuModuleName;|組み合わせて使用中の可視化モジュールの名前|
|int getModuleID()|処理モジュールのIDを取得する|
|int getPanelID()|処理モジュールがセットされているパネルのID(左から順に0,1,2,...)を取得する|

**Focus型 [#r87e8943]
**ファイル入出力用メソッド [#q3063ee1]
|String fileRead()|処理モジュールがあるフォルダ内のファイル「Japanese.txt」を読み込む|
|String fileRead(String)|処理モジュールがあるフォルダ内のファイル「引数として与えられた文字列」を読み込む|
|String[] fileRead()|処理モジュールがあるフォルダ内のファイル「Japanese.txt」を読み込む|
|String[] fileRead(String)|処理モジュールがあるフォルダ内のファイル「引数として与えられた文字列」を読み込む|
|void fileWrite(String, String)|第1引数として与えられたファイル名のファイルに,第2引数として与えられた文字列を書き込む|
|void fileWriteArray(String, String[], int)|第1引数として与えられたファイル名のファイルに,第2引数として与えられた文字列を,第3引数の行数分だけ,書き込む|

|boolean focusKeywords[];|各キーワードのフォーカスのon, off&br;&color(blue){(添字は 0 から始まるキーワード番号,falseで初期化)};|
|boolean focusSegments[];|各セグメントのフォーカスのon, off&br;&color(blue){(添字は 0 から始まるセグメント番号,falseで初期化)};&br;&color(red){(trueのセグメントは部分テキストの作成にも用いられます)};|
|boolean focusSentences[];|各文のフォーカスのon, off&br;&color(blue){(添字は 0 から始まる文番号,falseで初期化)};&br;&color(red){(trueの文は部分テキストの作成にも用いられます)};|
|int mainFocusKeyword, subFocusKeyword;|あるキーワードのフォーカス(第1,第2)&br;&color(blue){(数値はキーワードID,-1で初期化)};|
|int mainFocusSegment, subFocusSegment;|あるセグメントのフォーカス(第1,第2)&br;&color(blue){(数値はセグメント番号,-1で初期化)};|
|int mainFocusSentence, subFocusSentence;|ある文のフォーカス(第1,第2)&br;&color(blue){(数値は文番号,-1で初期化)};|
|void clear();|セグメント,文,キーワードに関するフォーカス情報の初期化|
**操作ログ保存用メソッド [#uf8f3065]
|void writeActionLog(String)|「システムが起動してからの時間(秒),Mining/Visualizationの区別,パネルID,モジュールID,引数で与えられた文字列」のデータを,スペース区切りで一行として,TETDMの実行ファイルがあるフォルダ内に,ファイル「&color(red){ACTIONLOG};」に追加保存|

以下のメソッドは,TextDataに依存しない,統合環境内で共通のフォーカス情報にアクセスするためのものです.~
(同じテキストを再度読み込んだり,異なるテキストを読み込んだ後も,初期化されずに値が残ります)

|void setMainFocusString(String word)&br; void setSubFocusString(String word)&br; String getMainFocusString()&br; String getSubFocusString()| ある文字列のフォーカス(第1,第2)用変数へのアクセス&br;&color(blue){(""で初期化)};|
|void setMainFocusDouble(double value)&br; void setSubFocusDouble(double value)&br; double getMainFocusDouble()&br; double getSubFocusDouble()| ある実数のフォーカス(第1,第2)用変数へのアクセス&br;&color(blue){(0.0で初期化)};|
|void setMainFocusInteger(int value)&br; void setSubFocusInteger(int value)&br; int getMainFocusInteger()&br; int getSubFocusInteger()| ある整数のフォーカス(第1,第2)用変数へのアクセス&br;&color(blue){(0で初期化)};|
|下記,0.47以降で追加||
|void setFocusStrings(String word)&br; String[] getFocusStrings()| ある文字列集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で""で初期化)};|
|void setFocusDoubles(double value)&br; double[] getFocusDoubles()| ある実数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で0.0で初期化)};|
|void setFocusIntegerS(int value)&br; int getFocusIntegers()| ある整数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で0で初期化)};|


*主語の判定方法 [#xb07d0b4]

-形態素解析器ChaSenで「名詞」と判定される単語のうち,次のいずれかの単語の,直前または2単語前,に存在する,直近の名詞1つを主語としています.(バージョン0.39から)
--が 助詞-格助詞
--は 助詞-係助詞
-バージョン0.40から,「未知語」も主語として判定されます.

*改行コードの位置についての追記(一部はバージョン0.45から) [#qd37e20c]
-文の区切り記号「句点」の直後にある改行コード1つは,その文のデータの最後に付け加えられます.
--それ以降にある改行コードは,その次の文の先頭に付け加えられます.
-セグメントの区切り記号「&color(red){スナリバラフト};」の直前にある空行(前のセグメントの最後の文の句点の次の行以降にある改行コード)は,テキストからカットされ、テキストデータには含まれません.
--「&color(red){スナリバラフト};」の直前に空行がなければ,入力テキストの行数が保持されます.
-「&color(red){スナリバラフト};」の後ろにある改行コードは,次の文の先頭に付け加えられます.


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS