问题标签 [python-crfsuite]

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.

0 投票
1 回答
349 浏览

machine-learning - 训练没有句子边界的 CRF

我需要在 HTML 文档中标记部分文本。但是,它主要由日期、公司名称、地址等形式的文本组成。我计划使用 CRF (sklearn-crfsuite)

我的问题是很难将数据集分成句子。我们能否训练一个没有句子边界的 CRF 模型,将所有内容都视为一个序列?CRFSuite 或 sklearn-crfsuite 中的教程没有讨论这个。

如果没有句子分割就无法完成,关于如何将这些文本分成句子的任何提示?

数据是这样的:(我不能分享实际数据) 在此处输入图像描述

0 投票
1 回答
1445 浏览

machine-learning - 如何在 python crfsuite 中使用 Conll 2003 语料库

我已经下载了 Conll 2003 语料库(“eng.train”)。我想用它来使用 python crfsuite 训练来提取实体。但我不知道如何加载这个文件进行训练。

我找到了这个例子,但它不适用于英语。

同样在未来,我想培训 POS 或位置以外的新实体。我该如何添加这些。

还请建议如何处理多个单词。

0 投票
1 回答
139 浏览

python - CRFSuite 有多少训练数据?

嗨,我正在使用 crfsuite 训练一个 crf,其中包含一些我使用拉丁文本的示例数据。我用 O、PERSON 和 PLACE 标记了训练数据。当测试我的训练模型时,我得到的所有预测都是 O。我怀疑这是因为我没有足够的训练数据。我的训练基于 3760 字节。(我知道这是一点点!-它会使 CRF 不起作用吗?)

0 投票
0 回答
433 浏览

scikit-learn - sklearn-crf 中训练算法的区别

我正在训练 CRF 来做一些标记工作。原始输入有大约 180 万字,我正在尝试不同的标签集和功能以获得最佳结果。但是,现在的训练过程很长。调整参数真的很痛苦。

我想知道不同训练算法之间的效率有什么区别:lbfgs、l2sgd、ap、pa 和 arow。训练模型的快速算法是什么?目前我正在使用 lbfgs。

另外我很好奇如果我购买更好的 CPU 或 RAM,训练会更快吗?我正在使用 I7-9700k 和 32GB RAM 进行训练。sklearn 是否受益于超线程?如果是,我可以购买新的 9900k,因为 9700k 不支持超线程。

上面的代码花了我 422 分钟。我有 6 个标签和 10 个功能。我仍然想继续使用更多功能和不同的标签集进行实验。如何加快训练速度?

0 投票
1 回答
77 浏览

python-3.x - 固定模式中的 Python-crfsuite 标记

我正在尝试创建一个将日语句子分割成单词的 CRF 模型。目前我并不担心完美的结果,因为这只是一个测试。训练进行得很好,但是当它完成时,它总是对我尝试标记的每个句子给出相同的猜测。

查看模型的转换信息时:

这看起来不错,因为所有带有负值的转换都是不可能的,例如 E -> X,从单词的末尾到下一个单词的中间。S -> E gets 具有最高值,如上所示,模型简单地进入标记 S 然后 E 重复直到句子结束的模式。我在尝试此操作时遵循了此演示,尽管该演示用于分离拉丁语。我的特征同样只是 n-gram:

我尝试将标签更改为仅用于开始和其他的 S 和 X,但这只会导致模型重复 S、X、S、X 直到字符用完。我在两个方向上都达到了 6 克,这花了更长的时间,但没有改变任何东西。尝试训练更多迭代并稍微改变 L1 和 L2 常数。我已经训练了多达 100,000 个句子,这几乎是我能做到的,因为它几乎需要我所有 16GB 的内存才能做到这一点。我的特征结构错了吗?我如何让模型停止猜测模式,这就是正在发生的事情吗?帮助将不胜感激,如果我需要向问题添加更多信息,请告诉我。

0 投票
1 回答
568 浏览

named-entity-recognition - 如何在 pycrfsuite.Tagger() 中使用边际概率法

文档对我一点帮助都没有。

在此处输入图像描述

首先,我尝试使用set(),但我不明白它是什么意思

为将来的调用设置一个实例

我可以使用下面描述的数据集结构成功地提供我的数据。所以,我不确定为什么我需要使用它提到的 set 。

scipy.sparse这是我调用nonzero()方法后的类型特征序列。

[['66=1', '240=1', '286=1', '347=10', '348=1'],...]

其中 ... 暗示与先前元素的结构相同

我遇到的第二个问题是 Tagger.probability() 和 Tagger.marginal()。

在此处输入图像描述

在此处输入图像描述

对于 Tagger.probability,我使用了与 Tagget.tag() 相同的输入,我得到了以下错误。

在此处输入图像描述

如果我的输入只是 alist而不是list of list. 我收到以下错误。

对于 Tagger.marginal(),我只能产生类似于 Tagger.probabilit() 显示的第一个错误的错误。

在此处输入图像描述

关于如何使用这三种方法的任何线索?请给我这三种方法的用例的简短示例。

我觉得这三种方法肯定有一些例子,但我找不到。我看对地方了吗。这是我正在阅读文档的网站

附加信息:我正在使用 CliNER。以防你们中的任何人熟悉它。

https://python-crfsuite.readthedocs.io/en/latest/pycrfsuite.html

0 投票
1 回答
1630 浏览

python-3.x - MacOS 上 python-crfsuite 的安装错误

我想使用为 python3 安装 crfsuite

但它会引发错误。

我还没有看到其他人有同样的问题,也许这是我看不到的显而易见的事情。我也是 MacOS 的新手,这在 Windows 上并没有发生在我身上。pip 版本是 19.2.3 。如果有人可以请帮助我。

0 投票
1 回答
223 浏览

python - sklearn-crfsuite 如何处理字符串?

我一直在关注sklearn-crfsuite 教程

用于训练 CRF 模型的特征示例如下所示。

如何sklearn-crfsuite将字符串转换melbourne为浮点数,因为 CRF 的特征应该只是浮点数。文档中的任何地方都没有提到这一点。

0 投票
1 回答
2330 浏览

python - 如何使用词嵌入作为 CRF (sklearn-crfsuite) 模型训练的特征

我想开发一个 NER 模型,我想在其中使用词嵌入功能来训练 CRF 模型。代码在没有词嵌入功能的情况下完美运行,但是当我将嵌入作为 CRF 训练的功能插入时,收到错误消息。这是我的代码片段的一部分:

当我想训练 CRF 模型时,我收到了以下错误消息:

TypeError: only size-1 arrays can be converted to Python scalars

谁能建议我如何使用词嵌入向量来训练 CRF 模型?

0 投票
1 回答
67 浏览

python - crfsuite中文本特征的数值转换

我正在查看 crfsuite-python 文档中提供的示例代码,它具有以下用于特征定义的代码。

我知道诸如 isupper() 之类的特征可以是 0 或 1,但是对于诸如 word[-2:] 之类的特征,它们是字符,它们如何转换为数字术语?