如何增量训练nltk ClassFi

2024-05-15 01:36:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行一个项目,使用pythonnltk模块和naivebayes分类器对文本片段进行分类。我能够训练语料库数据和分类另一组数据,但希望在初始训练后将额外的训练信息输入分类器。在

如果我没弄错的话,似乎没有办法做到这一点NaiveBayesClassifier.train方法需要一组完整的训练数据。有没有办法在不输入原始特征集的情况下添加训练数据?在

我愿意接受包括其他分类器在内的建议,这些分类器可以随着时间的推移接受新的培训数据。在


Tags: 模块数据项目方法文本信息分类器分类
3条回答

我知道有两种选择:

1)定期对分类器重新训练新数据。您将在一个语料库中积累新的训练数据(已经包含原始训练数据),然后每隔几个小时,重新训练并重新加载分类器。这可能是最简单的解决办法。在

2)将内部模型外部化,然后手动更新。通过给NaiveBayesClassifierfeature_probdist,可以直接创建NaiveBayesClassifier。您可以单独创建它们,将它们传递给NaiveBayesClassifier,然后在新数据到来时更新它们。分类器将立即使用这些新数据。您必须查看train方法,了解如何更新概率分布的详细信息。在

正如雅各所说,第二种方法是正确的 希望有人能写一个代码

https://baali.wordpress.com/2012/01/25/incrementally-training-nltk-classifier/

我只是在学NLTK,如果我错了请纠正我。这使用的是NLTK的python3分支,这可能不兼容。在

NaiveBayesClassifier实例有一个update()方法,它似乎添加到训练数据中:

from textblob.classifiers import NaiveBayesClassifier

train = [
    ('training test totally tubular', 't'),
]

cl = NaiveBayesClassifier(train)
cl.update([('super speeding special sport', 's')])

print('t', cl.classify('tubular test'))
print('s', cl.classify('super special'))

打印出来:

^{pr2}$

相关问题 更多 >

    热门问题