问题标签 [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.

0 投票
1 回答
102 浏览

machine-learning - 使用 CRF 识别文档的特定部分

我的目标是给定一组文档(主要是金融领域),我们需要识别其中的特定部分,例如公司名称或文档类型等。

假设培训是在 100 份文件上完成的。显然,我会有一个倾斜的类分布(None 在大约 99.9% 的示例中占主导地位)。我计划使用 CRF(Sklearn 上的 CRFsuite)并阅读了必要的文献。我需要一些关于以下方面的建议:

  • 数据集是否足以训练 CRF?考虑到每个文档可以分成大约 100 个标记(每个标记是一个训练实例),我们总共会得到 10000 个实例。

    • 训练 CRF 的数据集是否会过于倾斜?例如:对于 100 个文档,我将有大约 400 个给定类的实例和大约 8000 个无实例
0 投票
1 回答
120 浏览

java - Mallet SimpleTagger 不同数量的谓词

我正在尝试此处SimpleTagger提供的教程。我已经运行了与页面上提供的完全相同的命令,即

java -cp "class:lib/mallet-deps.jar" cc.mallet.fst.SimpleTagger --train true --model-file nouncrf sample

java -cp "class:lib/mallet-deps.jar" cc.mallet.fst.SimpleTagger --model-file nouncrf stest.

这是我的samplestest文件。

$ cat sample

$ cat stest

但是,我的输出与他们页面上的输出不同。这是我得到的输出。

我的问题是

  1. “谓词的数量”是什么意思?
  2. 为什么我得到 9 个谓词,而官方消息来源声称相同输入文件有 5 个谓词?

如果这很重要,我正在使用 Mallet 2.0.8。

0 投票
1 回答
615 浏览

java - Mallet CRF 序列分类训练数据格式

0 投票
1 回答
349 浏览

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

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

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

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

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

0 投票
2 回答
3720 浏览

opennlp - 如何创建基于地名词典的命名实体识别(NER)系统?

我已经尝试过许多 NER 工具(OpenNLP、Stanford NER、LingPipe、Dbpedia Spotlight 等)。

但是,我经常回避的是一个基于地名词典/字典的 NER 系统,其中我的自由文本与预定义的实体名称列表匹配,并返回潜在的匹配项。

通过这种方式,我可以拥有各种列表,例如 PERSON、ORGANIZATION 等。我可以动态更改列表并获得不同的提取。这将极大地减少训练时间(因为它们中的大多数都基于最大熵模型,因此它们通常包括标记大型数据集、训练模型等)。

我使用 OpenNLP POS 标记器构建了一个非常粗糙的基于地名词典的 NER 系统,我曾经从中取出所有专有名词 (NP),然后在从我的列表创建的 Lucene 索引中查找它们。然而,这给了我很多误报。例如。如果我的 lucene 索引有“Samsung Electronics”并且我的 POS 标记器给了我“Electronics”作为 NP,我的方法将返回“Samsung Electronics”,因为我正在进行部分匹配。

我还读到人们谈论使用地名词典作为 CRF 算法中的一个功能。但我永远无法理解这种做法

你们中的任何人都可以指导我采用一种清晰而可靠的方法,在地名词典和字典上构建 NER 吗?

0 投票
1 回答
6735 浏览

scikit-learn - 在 Keras 中使用 CRF 的 LSTM

我真的不明白如何结合 sklearn_crfsuite 和 Keras。

我必须制作一个经典的 LSTM,而不是最后一个 Activation,我使用 sklearn_crfsuite?

有人有例子吗?

谢谢,

0 投票
1 回答
170 浏览

nlp - CRF++:任何人都明白 CRF 模型文件中的浮点数是什么意思

当您通过 crf_learn 使用 -t 选项构建模型文件时:crf_learn template train_data -t model

然后它会生成两个模型文件,其中一个是model.txt。

谁能告诉浮点数是什么意思?

请参见以下示例:

版本:100 成本因素:1 最大:40 xsize:1

U00:%x[0,0] B

36 B 20 U00:、 26 U00:か 18 U00:が 22 U00:こ 8 U00:た 10 U00:ち 2 U00:っ 4 U00:て 34 U00:に 12 U00:の 0 U00:よ 28 U00:ら24 U00:れ 32 U00:上 14 U00:世 16 U00:代 30 U00:地 6 U00:私</p>

-0.3022268562246992 0.3022268562246989 -0.3629407244093161 0.3629407244093156 -0.3327259487028221 0.3327259487028215 0.3462799099537973 -0.3462799099537980 0.3452020097664334 -0.3452020097664336 -0.3218750203631590 0.3218750203631575 0.0376944272290242 -0.0376944272290280 0.3329631783491211 -0.3329631783491230 -0.3092967308014029 0.3092967308014015 0.3413769126433928 -0.3413769126433950 0.3786782765859961 -0.3786782765859980 0.5208645073272351 -0.5208645073272384 -0.3261580548802839 0.3261580548802814 -0.3615756495615902 0.3615756495615884 -0.3248593224319323 0.3248593224319312 0.3281895709166696 -0.3281895709166719 -0.3040331359589971 0.3040331359589951 0.2836939567332580 -0.2836939567332600 -0.1530917919770705 -0.1613508585854637 0.4245699543724943 -09901273038

我的理解是:每个浮点数应该对应每个模板,例如:第一个浮点数“-0.3022268562246992”应该对应“36 B”。但是为什么浮点数的数量是模板数量的两倍呢?这些浮点数是什么意思?

非常感谢,

帅华

0 投票
1 回答
463 浏览

python-3.x - 构建 CRF-RNN tensorflow 实现

在尝试在 tensorflow 中将 CRF 实现为 RNN 时,根据此处的说明:https ://github.com/liangy1969/CRF-RNN_Tensorflow ,我在下面遇到了错误。

在我上面给出的链接中,liangy1969 已经提供了 permutohedral.py 和 _permutohedral...pyd,但是直接尝试使用它们在这里给出了问题:https ://github.com/liangy1969/CRF-RNN_Tensorflow/issues/1它是得出结论,原因可能是文件是在win64中编译的,每个文件都需要自己构建。但是在构建时我得到了上面的错误。

另外,在 setup.py 中,这个家伙给出了以下声明: include_dirs=['$PYTHON_PATH/Lib/site-packages/numpy/core/include']

我在 site-packages 下找不到我的 python_path 或任何 numpy/core/include 但我在 /usr/local/lib/python3.5/dist-packages 下找到了 numpy/core/include 所以我从 site-包到 dist 包。我不知道这是否正确,不幸的是我还不是 python 或 linux 环境的专家。可能会发生我的一个非常愚蠢的错误,以防万一。

我正在使用 python3(3.5)和 tensorflow r1.3(如果需要)和 ubuntu 16.04。任何人都可以帮忙吗?谢谢。

0 投票
1 回答
321 浏览

stanford-nlp - 斯坦福 CRFClassifier 性能评估输出

我正在关注这个常见问题解答https://nlp.stanford.edu/software/crf-faq.shtml来训练我自己的分类器,我注意到性能评估输出与结果不匹配(或者至少不以我的方式预计)。特别是本节

CRFClassifier tagged 16119 words in 1 documents at 13824.19 words per second. Entity P R F1 TP FP FN MYLABEL 1.0000 0.9961 0.9980 255 0 1 Totals 1.0000 0.9961 0.9980 255 0 1

我希望TP是预测标签与黄金标签匹配的FP所有实例,MYLABEL是预测但黄金标签是 的O所有实例,是预测但黄金标签是FN的所有实例。OMYLABEL

如果我自己根据程序的输出计算这些数字,我会得到完全不同的数字,与程序打印的内容无关。我已经用各种测试文件试过了。我在用着Stanford NER - v3.7.0 - 2016-10-31

我错过了什么吗?

0 投票
1 回答
421 浏览

nlp - 训练 Stanford-NER-CRF,控制迭代次数和正则化(L1,L2)参数

我正在查看 StanfordNER 文档/常见问题解答,但我找不到与指定训练中的最大迭代次数以及正则化参数 L1 和 L2 的值相关的任何内容。

我看到了一个建议设置的答案,例如:

maxIterations=10

在属性文件中,但没有给出任何结果。

可以设置这些参数吗?