Re: クラスタ分析のターム・文書行列 (アリ) KH Coder 旧掲示板
[ツリー表示] [留意事項] [ワード検索] [過去ログ]

  [No.779] クラスタ分析のターム・文書行列 投稿者:アリ  投稿日:2011/05/18(Wed) 14:05:40

樋口先生、お世話になっております。アリです。

KHCoderのクラスタ分析の手法と流れをご確認させていただきたいですが。
doc_cls.pmのsub cacl と sub cacl_execの中身を見ると、距離の計算とグループ分けはRの関数distとhclustを利用していると思います。
Rのdist関数を利用するため、分析対象ファイルのターム・文書行列(term-document matrix)というインプットファイルが必要だと思います。
KHCoderでどこでそのファイルを作成していますか?
sub cacl の「データ取り出し」ということだと思いますが、正しいでしょうか。
# データの取り出し
my $file_csv = $::project_obj->file_TempCSV;
mysql_crossout::csv->new(
 file => $file_csv,
 tani => $self->tani,
 tani2 => $self->tani,
 hinshi => $self->hinshi,
 max => $self->max,
 min => $self->min,
 max_df => $self->max_df,
 min_df => $self->min_df,
)->run;

もし、このところであれば、自分で作ったnewproject.plに追加して、単独的にそのterm-document matrixを外部に出力したいですが。

次のように、newproject.plに追加したましたが、hinshiという変数の定義でエラーが出て、なかなか動かないです。

# 新規作成したプロジェクトを開く
print "\nopen this new project\n";
$new->open or die;
$::main_gui->close_all;
$::main_gui->menu->refresh;
$::main_gui->inner->refresh;

#分析対象ファイルをチェックする
#use kh_datacheck;
#kh_datacheck->run;
#print '分析対象ファイルをチェックしました';

# 前処理実行
print "\nexecute pre-process\n";
mysql_ready->first;

#クラスタ分析
print "\ncluster analysis\n";
use gui_widget::tani;
use gui_widget::hinshi;
use mysql_crossout;
use gui_window::doc_cls;

# データの取り出し
my $file_csv = $::project_obj->file_TempCSV;
mysql_crossout::csv->new(
 file => $file_csv,
 tani => 'H2',
 tani2 => 'H2',
 hinshi => &hinshi,
 max => '',
 min => '1',
 max_df => '',
 min_df => '1',
)->run;

sub hinshi{

my $self = shift;

return $self->{words_obj}->hinshi;
}
・・・
・・・

「データ取り出し」ことはどうやって呼び出せるかご教授を頂ければ、大変助かると思います。
よろしくお願い致します。


- 関連一覧ツリー (■ をクリックするとツリー全体を一括表示します)