设计汉语的组合标注器

设计汉语的组合标注器

训练和测试语料使用thulac标注过的汉语文本。

(1)首先要对文本Leipzig10ksents.txt用thulac进行分词,注意要使用词性标注,因为整个文件很大,所以考虑直接调用thu.cut_f(sourcefile, outputfile)进行处理,这样就得到一个分好词且含有词性标记的文本。


thulac分词(含词性标注


设计汉语的组合标注器_第1张图片
结果

(2)从分词结果看出,词和词性标注的格式为:词_词性,这显然不利于在NLTK中使用,故可以用字符串的replace将格式装换为:词/词性的格式,然后再用NLTK的str2tuple()函数转换为元组的形式。

(3)从标注好的文本中看出,文本是以每个句子为一行,因此在划分训练集测试集时,应该转换成以句子为单位的形式,使用readlines()结合b步骤即可实现。训练集测试集的比例为选为9:1。


设计汉语的组合标注器_第2张图片
表示为已标注元组的句子


设计汉语的组合标注器_第3张图片
结果

(4)组合标注器则可以参考PPT中给出的英文组合标注器,设计如下:

    二元词性标注—>一元词性标注—>正则表达式标注(数字、标点符号)—>默认标注(名词)


设计汉语的组合标注器_第4张图片
不含正则表达式标注的组合标注器


设计汉语的组合标注器_第5张图片
加上正则表达式的组合标注器

总体来看,自己设计的汉语组合标注器的评估结果还是挺高的。其中在加上正则表达式标注器(主要是对数字、标点匹配)之后,结果明显更好,这是因为文本中数字、标点的比例大的原因。

该问题的难点在于将thulac标注的文本表示为NLTK可以进行操作的形式。

下面附上使用NLTK自带的sinica_treebank语料进行进行组合标注器的设计:


设计汉语的组合标注器_第6张图片
sinica_treebank语料进行进行组合标注器


设计汉语的组合标注器_第7张图片
部分结果截图

参考文献:

NLTK的安装/对象/词库/分词/词性标注/分块

NLTK中文词性标注

你可能感兴趣的:(设计汉语的组合标注器)