2017-04-19 84 views
0

我一直在尝试为特定领域和新实体培训名称实体识别模型。似乎没有一个完整的合适的管道,因此需要使用不同的软件包。NER与NLTK ieer或conll2000语料库的火车语料库

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

我当然会提供训练数据与像IOB-格式:

We PRP B-NP 
saw VBD O 
the DT B-NP 
yellow JJ I-NP 
dog NN I-NP 

我想我将不得不自己来标记令牌。

接下来我该如何处理这种格式的文本文件,使用ieer语料库或者更好的conll2000来训练我的数据的步骤是什么?

我知道那里有一些文档,但是我不清楚在培训语料库上加了标签后该怎么办。

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

请有任何建议。

感谢

回答

1

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

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

+0

感谢Alexis的信息,我知道这些文档,但是我仍然无法弄清楚一旦你有了培训数据,如何使用培训结果。你能提供一些例子吗? –

+0

我引用的章节是非常完整的教程。如果您遇到困难,请发布您的代码(相关部分),并询问有关出错的步骤的具体问题。 – alexis

+0

我已经构建了自己的分类器,但仍遇到一些问题。我在这里发布了一个新问题:http://stackoverflow.com/questions/43662829/how-to-call-the-classifierbasedtagger-in-nltk很高兴听到一些推荐。 –