Perl模式匹配-动态语言程序设计6

成语文本
四字成语[成语拼音空格隔离12345代表四声和轻音]
只打印出中文成语
if(/(.+)\[/){
}
或者用替换
s/(.*)\[.*\]/$1/;
s/\[.*\]//;
print "$_\n";

取得文本中拼音表
if(/.*\[(.*)\]/){
    @PY=split(" ",$1);
    foreach (@PY){
        $hash{$_}++;
    }
}
foreach (sort keys %hash){
    print "$_\n";
}


#一句中文本
<Eng>英文翻译
<PY>汉语分词[拼音空格分离]
<Wav>0001Ex.wav
取得拼音表
if(/<PY>(.*)/){
    @Item=$1=~/\S+/;
    foreach(@Item){
         if(/(.+)\[/){
             $hash{$1}++;
         }
    }
}
foreach (sort keys %hash){
    print "$_\n";
}

@Item=$1=~/(\S+)\[/g;
foreach(@Item){
    $hash{$_}++;
}

~/([a-z]+)\d/g;

@pinyins=/[a-z]+[1-5]\d/g;
/(.*)\[.*2\]/or/(.*)\[.*4\]/


if(/<Eng>(.*)/){
    @Item=$1=~/\S+/g;
    foreach(@Item){
        tr/[a-z]/[A-Z]/;
        S/[\.\"\{\}]//g;
        $hash{$_}++;
    }
}

练习9 统计语料中的声调出现情况

练习10 从语料中生成索引为拼音的字典

Related Articles

Quote Of The Day