2017-05-25 4 views
1

Mein Code ist:Valueerror: konnte nicht Zeichenfolge konvertieren in Panda zu schweben

import pandas as pd 
data = pd.read_table('train.tsv') 

X=data.Phrase 
Y=data.Sentiment 
from sklearn import cross_validation 
X_train,X_test,Y_train,Y_test=cross_validation.train_test_split(X,Y,test_size=0.2,random_state=0) 
from sklearn.naive_bayes import MultinomialNB 
clf = MultinomialNB() 
clf.fit(X,Y) 

ich den Fehler: ValueError: could not convert string to float:

Welche Änderungen kann ich, dass mein Code machen funktioniert?

+0

Was ist 'data.info()'? Alle Daten sind numerisch? – jezrael

+0

nein es besteht auch aus Strings. X.phrase hat String-Daten. Y.Sentiment hat numerische Daten. –

Antwort

1

Sie können Textdaten nicht in MultinomialNB von scikit-learn wie in documentation angegeben eingeben.

Keiner der Algorithmen in scikit-learn arbeitet direkt mit Textdaten. Sie müssen eine Vorverarbeitung durchführen, um die gewünschte Ausgabe zu erhalten. Sie müssen zuerst die Features aus den Textdaten extrahieren, indem Sie Techniken wie "Bagging" oder "Tokenizing" verwenden. Werfen Sie einen Blick auf diese link zum besseren Verständnis.

Sie könnten auch unter Verwendung NLTK für solche Anwendungsfälle wie Ihre aussehen.

Verwandte Themen