2017-05-25 7 views
1

に私のコードをfloat型に文字列を変換できませんでしたが、次のとおりです。とValueError:パンダ

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) 

私はエラーを取得する:ValueError: could not convert string to float:

は、私は私のコードが動作することをどのような変更を行うことができますか?

+0

'data.info()とは何ですか?すべてのデータは数値ですか? – jezrael

+0

いいえ これも文字列で構成されています。 X.phraseには文字列データがあります。 Y.Sentimentに数値データがあります。 –

答えて

1

documentationに記載されているように、scikit-learnのMultinomialNBにテキストデータを渡すことはできません。

scikit-learnのアルゴリズムは、テキストデータで直接動作するものはありません。必要な出力を得るには、いくつかの前処理が必要です。バギングやトークン化などのテクニックを使用して、まずテキストデータから特徴を抽出する必要があります。より理解しやすいように、linkをご覧ください。

また、あなたのようなユースケースについては、NLTKをご覧ください。