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

    技术2022-05-20  26

    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);}


    最新回复(0)