如何制作CRF++的模板文件?

2024-02-09

我是 CRF++ 的新手。我正在自学查看其手册:http://crfpp.googlecode.com/svn/trunk/doc/index.html?source=navbar#templ http://crfpp.googlecode.com/svn/trunk/doc/index.html?source=navbar#templ

我不明白这意味着什么:

这是一个描述一元特征的模板。当你给一个

模板“U01:%x[0,1]”,CRF++自动生成一组特征

函数 (func1 ... funcN) 例如:

func1 = if (输出 = B-NP 且 feature="U01:DT") 返回 1 否则返回 0

func2 = if (output = I-NP and feature="U01:DT") 返回 1 否则返回 0

func3 = if (output = O and feature="U01:DT") 返回 1 否则返回 0

.... funcXX = if (output = B-NP and feature="U01:NN") return 1 else return 0

funcXY = if (output = O and feature="U01:NN") return 1 else return 0. 模板生成的特征函数的数量

总计 (L * N),其中 L 是输出的数量

为什么 Unigram 特征有很多行,它们的含义是什么?


看完之后文档 https://taku910.github.io/crfpp/#templ时间够长了,我想我已经明白了。

以文档中的示例为例,其中输入数据为:

He        PRP  B-NP
reckons   VBZ  B-VP
the       DT   B-NP 
current   JJ   I-NP 
account   NN   I-NP

和功能模板(格式为%x[row, col], where row相对于您当前的位置)有问题的是%x[0,1]

When %x[0,1]被扩展,根据当前令牌,它可以扫描集合内的字符串之一[PRP, VBZ, DT, JJ, NN](即第一列中的唯一字符串之一,其中最左边的列是第 0 列)。对于每个字符串,它都会创建一组以下形式的特征函数(查看输入数据的第三行):

func1 = if (output = B-NP and feature="U01:DT") return 1 else return 0
func2 = if (output = I-NP and feature="U01:DT") return 1 else return 0
func3 = if (output = O    and feature="U01:DT") return 1 else return 0
...

其中该特定字符串 (DT在上面的代码中)与每个输出类进行比较。

所以如果输出类是[B-NP, I-NP, O]扩展为特征函数的特征模板将如下所示:

# row 1 (He, PRP, B-NP)
func1 = if (output = B-NP and feature="U01:PRP") return 1 else return 0
func2 = if (output = I-NP and feature="U01:PRP") return 1 else return 0
func3 = if (output = O    and feature="U01:PRP") return 1 else return 0

# row 2 (Reckons, VBZ, B-VP)
func4 = if (output = B-NP and feature="U01:VBZ") return 1 else return 0
func5 = if (output = I-NP and feature="U01:VBZ") return 1 else return 0
func6 = if (output = O    and feature="U01:VBZ") return 1 else return 0

# Row 3 (the, DT, B-NP)
func7 = if (output = B-NP and feature="U01:DT") return 1 else return 0
func8 = if (output = I-NP and feature="U01:DT") return 1 else return 0
func9 = if (output = O    and feature="U01:DT") return 1 else return 0

# Row 4 (current, JJ, I-NP)
func10 = if (output = B-NP and feature="U01:JJ") return 1 else return 0
func11 = if (output = I-NP and feature="U01:JJ") return 1 else return 0
func12 = if (output = O    and feature="U01:JJ") return 1 else return 0

# Row 5 (account, NN, I-NP)
func13 = if (output = B-NP and feature="U01:NN") return 1 else return 0
func14 = if (output = I-NP and feature="U01:NN") return 1 else return 0
func15 = if (output = O    and feature="U01:NN") return 1 else return 0

关于文档提到的地方:

模板生成的特征函数的数量为 (L * N),其中 L 是输出类的数量,N 是从给定模板扩展的唯一字符串的数量。

在这种情况下,L 为 3,N 为 5。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何制作CRF++的模板文件? 的相关文章

  • 时间复杂度 嵌套循环 内循环 + 外循环

    谁能解释一下这个算法的时间复杂度是多少 for i 1 i lt n i for j 1 j lt n j i note not j printf Iteration d d n i j The printf在内循环中称为exactly c
  • 相机2输出位图

    我正在尝试使用谷歌移动视觉API https developers google com vision barcodes overview使用camera2模块 我遇到了很多麻烦 我正在使用谷歌的android Camera2Video h
  • 使 google-chrome 浏览器在页面加载时全屏显示

    即使您将其标记为重复 也请考虑在此处回答此问题因为出于某种原因 我无法让它与其他解决方案一起使用 尽管我试图寻求帮助 但没有人回复 我真正想要的是 document ready function browser goes fullscree
  • PHP 中 MySQL 结果的分页

    直到最近我才真正考虑过这个 分页 作为一个问题 当我坐下来专注于它时 我发现自己面临很多问题 我感兴趣的是一个基本的联系人管理系统 用户可以在其中添加 更新 删除 搜索联系人 搜索部分是我需要有效实现分页的地方 我的想法 ve 和 ve 点
  • Google Apps 脚本 - JavaScript 不工作

    我创建了一个简单的网络应用程序 但它不起作用 Code gs function doGet I think this works var output HtmlService createTemplateFromFile index eva
  • 使用 Java 8 的 cobertura-maven-plugin

    是我一个人的问题还是 cobertura maven plugin 不适用于 java 8 当它运行时我得到 INFO cobertura maven plugin 2 6 instrument default provider impl
  • Oozie Shell Action 的 stdout 和 stderr 输出

    在 Oozie 站点中 它说 Shell 操作的 stdout 和 stderr 输出被重定向到运行 shell 命令的 Oozie Launcher 映射减少作业任务 STDOUT 谁能告诉我具体应该去哪里看 Oozie 在 启动器 中运
  • 递归是如何工作的? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 请用最简单的方式解释递归是如何工作的
  • Robotium:测试运行未能完成。预期 N 次测试,已收到 (N-1)

    Android 测试仍然是我头疼的问题 我创建了最简单的应用程序只是为了弄清楚如何Robotium有效 每次测试失败时都会出现错误 Running tests Test running started Test failed to run
  • subprocess.call cd 不起作用[重复]

    这个问题在这里已经有答案了 In 3 pwd Out 3 u Users aarcher Desktop scripts In 5 subprocess call mkdir p os path expanduser file path n

随机推荐