使用 CRF 识别文档的特定部分
Posted
技术标签:
【中文标题】使用 CRF 识别文档的特定部分【英文标题】:Identifying specific parts of a document using CRF 【发布时间】:2017-11-09 03:17:37 【问题描述】:我的目标是给定一组文档(主要是金融领域),我们需要识别其中的特定部分,例如公司名称或文档类型等。
假设培训是在 100 份文档上完成的。显然,我会有一个倾斜的类分布(None 在大约 99.9% 的示例中占主导地位)。 我计划使用 CRF(Sklearn 上的 CRFsuite)并阅读了必要的文献。我需要一些关于以下方面的建议:
数据集是否足以训练 CRF?考虑到每个文档可以分成大约 100 个标记(每个标记是一个训练实例),我们总共会得到 10000 个实例。
数据集是否会过于偏斜而无法训练 CRF?例如:对于 100 个文档,我将有大约 400 个给定类的实例和大约 8000 个无实例【问题讨论】:
【参考方案1】:-
没有人知道,你必须在你的数据集上尝试它,检查结果质量,也许检查 CRF 模型(例如 https://github.com/TeamHG-Memex/eli5 支持 sklearn-crfsuite - 一个无耻的插件),尝试提出更好的功能或决定注释更多示例等。这只是一般的数据科学工作。数据集大小看起来偏低,但取决于数据的结构和特征的好坏,几百个文档可能足以开始。由于数据集较小,您可能需要在特征工程上投入更多时间。
我认为班级不平衡不是问题,至少它不太可能是您的主要问题。
【讨论】:
以上是关于使用 CRF 识别文档的特定部分的主要内容,如果未能解决你的问题,请参考以下文章
基于tensorflow的bilstm_crf的命名实体识别(数据集是msra命名实体识别数据集)