我的代码是:
import pandas as pddata = pd.read_table('train.tsv')X=data.PhraseY=data.Sentimentfrom sklearn import cross_validationX_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 MultinomialNBclf = MultinomialNB()clf.fit(X,Y)
我得到的错误是:ValueError: could not convert string to float:
我可以做哪些改动让我的代码能够工作?
回答:
根据其文档所述,您不能将文本数据直接传入scikit-learn的MultinomialNB中。
scikit-learn中的任何算法都不能直接处理文本数据。您需要进行一些预处理才能获得所需的输出。您需要首先使用诸如词袋或分词等技术从文本数据中提取特征。请查看这个链接以获得更好的理解。
您还可能需要考虑使用NLTK来处理您这样的用例。