Hey Ich versuche, einen Naive Bayes-Klassifikator zu verwenden, um etwas Text zu klassifizieren. Ich benutze NLTK. Wenn ich den Klassifikator mit der Methode classify() teste, gibt er immer die korrekte Klassifizierung für das erste Element und die gleiche Klassifizierung für jede andere von mir klassifizierte Textzeile zurück. Das folgende ist mein Code:Naive Bayes Classifier Fehler
from nltk.corpus import movie_reviews
from nltk.tokenize import word_tokenize
import nltk
import random
import nltk.data
documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
random.shuffle(documents)
all_words = nltk.FreqDist(w.lower() for w in movie_reviews.words())
word_features = all_words.keys()[:2000]
def bag_of_words(words):
return dict([word,True] for word in words)
def document_features(document):
document_words = set(document)
features = {}
for word in word_features:
features['contains(%s)' % word] = (word in document_words)
return features
featuresets = [(document_features(d), c) for (d,c) in documents]
train_set, test_set = featuresets[100:], featuresets[:100]
classifier = nltk.NaiveBayesClassifier.train(train_set)
text1="i love this city"
text2="i hate this city"
feats1=bag_of_words(word_tokenize(text1))
feats2=bag_of_words(word_tokenize(text2))
print classifier.classify(feats1)
print classifier.classify(feats2)
Dieser Code po druckt zweimal, wo, als ob ich die letzten 2 Zeilen des Codes klappte es neg zweimal gedruckt wird. Kann jemand helfen?
Hallo, do u zur Lösung dieses Problems eine Idee haben, http://stackoverflow.com/questions/23056686/bayes-classifier –