原文地址:http://www.cnblogs.com/lessmore/category/1009890.html 转载请保留本行,欢迎交流。
目录:
大多数候选词生成方法都是使用启发式规则从文本中直接生成候选词,注意到关键词内部不会包含其他关键词,从另一个角度来看候选词生成,无非是对文本中每个单词进行标注IOB格式的标签。其中I表示单词位于词组内部(Inside),O表示单词位于词组外部(Outside),B表示单词位于词组开始(Beginning)。例如若标注结果是“Natural/B language/I process/I is/O interesting/O”,我们就可以知道“Natural language process”是关键词。这样我们就把关键词生成转化成标注问题。计算语言学中最常见的标注模型有隐式马尔可夫模型和条件随机场]。本文中使用的是线性链条件随机场,条件随机场可以利用上下文信息进行标注,效果较好。
CRF标注方法提取候选词如同通常的机器学习模型,需要定义特征,训练模型学习参数,最后在测试数据上标注评估结果。值得一提的是,我们将CRF标注的结果视作候选词而不直接当作关键词,因此这里不评估准确率、召回率等指标。CRF模型中使用的特征只包括词性标注,TF*IDF,首次出现位置这三维特征,每个特征的介绍可以参见第三篇。
使用CRF标注方法相对于第四篇的名词短语提取方法的优势是显而易见的,可以提取各种类型的关键词,也可以处理不同领域的文本,可以自适应处理不同关键词数目的情形。同样CRF标注方法也有通常机器学习模型的问题,如何调整参数达到更好的结果,如何避免欠拟合过拟合。CRF标注方法使得候选词生成阶段变得更复杂。
这里需要说明的是,为什么不直接将CRF标注的结果视作关键词,而要增加候选词分类这个步骤呢?事实上,难以做出一个完美的解释,而这恰恰是我实现系统的创新之处,只能说这样的性能更好。可以参考的经验是,在CRF标注中使用更多的特征,例如外部训练的词向量这些没有令标注结果的性能更好,这是CRF模型本身参数较多的特点导致的。因此我们放松CRF标注的要求,只希望给出更高的召回率,再增加一个候选词分类来达到更好的结果。