perl统计--序数词基数词字母词时间

来源:互联网 发布:csgo声音优化参数 编辑:程序博客网 时间:2024/04/28 12:11

sub getdictclass{
 #统计用词,并判断,基数词,序数词,字母词,日期,中文数字,阿拉伯数字
 open(In,"<$ARGV[0]");
 $flag=$ARGV[1];

 while(<In>){
  chomp();
  if($_ eq ""){
   next;
  }
  @line=split("  ",$_);
  for($sub=0;$sub<@line;$sub++){

   if(defined $hash{$line[$sub]}){
    $hash{$line[$sub]}++;
   }else{
    $hash{$line[$sub]}=1;
    @chars=split //,$line[$sub];
    $hashnum{$line[$sub]}=scalar(@chars);
    #得到词长
   }
  }
 }
 $counttype=0;
 $counttoken=0;

 #判断,基数词(cn,a),序数词(cn,a),字母词,日期
 foreach  (sort {$a<=>$b}keys (%hash)) {
  if($hashnum{$_}>1){
   $keyword=$_;
   if($flag eq 'xushuci')
   {
    if($keyword=~/^第[01234567890123456789]+(.*)/)
    {
     $counttype++;
     $counttoken+=$hash{$keyword};
     print "$keyword  $hashnum{$keyword}  $hash{$keyword}/n";
    }
   }
   elsif($flag eq 'xushuci_cn')
   {
    if($keyword=~/^第[一二三四五六七八九十()]+(.*)/)
    {
     if($1 eq "")
     {
      $counttype++;
      $counttoken+=$hash{$keyword};
      print "$keyword  $hashnum{$keyword}  $hash{$keyword}/n";
     }
    }
   }
   elsif($flag eq 'jishuci')#需要人工继续筛选
   {

    if($keyword=~/^[0123456789百千万亿%/./%/--·0123456789]+(.*)/)
    {
     if($1 eq "")
     {
      $counttype++;
      $counttoken+=$hash{$keyword};
      print "$keyword  $hashnum{$keyword}  $hash{$keyword}/n";
     }
    }
   }
   elsif($flag eq 'jishuci_cn')#需要人工继续筛选
   {
    if($keyword=~/^[一二三四五六七八九十零百千万亿]+(.*)/)
    {
     if($1 eq "")
     {
      $counttype++;
      $counttoken+=$hash{$keyword};
      print "$keyword  $hashnum{$keyword}  $hash{$keyword}/n";
     }
    }
   }
   elsif($flag eq 'zimuci')
   {
    if($keyword=~/^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]+(.*)/)
    {

     $counttype++;
     $counttoken+=$hash{$keyword};
     print "$keyword  $hashnum{$keyword}  $hash{$keyword}/n";

    }
   }
   elsif($flag eq 'time')
   {
    if($keyword=~/^[一二三四五六七八九十零]+(.*)/ or $keyword=~/^[0123456789]+(.*)/ or $keyword=~/^/d+(.*)/)
    {
     if($1 eq "年" or $1 eq "月" or $1 eq "日" or $1 eq "月份" or $1 eq "点"  or $1 eq "时" )
     {
      $counttype++;
      $counttoken+=$hash{$keyword};
      print "$keyword  $hashnum{$keyword}  $hash{$keyword}/n";
     }
    }
   }
  }
 }
 print "type:$counttype      token:$counttoken/n";
 close(In);
}

原创粉丝点击