使用NLTK ieer或conll2000语料库训练NER的语料库

时间:2017-04-19 07:54:21

标签: python nltk named-entity-recognition

我一直在尝试为特定域和新实体训练名称实体识别模型。似乎没有一个完整的合适管道,并且需要使用不同的包。

我想给NLTK一个机会。我的问题是,如何训练NLTK NER使用ieer语料库对新实体进行分类和匹配?

我当然会提供IOB格式的训练数据,如:

$('#thedate').datepicker({
    minDate: "+1",
    dateFormat: 'dd-mm-yy'
});
$('#thedate').datepicker("setDate", "+1");

我想我必须自己标记代币。

当我有一个这种格式的文本文件时,我该怎么办?用ieer语料库或者用更好的语言训练我的数据的步骤是什么,conll2000?

我知道那里有一些文档,但是在我有一个训练语料库标记后,我不清楚该怎么做。

我想去NLTK,因为我想使用 relextract()函数。

请任何建议。

由于

1 个答案:

答案 0 :(得分:1)

nltk提供您所需的一切。阅读nltk书的第6章,Learning to Classify Text。它为您提供了一个分类的工作示例。然后研究Chapter 7中的第2节和第3节,它们将向您展示如何使用IOB文本并编写分块分类器。虽然示例应用程序不是命名实体识别,但代码示例几乎不需要更改工作(当然,您需要一个自定义功能函数才能获得不错的性能。)

您还可以使用nltk的标记器(或其他标记器)将POS标记添加到您的语料库中,或者您可以抓住机会尝试在没有词性标记的情况下训练数据分类器(只是IOB命名实体)类别)。我的猜测是,POS标记会提高性能,如果在训练数据上使用相同的POS标记器进行评估(并最终用于生产),那么实际情况会好得多。