目前正在做句子主干提取方面的工作,主要方法是构建二分类器,提取句子分词之后每个词的特征来决定分词的取舍。由于需要标注大量的训练语料,采用人工的方法费时费力,于是采用主动学习的方法实现语料标注,我实现的步骤如下:
- 先对语料实现人工标注一部分
- 使用机器学习训练模型如SVM、LR对已经标注的语料训练,把为标注的语料作为测试集
- 为测试机样本产生标签及置信度(即标签的准确性的概率值)
- 通过观察为置信度设定一个阈值,当样本中的每个分词都满足这个阈值时,我们把这个自动标注好的测试样本加入到训练集中,在测试样本中取出这个样本
- 重复2-4步,直到剩余的测试样本中没有完全满足阈值的
输出剩余的测试样本
刚开始我觉得这种方法非常好,经过测试,大概20次迭代之后大概4/5的样本已经标注好了
经过导师指导发现这种方法并不可靠,因为你新添加的训练集也是之前训练集产生的,反复迭代只会过拟合。我们应该设定一个比较低的阈值,找到测试集中非常不确定的测试样本(所有这些测试样本的置信度很低),通常来说这些样本是最有“价值”的样本,我们对这一小部分采用人工标注,并放入到训练集中,反复几次。