半监督 Semi-NER-CRF-KNN

问题

如何建立一种半监督学习的模型对使用非正式语言的tweet进行命名实体识别?

模型

现有的分词、词性标注、NER工具解决非正式语言占主导的tweet时常常会失效,得不到令人满意的结果,而twitter作为一种主流的社交媒体,有着丰富的语料和非常高的研究价值。本文以tweet为研究对象,提出了一种基于bootstrapping的半监督学习方案。

tweet的NER任务包括四类实体:Person、Location、Organization和Product,标注方法用BILOU标注法,而没有用经典的IOB标注法。

本文方案的具体思路如下:

 

1、KNN分类器

将tweet中的每个词用词袋模型表示,输入到KNN中得到一个分类标签,这个标签作为CRF标注时的输入。

2、CRF标注器

NER是一个典型的序列标注任务,CRF是解决序列标注问题的一个典型方法。

3、训练过程:

(1)先根据已有标注数据,训练好初始的KNN和CRF模型。

(2)获得未标注的tweet,每条tweet中的每个词都经过KNN分类器,得到一个分类标签和相应的概率,如果这个概率大于预设阈值,则更新这个标签给该词。整个tweet经过KNN之后,作为特征输入到CRF模型中进行预测,如果预测出的结果概率大于预设阈值,则认为该标注结果可靠,加入可靠结果集中。

(3)当可靠结果集的数量达到N=1000时,则重新训练KNN和CRF模型,并且清空可靠结果集,继续(2)的过程。

相关工作

基于bootstrapping做NER任务的工作还包括:

1、Instance weighting for domain adaptation in nlp, 2007

2、Domain adaption bootstrapping for named entity recognition, 2009

 

bootstrapping是一种经典的半监督学习方法,通过从大量的非标注文本中进行学习和补充,来提高训练数据集的规模。tweet是一种非正式语言的文本,现有的NLP工具基本上都不好用,包括微博、论坛的文本都面临这样的问题,而且这样的文本占据着更大的比重,非常有必要对类似的文本进行NLP工具的研究,大概想了两种思路,要么专门地来研究一套适合这种非正式文本的工具,要么想办法将这样的文本转化为正式的语言,用现有的工具来解决问题。现在很火的chatbot对话理解也面临这样的问题,大家在和bot对话的时候说的话也是类似的非正式语言,如何准确理解和分析这类话,对于chatbot能否真的被应用至关重要。

你可能感兴趣的:(半监督 Semi-NER-CRF-KNN)