単語の重要度を用いた文書の要約のプログラミングをperl言語で作ろうと思っているんですが、いまいち閃かず困っています。
ソースコード分かる方いたら教えていただけないでしょうか。
何か知識を持っている方教えてください。
よろしくお願いします。
これはtf-idf値を計算するソースコードです。
これから単語の重要度を基にして文の重要度を決定。重要な文を選択して要約する感じにしたいです。
#!/usr/bin/perl
&load_file;
&print_dat;
sub load_file{
open(DFLOG, ">> /mkyozai/jk1sum/log/calc_df.log");
date >> /mkyozai/jk1sum/log/calc_df.log
;
whoami >> /mkyozai/jk1sum/log/calc_df.log
;
print DFLOG "perl calc_df.pl $ARGV[0] $ARGV[1] $ARGV[2] $ARGV[3]\n---\n";
close(DFLOG);
#---load tf file to count df values---# $fname=$ARGV[0]; $document=$ARGV[1]; @word=(); open(FP,$fname)||die "cannot open $fname\n"; while(defined($line=<FP>)){ chomp($line); ($tmp_word,$tmp_pos,$tmp_tf,$tmp_df,$tmp_idf)=split(/\t/,$line); if($tmp_word ne ""){ push(@word,$tmp_word); push(@pos,$tmp_pos); push(@tf,$tmp_tf); push(@df,$tmp_df); push(@tf_idf,sprintf("%.2f",$tmp_tf*(log($document/($tmp_df+1))+1))); } } close(FP);
}
sub print_dat{
($fname,$tmp)=split(/.df/,$ARGV[0]); $fname=$fname.".idf";
print "output file=$fname\n";
open(DF, ">$fname")||die("cannot open $fname\n"); for($i=0; $i<= $#word; $i++){ if($word[$i] ne ""){ print DF "$word[$i]\t$pos[$i]\t$tf[$i]\t$df[$i]\t$tf_idf[$i]\n"; } } close(DF);
}
あなたの回答
tips
プレビュー