我一直在研究 Hidden Markov Models and Conditional Random Fields 用于命名实体识别的任务,我似乎停留在一个基本概念上,也就是说:学习过程的目标是从训练数据中计算 argmax ,并将该 argmax 序列应用于测试数据的所有实例?
考虑这个隐马尔可夫模型示例:我有两个状态 {1,0},其中 1 是实体,0 是任何其他词。为简单起见,我现在还不关心实体分类,而只是实体检测。
我的训练数据如下:
奥巴马住在华盛顿 1 0 0 1
iPad很棒 0 1 0 0
史蒂夫乔布斯病了 1 1 0 0
现在遵循 argmax 规则,其中:
P(状态 1 到状态 1) = 1/9
P(状态 1 到状态 0)= 1 - 1/9
P(状态 0 到状态 0)= 3/9
P(状态 0 到状态 1)= 1 - 3/9
在计算出 V 和 U 矩阵后,我发现:
从训练数据中提取的最佳标签序列 = 1 1 0 0
现在考虑测试语句:
iPhone很棒
我是否只是将测试语句应用于 1 1 0 0,这实际上会起作用,但如果我有另一个测试语句,例如“Sony 的发言人被解雇”,你可以看到序列 1 1 0 0 将完全没用对于那句话。
总结一下:训练的目的是提取一个最佳标签序列并将其应用于所有测试句子吗?这似乎不太可能!我错过了什么??