nlp - 在实现用于词性标注的维特比算法时,HMM 中的开始和结束状态是否必要?

标签 nlp hidden-markov-models viterbi

我不完全理解如何使用隐马尔可夫模型中的开始和结束状态。为了设计和实现过渡和排放矩阵,这些是必要的吗?

最佳答案

开始/结束状态对于建模标签是否可能出现在句子的开头或结尾是必要的。

例如,如果您有一个五个字的句子,并且您正在考虑使用两个标签

  • Det 名词动词 Det 名词
  • Det 名词动词 Det Adj

  • 这两个在转换方面看起来都不错,因为 Det->Noun 和 Det->Adj 都很有可能。但是,以 Adj 结尾的句子比以名词结尾要少得多,如果没有结束标签,你就不会得到这种东西。所以你真正想要比较的是
  • START Det 名词动词 Det 名词END
  • START Det 名词动词 Det Adj END

  • 然后你将计算 P(END|Noun) 和 P(END|Adj)。

    如果您正在进行监督训练,那么使用 START/END 获取概率与其他标签没有什么不同,您只需在计算之前将特殊标签附加到每个句子。因此,如果您的训练语料库具有:
    Det Noun Verb
    Det Noun Verb Det Noun
    

    然后你将它修改为
    START Det Noun Verb END
    START Det Noun Verb Det Noun END
    

    并计算,例如:
  • P(Det|START) = 2/2
  • P(END|动词) = 1/2
  • P(END|名词) = 1/3

  • 此外,排放是微不足道的:P(START|START)=1 和 P(END|END)=1

    关于nlp - 在实现用于词性标注的维特比算法时,HMM 中的开始和结束状态是否必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21800325/

    相关文章:

    c++ - 使用多个连续观测变量的隐马尔可夫模型

    python - Scikit 的隐马尔可夫模型接受加起来不等于 1 的观察概率

    java - 如何提高精度? -使用连续隐马尔可夫模型(Jahmm)进行 Activity 识别

    algorithm - 如果图中有循环,我们可以应用维特比算法吗?

    python - 如何训练机器标记文本中的单个单词

    python - 如何用Python定制Stanford NER?

    machine-learning - 从文本中提取关键词/关键短语

    python - 来自 "ImportError: cannot import name ' 的变压器 : Error importing packages. 'torch.optim.lr_scheduler' SAVE_STATE_WARNING'

    r - viterbi RHmm 错误保护堆栈溢出