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

*TextDataクラス [#r83bfb8a]

**テキスト基本情報 [#v39175cb]
|String originalText;|入力テキストの文字列|
|int textLength;|入力テキストの文字数(&color(blue){改行コードを含みます。バージョン4.61まではWindowsだと改行1つで2文字分カウントされます};)|
|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 を参照する)};|
|SentenceData sentence[];|文データ(&color(blue){環境設定/設定ファイル tetdm.conf で指定された &color(red){句点}; を区切りとして分けられる)};&br;&color(red){(上記 SegmentData内でインスタンス化されている sentence を参照する)};|
|int sentenceNumber;|文の数(SentenceData 型配列 sentence[] の要素数)|
|KeywordData keyword[];|テキスト内のキーワード&color(blue){(環境設定/設定ファイル tetdm.conf で指定した品詞)};に関するデータ|
|int keywordNumber;|テキスト内のキーワードの種類数(KeywordData 型配列 keyword[] の要素数)|
|int wordNumber;|テキスト内の単語総数|

**テキスト前処理データ [#c0380334]
|int sentenceToSegment[];|添字として与えられた番号の文が属するセグメント番号&color(blue){(ただし先頭の文番号,セグメント番号は0)};|
|RelationalData segmentRelation;|「セグメント」をベクトル,「キーワード」をベクトルの要素とした,ベクトル間の関連度|
|RelationalData sentenceRelation;|''(現在使用できません)''「文」をベクトル,「キーワード」をベクトルの要素とした,ベクトル間の関連度|
|RelationalData keywordRelationBySegment;|「キーワード」をベクトル,「キーワードが出現するセグメント」をベクトルの要素とした,ベクトル間の関連度|
|RelationalData segmentRelation;|「セグメント」をベクトル,「キーワード」をベクトルの要素とした,ベクトル間の関連度.''関連度を計算するセグメント数の最大値は1000''|
|RelationalData sentenceRelation;|''(現在使用できません)''「文」をベクトル,「キーワード」をベクトルの要素とした,ベクトル間の関連度.''関連度を計算する文数の最大値は100''(バージョン0.59から)|
|RelationalData keywordRelationBySegment;|「キーワード」をベクトル,「キーワードが出現するセグメント」をベクトルの要素とした,ベクトル間の関連度.''関連度を計算する文数の最大値は1500''|
|RelationalData keywordRelationBySentence;|''(現在使用できません)''「キーワード」をベクトル,「キーワードが出現する文」をベクトルの要素とした,ベクトル間の関連度|

**テキスト処理設定情報 [#p77e3ed7]
|int textID;|テキストのID.現在は,以下の値が設定されます.&br;&color(blue){0:ファイルから読み込んだテキスト};&br;&color(blue){1:セグメント絞り込みで作成された部分テキスト};&br;&color(blue){2:文絞り込みで作成された部分テキスト};|
|String sourceFilename;|入力テキストのファイル名(絶対パスつき)|
|String absolutePath;|TETDMの実行ファイルがあるフォルダへの絶対パス|
|String defaultCode;|入力テキスト保存時の文字コード|
|String getSegmentTag();|セグメントの区切り文字の取得(Ver.0.45から)|
|String getSentenceTag();|文の区切り文字の取得(Ver.0.45から)|
|final int maxKeywordNumber=10000;|テキスト内のキーワードの最大種類数&color(red){(この数値を超えるときにはエラーになります)};|
|String getFontName();|デフォルトフォント名(キーワード設定で変更可能)(Ver.0.58から)|

**フォーカス情報の利用関連 [#o6faa05f]
|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){キーワード数};:もとのまま.頻度は再計算される|
|Focus focus;|ツール間連動のためのフォーカス情報を扱うための情報|
|void setSegmentPartialTextData()|セグメント絞り込み(Focus型のfocusSegments[]で,trueにセットされたセグメント)による部分テキストデータの作成.以下,作成されるデータの概要↓&br;&color(blue){セグメント数};:フォーカス中のセグメント数&br;&color(blue){文数};:フォーカス中のセグメントに含まれる文の数の合計&br;&color(blue){キーワード数};:&color(red){もとのまま};.頻度は再計算される|
|void setSentencePartialTextData()|文絞り込み(Focus型のfocusSentences[]で,trueにセットされた文)による部分テキストデータの作成.以下,作成されるデータの概要↓&br;&color(blue){セグメント数};:&color(red){もとのまま};.文の数が0になることもある&br;&color(blue){文数};:フォーカス中の文の数&br;&color(blue){キーワード数};:&color(red){もとのまま};.頻度は再計算される|
|int originalSegmentNumbers[];|部分テキスト内のセグメントの,もとのテキスト内でのセグメント番号&color(blue){(ただし先頭のセグメント番号は0)};|
|int originalSentenceNumbers[];|部分テキスト内の文の,もとのテキスト内での文番号&color(blue){(ただし先頭の文番号は0)};|

**ファイル出力 [#u26b9bd3]

|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};」をコピーとして作成する.|
|void fileSave(String, int)|第1引数として与えられた文字列で,入力テキストを上書きする.&color(blue){第2引数が0であれば,上書きのみ.1であれば,上書き後,TextDataを更新.2であれば,上書きとTextDataを更新した上で,すべてのパネルの処理が再実行される.};TETDMの実行ファイルがあるフォルダ内にも,ファイル「&color(red){REVISEDTEXT};」をコピーとして作成する.|
|void fileSave(String[], int)|第1引数として与えられた文字列を結合した文字列で,入力テキストを上書きする.&color(blue){第2引数が0であれば,上書きのみ.1であれば,上書き後,TextDataを更新.2であれば,上書きとTextDataを更新した上で,すべてのパネルの処理が再実行される.};TETDMの実行ファイルがあるフォルダ内にも,ファイル「&color(red){REVISEDTEXT};」をコピーとして作成する.|

*TextData型のサブクラス [#tf8a5b52]

**SegmentData型 [#jadccfec]

|int segmentID;|セグメントのID.セグメント選択の前後で不変.|
|int segmentID;|セグメントのID.テキスト絞込みの前後で不変.|
|String segmentText;|セグメントのテキスト|
|int segmentLength;|セグメントの文字数(&color(blue){改行コードを含みます。バージョン4.61まではWindowsだと改行1つで2文字分カウントされます};)|
|SentenceData sentence[];|セグメント内の文データ|
|int sentenceNumber;|セグメント内の文の数(SentenceData 型配列 sentence[] の要素数)|
|int wordNumber;|セグメント内の総単語数|
|int kindKeywordNumber;|セグメント内のキーワード種類数|
|int positionOfSegment;|入力テキスト内でのセグメント番号&color(blue){(ただし先頭のセグメント番号は0)};|
|int positionOfFirstSentence;|セグメント内の先頭の文の,入力テキスト内での文番号&color(blue){(ただし先頭の文番号は0)};|
|int posiNega;|セグメントのポジネガ(正:ポジ,負:ネガ,0;ニュートラル:セグメント内の文(単語)のポジネガの合計値で評価)(Ver4.64から)|

**SentenceData型 [#peed4c79]

|int sentenceID;|文のID.セグメント選択,文選択の前後で不変.|
|int sentenceID;|文のID.テキスト絞込みの前後で不変.|
|int segmentID;|文を含むセグメントのID.テキスト絞込みの前後で不変.(Ver3.50から)|
|String sentenceText;|文のテキスト|
|int sentenceLength;|文の文字数(&color(blue){改行コードを含みます。バージョン4.61まではWindowsだと改行1つで2文字分カウントされます};)|
|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 wordIDList[];|文内に出現する単語&color(blue){ID};のリスト(出現順)(IDは KeywordData型配列 keyword[] の添字を表す)&br;&color(red){ただし,キーワード以外の単語IDはすべて負の値(-1から-8)};|
|int wordNumber;|文内の単語数(String 型配列 word[], wordEndForm[], wordIDList[] の要素数)|
|int positionOfSegment;|文を含むセグメント内での文番号&color(blue){(ただし先頭の文番号は0)};|
|int positionOfSentence;|入力テキスト内での文番号&color(blue){(ただし先頭の文番号は0)};|
|int positionOfSegment;|文を含むセグメントの入力テキスト内での番号&color(blue){(ただし先頭のセグメント番号は0)};(Ver.3.50から)|
|int positionOfSentenceInSegment;|文を含むセグメント内での文番号&color(blue){(ただし先頭の文番号は0)};(Ver.3.50でpositionOfSegmentから変数名変更)|
|int positionOfSentenceInText;|入力テキスト内での文番号&color(blue){(ただし先頭の文番号は0)};(Ver.3.50でpositionOfSentenceから変数名変更)|
|boolean subjectCheck[];|文内の各単語が主語であればtrue,要素数はwordNumber|
|boolean hasSubject;|文が主語を含んでいればtrue|
|int posiNega;|文のポジネガ(正:ポジ,負:ネガ,0;ニュートラル:文内の単語のポジネガの合計値)(Ver4.64から)|
|int wordPosiNega[];|単語のポジネガ(1:ポジ,-1:ネガ,0;ニュートラル:文内の単語の並びによる補正により同一単語のKeywordDataのポジネガ値と一致しないことがあります)(Ver4.64から)|

**KeywordData型 [#d28aebcb]

|String word;|キーワードの文字列(活用する単語の場合は終止形)|
|int partOfSpeech;|キーワードの品詞:1 名詞, 2 動詞, 3 形容詞, 4 接続詞, 5 副詞, 6 感動詞, 7 助詞, 8 助動詞&br;&color(blue){(現在,未知語は扱えません)};|
|int partOfSpeech;|キーワードの品詞:1 名詞, 2 動詞, 3 形容詞, 4 接続詞, 5 副詞, 6 感動詞, 7 助詞, 8 助動詞, 9 連体詞&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;|キーワードが主語として出現するセグメント数|
|int posiNega;|キーワードのポジネガ(1:ポジ,-1:ネガ,0;ニュートラル)(Ver4.64から)|

**RelationalData型 [#ka9119d3]

|String name[];|各ベクトルの名前|
|int frequency[];|各ベクトルの非ゼロの要素数|
|int coFrequency[][];|ベクトル間で共通に存在する非ゼロ要素数|
|double cond[][];|ベクトル間の条件付き確率&color(blue){(各ベクトルの要素は 0 または 1 としたとき)};|
|double cos[][];|ベクトル間のコサイン類似度&color(blue){(各ベクトルの要素は 0 または 1 としたとき)};|
|int number;|ベクトル数&color(blue){(上記各配列,各次元の要素数)};|

**Focus型 [#f754f6ba]

-&color(red){フォーカス型変数へのアクセス方法はバージョン4.0で変更されました};
-&color(red){''以下の変数には,[[MiningModuleクラス>マイニングモジュールクラス]]と[[VisualizationModuleクラス>可視化モジュールクラス]]で用意されているメソッドと変数を利用してアクセスしてください''};
-モード変更時と,COMBINATION SELECTIONウインドウからのパネル変更時には,初期化されます.
-セグメント,文,キーワードのフォーカスデータは,テキストデータごとに独立に保存されます.
-部分テキストにフォーカスデータがセットされた場合,全体テキストのフォーカスデータも更新されます.
|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();|セグメント,文,キーワードに関するフォーカス情報の初期化|

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

|void setMainFocusInteger(int value)&br; void setSubFocusInteger(int value)&br; int getMainFocusInteger()&br; int getSubFocusInteger()| ある整数のフォーカス(第1,第2)用変数へのアクセス&br;&color(blue){(0で初期化)};|
|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){(-1で初期化)};|
|void setMainFocusDouble(double value)&br; void setSubFocusDouble(double value)&br; double getMainFocusDouble()&br; double getSubFocusDouble()| ある実数のフォーカス(第1,第2)用変数へのアクセス&br;&color(blue){(-1.0で初期化)};|
|void setMainFocusString(String word)&br; void setSubFocusString(String word)&br; String getMainFocusString()&br; String getSubFocusString()| ある文字列のフォーカス(第1,第2)用変数へのアクセス&br;&color(blue){(""で初期化)};|

|下記,0.47以降で追加||
|void setMainFocusBoolean(boolean value)&br; void setSubFocusBoolean(boolean value)&br; boolean getMainFocusBoolean()&br; boolean getSubFocusBoolean()| ある真理値のフォーカス(第1,第2)用変数へのアクセス&br;&color(blue){(falseで初期化)};|
|void setFocusBooleanArray(boolean value[])&br; boolean[] getFocusBooleanArray()| ある真理値集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1でfalseで初期化)};|
|void setFocusIntegerArray(int value[])&br; int[] getFocusIntegerArray()| ある整数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で0で初期化)};|
|void setFocusDoubleArray(double value[])&br; double[] getFocusDoubleArray()| ある実数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で0.0で初期化)};|
|void setFocusIntegerArray(int value[])&br; int[] getFocusIntegerArray()| ある整数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で-1で初期化)};|
|void setFocusDoubleArray(double value[])&br; double[] getFocusDoubleArray()| ある実数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で-1.0で初期化)};|
|void setFocusStringArray(String word[])&br; String[] getFocusStringArray()| ある文字列集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で""で初期化)};|
|void setFocusBooleanArray2(boolean value[][])&br; boolean[][] getFocusBooleanArray2()| ある真理値集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1でfalseで初期化)};|
|void setFocusIntegerArray2(int value[][])&br; int[][] getFocusIntegerArray2()| ある整数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で0で初期化)};|
|void setFocusDoubleArray2(double value[][])&br; double[][] getFocusDoubleArray2()| ある実数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で0.0で初期化)};|
|void setFocusIntegerArray2(int value[][])&br; int[][] getFocusIntegerArray2()| ある整数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で-1で初期化)};|
|void setFocusDoubleArray2(double value[][])&br; double[][] getFocusDoubleArray2()| ある実数集合のフォーカス用変数へのアクセス&br;&color(blue){(要素数1で-1.0で初期化)};|





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

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

*改行コードの位置についての追記(一部はバージョン0.45から) [#cb404e0b]
*ポジネガの判定方法 [#fe9145ea]
--[[ポジネガの判定方法]]

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


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