我是新的在nltk图书馆,我试图教我的分类器一些标签与我自己的语料库。NLTK MaxentClassifier与否定案例列车
为此,我有IOB标签像这样的文件:由
self.classifier = nltk.MaxentClassifier.train(train_set, algorithm='megam', trace=0)
How O
do B-MYTag
you I-MYTag
know O
, O
where B-MYTag
to O
park O
? O
(PS这仅仅是一个由样本...)
我这样做
,它的工作原理。
我的问题是如何训练我的classifier
负面情况。 所以我会有类似的文件与IOB标签,我会指定该文件设置错误。 (负重)
我该怎么做?
编辑:
例为负的情况将是:
How B-MYTag
do O
you O
know O
, O
where B-MYTag
to O
park O
? O
在那之后,我预计要记住,怎么可能不是一个MYTag ... 这样做的原因是,分类器学得更快。 如果我只能输入语句,程序会处理它,最后问我对结果是否满意。如果是,则将该文本添加到train_set
,否则将添加到negative_train_set
。通过这种方式,教授分类器会更容易,更快速。
你能举一个负面情况的例子吗?我怀疑这样做(概念上)与序列标签。我的意思是,你期望从错误的注释中学到什么?正面(B/I)和负面(O)类已经在给定的注释中表现出来了。 – lenz
您的编辑听起来像是在积极学习工作流程之后。当然,你可以手动完成:让分类器预测一些东西,手动校正标签,将其添加到训练集中,重新训练。你必须具体说明修正:如果你只说“这个句子中的标签是错误的”,分类器应该怎么知道前三个标签是坏的,但是例如。第四个(“知道”上的'O')是正确的? – lenz
请注意,如果您有大量训练集开始,然后按照我的建议手动添加一些手动校正的示例,则影响可能非常小。 – lenz