1

我正在寻找一种在槌中使用以属性和标签二元组为条件的特征的方法。我仍在尝试了解如何将刚刚生成的标记的标签用作确定下一个标记的标签的特征?标记的特征向量是否作为先前标记的标签生成?

我是否误解了 CRF 允许使用预测的先前标签作为下一个标记的特征?

提前致谢!

4

1 回答 1

2

标记的特征向量是否作为先前标记的标签生成?

不,CRF 联合优化损失,没有像 MEMM 中那样从左到右的处理,您可以在其中预测标签然后使用它。CRF 考虑所有可能的先前标签并找到最可能的序列。

我是否误解了 CRF 允许使用预测的先前标签作为下一个标记的特征?

CRF 允许使用以前的标签作为特征;在您的情况下,很可能它已经自动发生了。我没有使用 Mallet 的经验,但在大多数开箱即用的线性链 CRF 包中,有两种功能:

  1. “状态特征”。这些是用户定义的每个令牌功能;他们可以使用输入序列中的任何信息(例如当前和前一个标记,当前标记的最后 3 个字母等)。每个状态特征通常以当前输出标签为条件。
  2. “过渡特征”。在最常见的一阶线性链 CRF 中,它是以前一个标签为条件的当前标签。通常这些特征是针对所有可能的标签对自动生成的。

有时,您还可以对依赖于当前令牌的用户定义特征设置 (2) 转换特征。看来这就是你要找的东西,但我不确定。有些包实现了这一点(例如 wapiti),有些则没有(例如 crfsuite)。一些包允许定义任意 CRF,并使用任意特性(例如 pystruct、factorie、GRMM(?))。抱歉,我没有使用 Mallet 的经验,所以这不是一个真正的答案:)

于 2017-06-09T00:36:32.093 回答