# 3、A、中文编码 从文件夹读文件 (问原文标记还是输出歧义句子)
# 写文件的时候每次文件名字加一(之前有处理过分文件)
# B、提取“ |/w |/w |/w”之前的中文句子进行判断
# C、判断分为几个情况
# * 含有“/k” 无操作
# * 含有“/ni” 无操作
# * 只要含有“d” “r” “c” 有歧义
# * 开头含有“ v | u | p” :(.*) $1 =~ "/v || /u || /p"
# * 开头含有“m” + "q" 或者 “m” + "n" : $1=~ "m" && $2=~ "q" || $2=~ "n"
# * 开头有 “和” 看前两个字
# * 结尾不是“/n” .* (.*)
use Encode;
#use utf8;
$Utf8;
open(In,"100001.txt"); #迈向/v 充满/v 希望/n 的/u 新/a 世纪/n
open(out,">tanhao.txt");
@Lines=<In>;
$n=0;
chomp(@Lines);
foreach $OnelIne(@Lines){
$n++;
#print $OnelIne;
#$OnelIne = decode("GBK", $OnelIne);
#if($OnelIne =~ //k/ || $OnelIne =~ //ni/) next;
if($OnelIne =~ //d/ ||$OnelIne =~ //r/ ||$OnelIne =~ //c/){
print out $n."_".$OnelIne .=" !
";
next;
}
if($OnelIne =~ /(.*)s(.*)/){
if($1 =~ ~/[vup]/){
print out $n."_".$OnelIne .=" !
";
next;
}
}
if($OnelIne =~ /(.*)s+(.*)s+(.*)/){
if($1 =~//m/ && $2 =~ /[qn]/){
print out $n."_".$OnelIne .=" !
";
next;
}
}
if($OnelIne =~ /[^/n]/s|/w/){
print out $n."_".$OnelIne .=" !
";
next;
}
}
close(In);
close(out);
一个标注网站:http://www.aihanyu.org/cncorpus/CpsWParser.aspx