Как я могу классифицировать данные по нескольким категориям, используя Наивный Байес? - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь классифицировать предложения по различным параметрам (их восемь), но я получаю эту ошибку, когда запускаю свой код.Извините, я действительно новичок в Python, поэтому я не совсем уверен, что здесь происходит.

ValueError                                
Traceback (most recent call last)
<ipython-input-66-40fb2c79238c> in <module>
      18 test_data = data[4800:]
      19 
--->  20 classfier= nltk.NaiveBayesClassifier.train(train_data)
      21 print(nltk.classify.accuracy(classifier, test_data)) 


  ~/anaconda3/lib/python3.7/site-packages/nltk/classify/naivebayes.py in train(cls, labeled_featuresets, estimator)
204         # Count up how many times each feature value occurred, given
205         # the label and featurename.
--> 206         for featureset, label in labeled_featuresets:
207             label_freqdist[label] += 1
208             for fname, fval in featureset.items():

ValueError: too many values to unpack (expected 2)

Это мой оригинальный код:

import nltk
import pandas as pd
import csv
import numpy as np
from sklearn.model_selection import train_test_split

import pandas as pd
import numpy as np

import random

with open("/Users/mac/Documents/Transcribed.rtf", "rb") as f:
data = f.read().split()

random.shuffle(data)

train_data = data[:1200]
test_data = data[4800:]

classfier= nltk.NaiveBayesClassifier.train(train_data)
print(nltk.classify.accuracy(classifier, test_data))

1 Ответ

0 голосов
/ 03 января 2019

Из того, что я вижу, проблема в строке 206:

  ~/anaconda3/lib/python3.7/site-packages/nltk/classify/naivebayes.py in train(cls, labeled_featuresets, estimator)
204         # Count up how many times each feature value occurred, given
205         # the label and featurename.
--> 206         for featureset, label in labeled_featuresets:
207             label_freqdist[label] += 1
208             for fname, fval in featureset.items():

ValueError: too many values to unpack (expected 2)

Ошибка говорит о том, что labeled_featuresets, как вы ожидаете в for featureset, label in labeled_featuresets. Итак, вам нужно распечатать содержимое labeled_featureset и посмотреть, сколько у него измерений.

...