构造NLP标注集的几个简便方法&随想

来源:互联网 发布:suse linux 10 下载 编辑:程序博客网 时间:2024/05/22 01:32



基于统计的NLP算法或模型的性能关键在于语料库,但带标注的语料库不容易获得。这里介绍几个构造训练集或测试集的简便方法,在没有足够标注集的情况下可以采用。

1.词义消歧
  用固定字符串替换多词。如,用词符串“8888”替换语料中出现的“屌丝”和“高富帅”,其中“8888”是歧义词,其含义可能为“屌丝”或“高富帅”,以此类推构造其他词汇,这样就得到了一个人工标注的歧义语料库。该方法可用于构造训练和测试集。
2.中文分词
在没有中文分词语料的情况下,可以利用现成的英文语料,以句子为单位将单词合并为字符串,如:“a dog is barking”-->“adogisbarking”,这就得到了带标注的分词语料。可用于构造训练集和测试集。
  
3.拼写校正
  在语料中人为加入错误。

4.词性标注
 可以把词性标注看作一个分类问题,词w是分类器的输入特征,其标注c是分类器输出的类别。给定一个语料库,把所有词按一定规则划分为N类,为了模拟词性歧义,允许同一个词以一定的概率分布在多个类。可用于构造训练集和测试集。其他标注任务也可用该方法。

5.未登录词识别
 这个比较简单,用一个字典中不存在的字符串如“白富美”替换语料中的“郭美美”或“凤姐”,就得到了未登录词的标注集。


可以看出,以上方法的基本思想是:基于人工规则构造训练集。而这里的人工规则,是对语言现象和规律,或者是语法规则的模拟。这就意味着:1.用于构造标注集的人工规则,与真实的语言现象,规律或规则,是有差异的,同时也意味着语种无关;2.在上述方法得到的标注集上训练的模型,实际上是在学习我们用于构造训练集的人工规则。也就是说用以上方法训练得到的模型并不能直接应用于真实语料。那么是否上述方法是没有意义的?当然不是,这里的差异在于模型参数,而模型的选择,训练和应用,则是一样的。
有没有方法获得尽量接近真实语言的规则?这实际上就是所有NLP任务,或以统计,或以规则的方法所追求或部分追求的目标。也就是说,一旦有能力以完全真实的规则构造训练数据,那么就不需要再构造训练数据用于训练模型了。构造人工数据,无论从哪方面看,本身也是个NLP任务。

0 0
原创粉丝点击