问题标签 [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.
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++ 文档)。
我错过了什么吗?谢谢!
python - 如何在 TensorFlow 中将长度为 1 的序列传递给 tf.contrib.crf?
tf.contrib.crf
似乎不支持长度为 1 的序列。
例如,如果我在https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/crf ( mirror ) 上运行示例并替换num_words = 20
为num_words = 1
:
我收到错误消息:
num_words = 2
或num_words = 5
工作。我在
https://github.com/tensorflow/tensorflow/blob/e121667dc609de978a223c56ee906368d2c4ceef/tensorflow/contrib/crf/python/ops/crf.py#L121(mirror )上看到已经将1递减sequence_length
:
但是,更改sequence_lengths = np.full(num_examples, num_words - 1, dtype=np.int32)
为 时sequence_lengths = np.full(num_examples, num_words, dtype=np.int32)
并不能解决问题num_words = 1
。
如何解决这个问题,使 CRF 层支持长度为 1 的序列?
在 Windows 7 SP1 x64 Ultimate 上使用 TensorFlow 1.0.0 和在 Ubuntu 14.04.4 LTS x64 上使用 TensorFlow-GPU 1.0.0 进行测试。我在 TensorFlow 存储库中创建了一个问题,但由于不活动而关闭:https ://github.com/tensorflow/tensorflow/issues/7751 (镜像)
python - 如何使用 pycrfsuite 在两个数据集上训练 CRF?
我有两个数据集:数据集 A 和数据集 B。我想使用pycrfsuite在数据集 A 上训练条件随机场 (CRF),然后在数据集 B 上训练 CRF。是否可以使用 pycrfsuite 来实现?
我不想同时在两个数据集上加入 CRF。
我知道如何使用 pycrfsuite 在一个数据集上训练 CRF:https ://github.com/scrapinghub/python-crfsuite/blob/master/examples/CoNLL%202002.ipynb :
我只是不知道如何在第二个数据集上训练它,因为它会trainer.train()
重置 CRF 的参数。
nlp - 限制斯坦福 NER 中的迭代次数
我正在自定义数据集上训练斯坦福 NER CRF 模型,但用于训练模型的迭代次数现在已经达到 333 次迭代——即,这个训练过程已经持续了几个小时。以下是终端中打印的消息 -
下面给出了正在使用的属性文件 - 有什么方法可以将迭代次数限制为 20 次。
machine-learning - 使用类别列表学习 NER
在用于培训 CRF++ 的模板中,我如何包含一个dictionary.txt
用于上市公司的自定义文件,另一个用于流行欧洲食品的自定义文件,例如,或几乎任何类别。
然后为每个类别提供样本训练数据,从而了解这些特定命名实体如何在该类别的上下文中使用。
通过这种方式,我和系统可以确保它正确理解某些命名实体在文本中的结构,无论是推文还是普利策获奖新闻文章,而不是提供数百兆字节的数据。
这会很酷。模型将有一个明确的已知实体字典(不需要扩展)和一个关于这些已知实体如何在人类文本中结构化的统计方法。
PS - 只是为了清楚起见,而不是渴望正则表达式。只有当你在字典里有很多东西,很多规则和很多无聊的时间时,这些才是很酷的。
crf - Wapiti CRF:了解模型文件并强制执行硬约束
我目前正在使用 Wapiti 来检测网页中的特定产品名称。我已经训练了一个模型,我想列出这个模型中最重要的 10 条规则(那些权重最大的规则(正面或负面))。
以下是从 Wapiti 文档中获取的训练模型示例:
那么,从以上 3 条规则中,我怎么知道哪条的权重最大呢?该规则*:Pre-3 X='s,
与数字“12”相关联。这个数字是重量吗?还是对下面几行的引用?但是,数字“12”没有出现在这些行中。
另一个问题:是否可以强制“硬约束”?也就是说,要编写一个规则,即每当看到一个观察时,它总是会产生一个给定的标签。
mallet - 如何在我的 CRF 中使用以前令牌的标签作为特征?
我正在寻找一种在槌中使用以属性和标签二元组为条件的特征的方法。我仍在尝试了解如何将刚刚生成的标记的标签用作确定下一个标记的标签的特征?标记的特征向量是否作为先前标记的标签生成?
我是否误解了 CRF 允许使用预测的先前标签作为下一个标记的特征?
提前致谢!
deep-learning - 使用梯度上升进行图像分割
我正在通过梯度上升使用显着图进行图像分割。这是该过程的图像:http: //imgur.com/a/h8vBZ
我有一个训练有素的模型,可以准确地预测我的课程。然后,该模型用于计算输入图片的梯度,其中梯度上升 wrt 损失。对我来说,这里产生的梯度代表了模型在预测中关注的内容。
我运行一个分位数过滤器来挑选与该类最相关的梯度值(像素),然后从中生成一个二进制掩码。这很好用,但发现地图可以在图像中的类周围更准确和更紧密。我阅读了条件随机场作为生成更准确和平滑分割结果的机制,并试图实现这一点,但感觉好像我对这里产生的梯度没有完全理解。
我的问题是:在这种情况下,渐变到底代表什么?我的猜测是这些值本质上是像素级预测/像素标签。这相当于一元势吗?
machine-learning - CRF++/Wapiti 包含整个句子的类别作为特征
如何将朴素贝叶斯预测的句子类别表示为 CRF++ 或 Wapiti 中的特征?
例如,如果句子 ,Tumblr merges with Yahoo.
被归类为Business
,那么在编写 crf 的训练文件时,我在哪里可以将标签指示Business
为特征?那么模板应该如何建模呢?
火车文件应该是这样的
ORG
还是只包含带有标签的类别?怎么会这样?和模板文件?