问题标签 [crf++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 有条件随机场(CRF)和马尔可夫随机场(MRF)的实用教程吗?
我已经开始在短期内阅读 MRF 和 CRF;但是,我在理解这些概念方面有很多困难。任何人都可以建议一些在线资源以进行理论和基本理解吗?我很难理解这两个概念的数学。
此外,我想在实现过程中尝试查看这两个图形模型的每个阶段,以便更好地理解进一步的实现和利用。是否有任何关于该领域的实用教程正在使用 Matlab/其他编程语言实现?
如果有人知道,我将不胜感激,请指导我,因为我很困惑,不知道如何从头开始。
您的帮助将不胜感激。谢谢...
crf - CRF++ 模板文件和句子语法
我正在尝试使用 CRF++ 将产品字符串解析为各种属性类,以便我可以执行类似于此问题的产品匹配。
然而,我遇到的一个问题是,当产品字符串中的单词顺序尚未在训练文件中看到时,CRF 无法准确预测标签。
例如,我只是使用一个词袋模板文件:
我运行crf_learn
包括以下示例训练数据:
使用此训练数据时,模型将测试字符串“panasonic digital monitor 17 inch”正确解析为正确的输出标签。但是,当我在诸如“panasonic monitor digital 17 inch”之类的字符串上使用该模型时,该模型无法识别正确的标签,而是将“digital”和“monitor”的标签更改为如下所示:
但是,我需要的是以下内容:
这是我的模板文件的问题,还是 CRF 本身就受语法限制?或者我可以以某种方式修改模板文件或训练数据列以捕获/忽略产品字符串中单词的顺序?
python - CRFSuite vs CRF++ 参数和结果
如何在 CRFSuite 中模拟基本 CRF++ 模型的结果?
我使用 CRF++ 已经有一段时间了,结果非常有希望,但是我最近切换到带有 Python 实现的 CRFSuite 以将模型投入生产。也就是说,我无法复制到使用简单参数在 CRFSuite 中使用 CRF++ 获得的结果。
我创建的模型尽可能简单,只有一个特征(当前单词):
CRFSuite 模型基于此示例 - https://github.com/scrapinghub/python-crfsuite/blob/master/examples/CoNLL%202002.ipynb
我正在使用 CRF++ 的默认参数,但即使修改 CRFSuite 的参数以匹配这些参数,也无法获得相同的结果。
我用于 CRFSuite 的参数是(来自手册):
这应该与 CRF++ 中的默认参数相同(我会发布手册但没有足够的代表 - 搜索 CRF++ 文档)。
我错过了什么吗?谢谢!
crf++ - 如何在 crf++ 中为 biagrams 创建模板文件
我有以下格式的火车文件。
word(column0),其对应的 biagram(column 1-21) 和 word(column 22)。
例如 ,我必须创建一个模板,以便基于
biagram
,模型可以预测(单词at)最后一栏)
linux - 使用CRF+0.58训练NE模型失败
当我使用 CRF++0.58 对 NE 进行建模时,程序出现问题:
“读取训练数据:tagger.cpp(399) [feature_index_->buildFeatures(this)] 0.00s”
- 开发环境:
- 红帽 linux 6.5,gcc 5.0,CRF++0.58
- 书面特征模板:
- 模板
- 数据集:
- Boson_train.txt
- Boson_test.txt
- 第一列是words,第二列是pos,第三列是NER tagger
- 问题:
- 当我想训练 NER 模型时,我输入这句话“crf_learn -f 3 -c 4.0 template Boson_train crf_model”,然后我收到了这个通知,“正在读取训练数据:tagger.cpp(399) [feature_index_->buildFeatures(this )] 0.00 秒"。我不懂 C++ 语言,所以我无法解决问题。
- 我尝试的方法:
- 1.更改数据集的编码类型。我使用记事本++将“没有BOM的utf-8”更改为“utf-8”。它没有用。
- 2.将分隔符从'\t'更改为''(空格)。它没有用。
- 3.我认为模板可能是错误的。所以我使用 crf++0.58/example/seg/template 进行测试。有效。但是这个模板很简单,所以我使用 /example/JapaneseNE/template 与我的功能模板更相似。它没有用。然后,我检查了 JapaneseNE 示例,它运行良好。所以我很困惑。有没有人可以帮助我。
模板
- U00:%x[-2,0]
- U01:%x[-1,0]
- U02:%x[0,0]
- U03:%x[1,0]
- U04:%x[2,0]
- U05:%x[-2,0]/%x[-1,0]/%x[0,0]
- U06:%x[-1,0]/%x[0,0]/%x[1,0]
- U07:%x[0,0]/%x[1,0]/%x[2,0]
- U08:%x[-1,0]/%x[0,0]
U09:%x[0,0]/%x[1,0]
U10:%x[-2,1]/%x[0,1]
- U11:%x[-2,1]/%x[1,1]
- U11:%x[-1,1]/%x[0,1]
- U12:%x[0,0]/%x[0,1]
- U13:%x[0,1]/%x[1,1]
- U14:%x[0,1]/%x[2,1]
- U15:%x[-1,0]/%x[0,1]
- U16:%x[-1,0]/%x[-1,1]
- U17:%x[1,0]/%x[1,1]
- U18:%x[1,0]/%x[1,1]
U19:%x[2,0]/%x[2,1]
U20:%x[-1,2]
- U21:%x[-2,2]
- U22:%x[0,1]/%x[-1,2]
- U23:%x[0,1]/%x[-2,2]
- U24:%x[0,0]/%x[-1,2]
- U25:%x[0,0]/%x[-2,2]
- U26:%x[-1,2]/%x[-2,2]/%x[0,1]
- U27:%x[-2,2]/%x[0,1]/%x[1,1]
- U28:%x[-1,1]/%x[-1,2]/%x[0,1]
- U29:%x[-1,2]/%x[0,0]/%x[0,1]
- 玻色子火车
- 浙江ns B_product_name
- 在线 b I_product_name
- 杭州 ns I_product_name
- 4 m B_time
- 月 m I_time
- 25 m I_time
- 日 m I_time
- 讯 ng Out
- ( x 出
- 记者 n Out
- x 输出
- x B_person_name
- 施宇翔 nr I_person_name
- x 输出
- 通讯员 n B_person_name
- x 输出
- 方英 nr B_person_name
- ) x 出
- 毒贩n出
- 很zg出
- “ x 出
- 现象 nr 输出
- ” x 出
- , x 出
- 用 p 出
- 微信vn B_product_name
- 交易n输出
- 排气口
- 。 x 输出
- 没 v 出
- 料想v出
- 警方 n B_person_name
- 也d出
machine-learning - 使用类别列表学习 NER
在用于培训 CRF++ 的模板中,我如何包含一个dictionary.txt
用于上市公司的自定义文件,另一个用于流行欧洲食品的自定义文件,例如,或几乎任何类别。
然后为每个类别提供样本训练数据,从而了解这些特定命名实体如何在该类别的上下文中使用。
通过这种方式,我和系统可以确保它正确理解某些命名实体在文本中的结构,无论是推文还是普利策获奖新闻文章,而不是提供数百兆字节的数据。
这会很酷。模型将有一个明确的已知实体字典(不需要扩展)和一个关于这些已知实体如何在人类文本中结构化的统计方法。
PS - 只是为了清楚起见,而不是渴望正则表达式。只有当你在字典里有很多东西,很多规则和很多无聊的时间时,这些才是很酷的。
crf++ - 运行此命令 crf_learn 模板训练模型时出错?
$ crf_learn template_file train_file model_file CRF++:又一个 CRF 工具包 版权所有 (C) 2005-2013 Taku Kudo,保留所有权利。
encoder.cpp(340) [feature_index.open(templfile, trainfile)] feature_index.cpp(135) [ifs] 打开失败
模板和火车文件在我的 CFR++ 文件夹中
machine-learning - CRF++/Wapiti 包含整个句子的类别作为特征
如何将朴素贝叶斯预测的句子类别表示为 CRF++ 或 Wapiti 中的特征?
例如,如果句子 ,Tumblr merges with Yahoo.
被归类为Business
,那么在编写 crf 的训练文件时,我在哪里可以将标签指示Business
为特征?那么模板应该如何建模呢?
火车文件应该是这样的
ORG
还是只包含带有标签的类别?怎么会这样?和模板文件?
crf++ - 谁能告诉根据给定模板如何生成 CRF 特征函数?
我已经检查并了解了一些相关主题,例如: 定义 CRF++ 模板文件
我现在感到困惑的是,如果我定义的模板类似于:..... U02:%x[0,0], .....
特征函数是什么样的?
谢谢你的帮助。
帅华