Ich habe an Sentiment Analyse mit Sklearn gearbeitet. Ich habe eine CSV-Datei von 3000 ungeraden Bewertungen und ich trainiere meinen Klassifikator auf 60% dieser Bewertungen. Wenn ich versuche, eine benutzerdefinierte Überprüfung zu geben, für die Klassifizierer das Etikett mit CountVectorizer.transform(), um vorherzusagen, es wird folgende Fehler wirft:CountVectorizer funktioniert nicht für Testzeichenfolge in sklearn
Anaconda\lib\site-packages\sklearn\feature_extraction\text.py", line 864, in transform
raise ValueError("Vocabulary wasn't fitted or is empty!")
ValueError: Vocabulary wasn't fitted or is empty!
Bitte helfen Sie mir, dies ist der Code den Trainingssatz für die Montage:
def preprocess():
data,target = load_file()
count_vectorizer = CountVectorizer(binary='true',min_df=1)
data = count_vectorizer.fit_transform(data)
tfidf_data = TfidfTransformer(use_idf=False).fit_transform(data)
return tfidf_data
Und das ist der Code für die Vorhersage der Stimmung einer benutzerdefinierten Bewertung:
def customQuestionScorer(question, clf):
X_new_tfidf = vectorizer.transform([question]).toarray()
print (clf.predict(X_new_tfidf))
q = "I really like this movie"
customQuestionScorer(q,classifier)
'mn = MultinomialNB()' 'cv = CounterVectorizer()' '# Daten ist Ihr Beispiel, oder Test, Daten #' 'X = cv.fit_transform (['' .join (row) für row in data]) ' ' #y verteilt nur Ihre Daten in Kategorien # ' ' y = ["irgendein zufälliges Ding", "irgendein zufälliges anderes Ding"] ' ' mn.fit (X, y) .predict_proba (cv.transform (['' .join ([Test])])) ' So etwas sollte für Sie arbeiten. – NationWidePants
Sie müssen auch Fälle lösen, in denen keine Daten vorhanden sind. Dieses Modell hat Probleme mit 'NULL'-Mengen. – NationWidePants