我的数据集是餐厅点评,有两栏评论并赞过。 根据评论,它会显示他们是否喜欢这家餐厅
第一步,我清理了NLP中的数据。第二步,使用了如下所示的词袋模型。
from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer(max_features = 1500)
X = cv.fit_transform(corpus).toarray()
y = dataset.iloc[:, 1].values
根据我的数据集,以上给出的X为1500列,其中0列为1,1000列为1行。
我预测如下
y_pred = classifier.predict(X_test)
所以现在我以“食物很好”来复习,如何预测他们是否喜欢它。要预测的唯一值。
请帮助我。如果需要其他信息,请告诉我。
谢谢
答案 0 :(得分:1)
对于培训和测试,这里是一个简单的示例:
培训:
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
text = ["This is good place","Hyatt is awesome hotel"]
count_vect = CountVectorizer()
tfidf_transformer = TfidfTransformer()
X_train_counts = count_vect.fit_transform(text)
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
pd.DataFrame(X_train_tfidf.todense(), columns = count_vect.get_feature_names())
# Now apply any classification u want to on top of this data-set
正在测试:
注意:使用与训练中相同的变换:
new = ["I like the ambiance of this hotel "]
pd.DataFrame(tfidf_transformer.transform(count_vect.transform(new)).todense(),
columns = count_vect.get_feature_names())
现在在此之上应用model.predict。
答案 1 :(得分:1)
您需要做的就是先申请cv.transform
,就像这样:
>>> test = ['Food was good']
>>> test_vec = cv.transform(test)
>>> classifier.predict(test_vec)
# returns predicted class
答案 2 :(得分:0)
您还可以使用sklearn管道。
from sklearn.pipeline import Pipeline
model_pipeline = Pipeline([('vect', CountVectorizer()),('tfidf', TfidfTransformer()), ('model', classifier())]) #call the Model which you want to use
model_pipeline.fit_transform(x,y) # here x is your text data, and y is going to be your target
model_pipeline.predict(['Food was good"']) # predict your new sentence