#!/usr/local/bin/perl #require 'file/jcode.pl'; #========================変数入力===================================== #↓2-gramファイル。 $measure2 = "Result2.txt"; #↓新しく配置する文字。 $newentry = "ラ"; #========================読み込み===================================== open (FH,"<$measure2"); @textc=; close(FH); foreach (@textc) { $text .= $_; } #&jcode::convert(*text, 'sjis'); # #sub encode{ # $_[0] =~ s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/ge; # $_[0] =~ s/\s/+/g; # $_[0]; #}#encode END #========================変換===================================== $texts = ""; for ($n = 0; $n < 8; $n++){$ks[$n]=0;} foreach $line (@textc) { if(($line =~ /$newentry/)&&($line !~ /$newentry$newentry/)){ ($ak[$_],$ad[$_]) = split(/\t/,$line); if($ad[$_] > 0.00){#0.00は切り捨て $line2 .= $line if ($ad[$_] > 0.02); $line3 .= $line if (($line =~ /^$newentry/)&&($ad[$_] > 0.02)); $line4 .= $line if (($line !~ /^$newentry/)&&($ad[$_] > 0.02)); $akr = $ak[$_]; $akr =~ s/、/,/g; $akr =~ s/。/\./g; $akr =~ s/ャ/x/g; $akr =~ s/ュ/c/g; $akr =~ s/ョ/z/g; $akr =~ s/イ/i/g; $akr =~ s/ン/u/g; $akr =~ s/ウ/j/g; $akr =~ s/シ/o/g; $akr =~ s/カ/w/g; $akr =~ s/ナ/r/g; $akr =~ s/ノ/e/g; $akr =~ s/タ/g/g; $akr =~ s/ト/f/g; $akr =~ s/テ/v/g; $akr =~ s/ッ/n/g; $akr =~ s/ニ/p/g; $akr =~ s/ス/m/g; $akr =~ s/デ/t/g; #ここから内ループ for ($n = 0; $n < 8; $n++){ $akrt = $akr; #先 $akrt =~ s/$newentry/$n/g; #後(「先」と「後」を入れ替えるとバグる) $akrt =~ s|[qaz]|0|g; $akrt =~ s|[wsx]|1|g; $akrt =~ s|[edc]|2|g; $akrt =~ s|[rfvtgb]|3|g; $akrt =~ s|[yhnujm]|4|g; $akrt =~ s|[ik,]|5|g; $akrt =~ s|[ol\.]|6|g; $akrt =~ s|[p;/`:]|7|g; #同指連続の場合の処理 $akrt =~ s/11|22|33|44|55|66|77/8/g; $k[$n] .= $akrt . "\t" . $ad[$_] . "
\n" if ($akrt =~ /^8$/); $kd[$n] .= $line . "
\n" if ($akrt =~ /^8$/); $ks[$n] += $ad[$_] if ($akrt =~ /^8$/); $kd1[$n] .= $line . "
\n" if (($akrt =~ /^8$/)&&($line !~ /^$newentry/)); $ks1[$n] += $ad[$_] if (($akrt =~ /^8$/)&&($line !~ /^$newentry/)); $kd2[$n] .= $line . "
\n" if (($akrt =~ /^8$/)&&($line =~ /^$newentry/)); $ks2[$n] += $ad[$_] if (($akrt =~ /^8$/)&&($line =~ /^$newentry/)); #一つ置きに同じ指を使う場合に処理 $kd4[$n] .= $line . "
\n" if ($akrt =~ /^$n[0-9]$n$/); $ks4[$n] += $ad[$_] if ($akrt =~ /^$n[0-9]$n$/); }#内ループ終了 $akrh .= $akr . "\t" . $ad[$_] . "
\n" if ($akr =~ /^[0-9][0-9]$/); $akrhl .= $line if ($akr =~ /^[0-9][0-9]$/); # $texts .= $ak[$_] . "\n"; # $counts .= $ad[$_] . "\n"; # $base1 = $ak[$_] . $ad[$_]; # $base2 .= $base1 . "
"; } } }#foreach閉じる for ($n = 0; $n < 8; $n++){ $ks3[$n] = $ks1[$n] + $ks2[$n] + $ks4[$n]; $ks1[$n] = sprintf "%3.2f", $ks1[$n];#小数点第二位まで表示 $ks2[$n] = sprintf "%3.2f", $ks2[$n]; $ks3[$n] = sprintf "%3.2f", $ks3[$n]; $ks1[$n] = "$ks1[$n]" if ($ks1[$n]<0.06);#低頻度は赤文字 $ks1[$n] = "$ks1[$n]" if ($ks1[$n]>0.10);#高頻度は青文字 $ks2[$n] = "$ks2[$n]" if ($ks2[$n]<0.06); $ks2[$n] = "$ks2[$n]" if ($ks2[$n]>0.10); $ks3[$n] = "$ks3[$n]" if ($ks3[$n]<0.15); $ks3[$n] = "$ks3[$n]" if ($ks3[$n]>0.30); } #========================書き出し===================================== print "Content-type: text/html\n\n"; print <<_HTML_; 「$newentry」に関するデータ
1打目(単位:%)
  
直前と同指$ks1[0]$ks1[1]$ks1[2]$ks1[3] $ks1[4]$ks1[5]$ks1[6]$ks1[7]
近接打$ks3[0]$ks3[1]$ks3[2]$ks3[3] $ks3[4]$ks3[5]$ks3[6]$ks3[7]
同指例$kd1[0]$kd1[1]$kd1[2]$kd1[3] $kd1[4]$kd1[5]$kd1[6]$kd1[7]
近接例$kd4[0]$kd4[1]$kd4[2]$kd4[3] $kd4[4]$kd4[5]$kd4[6]$kd4[7]
2打目(単位:%)
  
直後と同指$ks2[0]$ks2[1]$ks2[2]$ks2[3] $ks2[4]$ks2[5]$ks2[6]$ks2[7]
近接打$ks3[0]$ks3[1]$ks3[2]$ks3[3] $ks3[4]$ks3[5]$ks3[6]$ks3[7]
同指例$kd2[0]$kd2[1]$kd2[2]$kd2[3] $kd2[4]$kd2[5]$kd2[6]$kd2[7]

直前・直後に来やすい文字は以下のとおり。
$line2

直前に来やすい文字は以下のとおり。
$line4

直後に来やすい文字は以下のとおり。
$line3

_HTML_