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

时间:2017-06-07 16:31:32

标签: machine-learning scikit-learn named-entity-recognition document-classification crf

我的目标是提供一组文件(主要是在金融领域),我们需要识别它的具体部分,如公司名称或文件类型等。

假设培训是在100个文件的拼音上完成的。显然我会有一个偏斜的类分布(在99.9%的例子中,None占主导地位)。 我计划使用CRF(Sklearn上的CRFsuite),并且已经完成了必要的文献。我需要在以下方面提出一些建议:

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

    • 数据集是否会因为训练CRF而过于倾斜?例如:对于100个文档,我将有大约400个给定类的实例和大约8000个无实例

1 个答案:

答案 0 :(得分:1)

  1. 没有人知道,你必须在你的数据集上尝试它,检查结果质量,也许检查CRF模型(例如https://github.com/TeamHG-Memex/eli5有sklearn-crfsuite支持 - 一个无耻的插件),尝试提出更好的功能或者决定注释更多的例子等。这只是一般的数据科学工作。数据集大小看起来较低,但取决于数据的结构化程度以及功能有多好,几百个文档可能足以启动。由于数据集很小,您可能需要在功能工程上投入更多时间。
  2. 我不认为课堂失衡是个问题,至少不太可能是你的主要问题。