Ich versuche, einen Naiven Bayes Classifier zu trainieren, und ich habe Probleme mit den Daten. Ich plane, es für extraktive Textzusammenfassung zu verwenden.Naive Bayes Klassifikator extrahierende Zusammenfassung
Example_Input: It was a sunny day. The weather was nice and the birds were singing.
Example_Output: The weather was nice and the birds were singing.
Ich habe einen Datensatz, den ich verwenden möchte und in jedem Dokument gibt es mindestens 1 Satz für die Zusammenfassung.
Ich entschied mich, sklearn zu verwenden, aber ich weiß nicht, wie ich die Daten darstellen soll, die ich habe. Nämlich X und y.
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB().fit(X, y)
in der Nähe von meinem Kopf ist es so zu machen:
X = [
'It was a sunny day. The weather was nice and the birds were singing.',
'I like trains. Hi, again.'
]
y = [
[0,1],
[1,0]
]
wo die Zielwerte 1 bedeuten - in der Zusammenfassung und 0 - nicht enthalten. Dies ergibt unglücklicherweise eine schlechte Formausnahme, da erwartet wird, dass y ein 1-d-Array ist. Ich kann mir keinen Weg vorstellen, sie als solche darzustellen. Bitte helfen Sie mir.
BTW, ich verwende nicht die String-Werte in X
direkt, sondern sie als Vektoren mit CountVectorizer
und TfidfTransformer
von sklearn.
Danke für Ihre Antwort. Es wird funktionieren und ist sicherlich besser als meins, aber auf diese Weise wird der Klassifikator den Platz des Satzes im Dokument nicht berücksichtigen, da alles als eins betrachtet wird. Gibt es einen Weg, den ich auch einbeziehen kann? – Nikola
@nikola nehmen Satz mit mehreren Zeilen als Eingabe und teilen Sie es mit Nltk Satz Tokenizer und vorherzusagen, aber nur diejenigen Sätze auf den Ausgang, die Vorhersage der Klasse 1, d – abhinav