设计汉语的组合标注器
训练和测试语料使用thulac标注过的汉语文本。
(1)首先要对文本Leipzig10ksents.txt用thulac进行分词,注意要使用词性标注,因为整个文件很大,所以考虑直接调用thu.cut_f(sourcefile, outputfile)进行处理,这样就得到一个分好词且含有词性标记的文本。
(2)从分词结果看出,词和词性标注的格式为:词_词性,这显然不利于在NLTK中使用,故可以用字符串的replace将格式装换为:词/词性的格式,然后再用NLTK的str2tuple()函数转换为元组的形式。
(3)从标注好的文本中看出,文本是以每个句子为一行,因此在划分训练集测试集时,应该转换成以句子为单位的形式,使用readlines()结合b步骤即可实现。训练集测试集的比例为选为9:1。
(4)组合标注器则可以参考PPT中给出的英文组合标注器,设计如下:
二元词性标注—>一元词性标注—>正则表达式标注(数字、标点符号)—>默认标注(名词)
总体来看,自己设计的汉语组合标注器的评估结果还是挺高的。其中在加上正则表达式标注器(主要是对数字、标点匹配)之后,结果明显更好,这是因为文本中数字、标点的比例大的原因。
该问题的难点在于将thulac标注的文本表示为NLTK可以进行操作的形式。
下面附上使用NLTK自带的sinica_treebank语料进行进行组合标注器的设计:
参考文献: