【发布时间】:2020-07-06 12:29:12
【问题描述】:
我过去曾使用回归和分类来训练、测试和做出预测。现在,我正在查看一些 NLP 示例代码,一切运行良好,但最后,我希望根据“文本”字段中包含的内容来预测“评分”分数。也许 NLP 不能做到这一点,但它似乎应该是可行的。这是我正在测试的代码。
from sklearn.feature_extraction.text import TfidfVectorizer
tf=TfidfVectorizer()
text_tf= tf.fit_transform(df['review_text'])
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(text_tf, df['reviews.rating'], test_size=0.3, random_state=123)
from sklearn.naive_bayes import MultinomialNB
from sklearn import metrics
# Model Generation Using Multinomial Naive Bayes
clf = MultinomialNB().fit(X_train, y_train)
predicted= clf.predict(X_test)
print("MultinomialNB Accuracy:",metrics.accuracy_score(y_test, predicted))
# around 7% accurate...
现在,基于特定文本,我想预测客户的评分。
y_predicted = clf.predict(text_tf["Didnt know how much i'd use a kindle so went for the lower end. im happy with it, even if its a little dark"])
然后我得到这个错误:IndexError: Index dimension must be <= 2
这个实际评论的实际评级是 4。我期待 'y_predicted' 给我一个 4。也许有一些其他库可以处理这种事情。再次,我认为这应该是可行的。想法?有什么建议吗?
【问题讨论】:
-
您的标题、正文和结论之间似乎没有任何联系。是的,可以预测收视率。是的,这是可行的。不,它不会使这个库不符合这项任务的要求。您的错误是索引错误,仅此而已。它没有说明任务的可能性。你确定你可以像字典一样索引
TfidfVectorizer吗?
标签: python python-3.x nlp tfidfvectorizer