[掲示板へもどる]
一括表示

  [No.3584] 「文書x抽出語」表の自動出力方法について 投稿者:tet  投稿日:2018/04/19(Thu) 17:37:27

樋口先生

お世話になります、tetと申します。

少し前からKHCoderを使用して一般的に使用されている
テキストマイニング手法の比較・評価を行っています。
ゆくゆくはKHCoderを使用した文章収集ツールを作成しようと考えており、
現在、自作のプログラムからKHCoderを呼び出して自動処理を実行させる実験をしています。

このため、auto_run.pmを改造して「文書x抽出語」表をCSVファイルに自動出力させることを試みているのですが、
上手くいかずに困っています。
具体的には、元となる共起ネットワーク作成処理の部分を以下のように修正しています。
================================
# 「文書x抽出語」表作成
my $win = gui_window::morpho_crossout::csv->open;
$win->{words_obj}->{ent_min}->delete('0', 'end');
$win->{words_obj}->{ent_min}->insert('end', '1');
$win->{words_obj}->{ent_min_df}->delete('0', 'end');
$win->{words_obj}->{ent_min_df}->insert('end', '1');
# CSV ファイル保存
$win->save;
================================

この場合、ファイル保存のダイアログが表示され、手動で保存すれば正常に結果が出力されます。
しかし、これをいじって保存処理まで自動化しようとするとうまくいきません。

gui_window::morpho_crossout::csv パッケージを確認してみましたが、
他機能のsaveサブルーチンと異なり、getSaveFileで保存ファイル名を取得しているので
上手くいかないのかと思っているのですが、何か良い解決方法はないでしょうか。

この実験を機にperlを勉強し始めたので、知識の至らぬ点があるかもしれませんが、
どうぞよろしくお願いいたします。


  [No.3585] Re: 「文書x抽出語」表の自動出力方法について 投稿者:HIGUCHI Koichi  投稿日:2018/04/19(Thu) 22:13:31

こんにちは、樋口です。書き込みありがとうございます。

サブルーチン「gui_window::morpho_crossout::csv::save」の内容を見てみる
と、最後の方で、以下のようにデータの保存を行なっています。

mysql_crossout::csv->new(
  tani   => $self->tani,
  hinshi => $self->hinshi,
  max    => $self->max,
  min    => $self->min,
  max_df => $self->max_df,
  min_df => $self->min_df,
  file   => $path,
)->run;

この際、
  my $win = gui_window::morpho_crossout::csv->open;
  (中略)
  $win->save;
という形でGUI画面を利用するのではなく、以下のように直接保存すれば良さ
そうに思います。

mysql_crossout::csv->new(
  tani   => 'dan',
  hinshi => ['名詞', '動詞', '形容詞'],
  max    => 0,
  min    => 1,
  max_df => 0,
  min_df => 1,
  file   => 'test.csv',
)->run;


  [No.3586] Re: 「文書x抽出語」表の自動出力方法について 投稿者:tet  投稿日:2018/04/20(Fri) 14:07:46

ご返信ありがとうございます。

お教えいただいた通り早速試してみたところ、
hinshiの指定箇所でMySQLのエラー(Unknown column 'xx' in 'where clause')が発生しました。
指定語の不正が原因のようでしたので、この指定を khcoder\config\hinshi_chasen の品詞IDに変更したところ、
うまく処理が実行できました。
================================
mysql_crossout::csv->new(
  tani   => 'dan',
  hinshi => ['1', '13', '14'],
  max    => 0,
  min    => 1,
  max_df => 0,
  min_df => 1,
  file   => $file_save,
)->run;
================================

この度は、ご回答いただき誠にありがとうございました。


  [No.3587] Re: 「文書x抽出語」表の自動出力方法について 投稿者:HIGUCHI Koichi  投稿日:2018/04/20(Fri) 16:49:28

こんにちは、樋口です。書き込みありがとうございます。

品詞名ではなく、品詞IDでしたね。失礼いたしました。

正しい方法をお調べいただき、なおかつここへの書き込みまでしていただいて
まことにありがとうございます。心より感謝申し上げます。