O código atualmente em nb-python está hardcoded para usar 2 classes, chamadas 'pos' e 'neg'. Não é difícil generalizar isso para qualquer número de classes, de qualquer nome. É preciso incluir um campo classes no objeto NaiveBayesClassifier chamado classes, passado como parâmetro no construtor; isso deve ser uma lista dos nomes das classes. train_positive e train_positive podem ser eliminadas e ter um método train_class onde é passada a classe para qual vai ser feita o treinamento, junto com o corpus. O método train() deve chamar train_class para cada classe e depois calculate_probabilities(); não faz sentido fazer o treinamento parcialmente, então o único método chamado de fora deve ser train().
O código atualmente em nb-python está hardcoded para usar 2 classes, chamadas 'pos' e 'neg'. Não é difícil generalizar isso para qualquer número de classes, de qualquer nome. É preciso incluir um campo classes no objeto NaiveBayesClassifier chamado classes, passado como parâmetro no construtor; isso deve ser uma lista dos nomes das classes. train_positive e train_positive podem ser eliminadas e ter um método train_class onde é passada a classe para qual vai ser feita o treinamento, junto com o corpus. O método train() deve chamar train_class para cada classe e depois calculate_probabilities(); não faz sentido fazer o treinamento parcialmente, então o único método chamado de fora deve ser train().