Mit Hilfe von MultinomialNB()
von Scikit lernen Sie in Python, Dokumente nicht nur nach Wort-Features in den Dokumenten sondern auch im Sentiment-Wörterbuch (das heißt nur Wortlisten nicht Python-Datentyp) zu klassifizieren.Hinzufügen von Funktionen zu Multinomial Naive Bayes Klassifizierer - Python
Angenommen, diese sind Dokumente
train_data = ['i hate who you welcome for','i adore him with all my heart','i can not forget his warmest welcome for me','please forget all these things! this house smells really weird','his experience helps a lot to complete all these tedious things', 'just ok', 'nothing+special today']
train_labels = ['Nega','Posi','Posi','Nega','Posi','Other','Other']
psentidict = ['welcome','adore','helps','complete','fantastic']
nsentidict = ['hate','weird','tedious','forget','abhor']
osentidict = ['ok','nothing+special']
trainieren ich die Listen wie diese unter
from sklearn import naive_bayes
from sklearn.pipeline import Pipeline
text_clf = Pipeline([('vect', CountVectorizer()),
('clf', naive_bayes.MultinomialNB(alpha = 1.0)),])
text_clf = text_clf.fit(train_data, train_labels)
trainieren kann, auch wenn ich die Daten durch Berechnung aller Token nach entsprechenden Etiketten trainiert, ich will mein Sentiment-Wörterbuch als zusätzliche klassifizierende Funktionen zu verwenden.
Dies ist, weil mit den Funktionen, die durch die Wörterbücher trainiert werden, es möglich ist, OOV (außerhalb des Wortschatzes) vorherzusagen. Nur mit ungeschickter Laplace-Glättung (alpha = 1.0)
würde die Gesamtgenauigkeit stark eingeschränkt sein.
test_data = 'it is fantastic'
predicted_labels = text_clf.predict(test_data)
Mit dem Wörterbuch Funktion hinzugefügt, wäre es möglich, einen Satz über vorherzusagen, obwohl jeder einzelne Token aus Schulungsunterlagen ist.
Wie können die Funktionen psentidict
, nsentidict
und osentidict
zum Multinomial Naive Bayes Klassifizierer hinzugefügt werden? (Das Training von Dokumenten kann die Messung verfälschen, daher finde ich es besser, einen anderen Weg zu finden)