0

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)

Antwort

1

Ich glaube, dass es keine andere Möglichkeit gibt, die Merkmale Ihres Multinomial Naive Bayes Modells einzubeziehen. Das liegt einfach daran, dass Sie den Features eine Art Label zuordnen möchten (sagen Sie "positiv" für die Werte in psentidict usw.). Dies kann nur erreicht werden, indem Sie Ihr Modell mit dem genannten Paar von Merkmalen und Beschriftungen trainieren. Was Sie tun können, ist, das Modell zu verbessern, indem Sie Sätze mit den genannten Merkmalen erstellen, anstatt die Wörter direkt zu verwenden, wie zum Beispiel für das Wort "Hass", stattdessen können Sie "Ich hasse dich von ganzem Herzen" verwenden Fügen Sie die Stimmung als "negativ" hinzu, anstatt nur das Paar "Hass" zu verwenden: "negativ". Sie haben also mehr Beispiele für Ihr Dataset erstellt.

Hope this link hilft.

Verwandte Themen