设计汉语的组合标注器

设计汉语的组合标注器

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

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


thulac分词(含词性标注


结果

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

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


表示为已标注元组的句子


结果

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

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


不含正则表达式标注的组合标注器


加上正则表达式的组合标注器

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

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

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


sinica_treebank语料进行进行组合标注器


部分结果截图

参考文献:

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

NLTK中文词性标注

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容