问题标签 [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.
machine-learning - 如何在 python crfsuite 中使用 Conll 2003 语料库
我已经下载了 Conll 2003 语料库(“eng.train”)。我想用它来使用 python crfsuite 训练来提取实体。但我不知道如何加载这个文件进行训练。
我找到了这个例子,但它不适用于英语。
同样在未来,我想培训 POS 或位置以外的新实体。我该如何添加这些。
还请建议如何处理多个单词。
python - CRFSuite 有多少训练数据?
嗨,我正在使用 crfsuite 训练一个 crf,其中包含一些我使用拉丁文本的示例数据。我用 O、PERSON 和 PLACE 标记了训练数据。当测试我的训练模型时,我得到的所有预测都是 O。我怀疑这是因为我没有足够的训练数据。我的训练基于 3760 字节。(我知道这是一点点!-它会使 CRF 不起作用吗?)
scikit-learn - sklearn-crf 中训练算法的区别
我正在训练 CRF 来做一些标记工作。原始输入有大约 180 万字,我正在尝试不同的标签集和功能以获得最佳结果。但是,现在的训练过程很长。调整参数真的很痛苦。
我想知道不同训练算法之间的效率有什么区别:lbfgs、l2sgd、ap、pa 和 arow。训练模型的快速算法是什么?目前我正在使用 lbfgs。
另外我很好奇如果我购买更好的 CPU 或 RAM,训练会更快吗?我正在使用 I7-9700k 和 32GB RAM 进行训练。sklearn 是否受益于超线程?如果是,我可以购买新的 9900k,因为 9700k 不支持超线程。
上面的代码花了我 422 分钟。我有 6 个标签和 10 个功能。我仍然想继续使用更多功能和不同的标签集进行实验。如何加快训练速度?
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 的内存才能做到这一点。我的特征结构错了吗?我如何让模型停止猜测模式,这就是正在发生的事情吗?帮助将不胜感激,如果我需要向问题添加更多信息,请告诉我。
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
python-3.x - MacOS 上 python-crfsuite 的安装错误
我想使用为 python3 安装 crfsuite
但它会引发错误。
我还没有看到其他人有同样的问题,也许这是我看不到的显而易见的事情。我也是 MacOS 的新手,这在 Windows 上并没有发生在我身上。pip 版本是 19.2.3 。如果有人可以请帮助我。
python - sklearn-crfsuite 如何处理字符串?
我一直在关注sklearn-crfsuite
教程。
用于训练 CRF 模型的特征示例如下所示。
如何sklearn-crfsuite
将字符串转换melbourne
为浮点数,因为 CRF 的特征应该只是浮点数。文档中的任何地方都没有提到这一点。
python - 如何使用词嵌入作为 CRF (sklearn-crfsuite) 模型训练的特征
我想开发一个 NER 模型,我想在其中使用词嵌入功能来训练 CRF 模型。代码在没有词嵌入功能的情况下完美运行,但是当我将嵌入作为 CRF 训练的功能插入时,收到错误消息。这是我的代码片段的一部分:
当我想训练 CRF 模型时,我收到了以下错误消息:
TypeError: only size-1 arrays can be converted to Python scalars
谁能建议我如何使用词嵌入向量来训练 CRF 模型?
python - crfsuite中文本特征的数值转换
我正在查看 crfsuite-python 文档中提供的示例代码,它具有以下用于特征定义的代码。
我知道诸如 isupper() 之类的特征可以是 0 或 1,但是对于诸如 word[-2:] 之类的特征,它们是字符,它们如何转换为数字术语?