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