我已经用 sklearn 训练了一个线性回归模型,获得 5 星评级,它已经足够好了。我已经使用 Doc2vec 创建了我的向量,并保存了该模型。然后我将线性回归模型保存到另一个文件中。我正在尝试做的是加载 Doc2vec 模型和线性回归模型并尝试预测另一个评论。
这个预测有一些很奇怪的地方:无论输入什么,它总是预测在 2.1-3.0 左右。
事情是,我有一个建议,它预测大约为 5(即 2.5 +/-)的平均值,但事实并非如此。我在训练模型时打印了测试数据的预测值和实际值,它们的范围通常为 1-5。所以我的想法是,代码的加载部分有问题。这是我的加载代码:
from gensim.models.doc2vec import Doc2Vec, TaggedDocument
from bs4 import BeautifulSoup
from joblib import dump, load
import pickle
import re
model = Doc2Vec.load('../vectors/750000/doc2vec_model')
def cleanText(text):
text = BeautifulSoup(text, "lxml").text
text = re.sub(r'\|\|\|', r' ', text)
text = re.sub(r'http\S+', r'<URL>', text)
text = re.sub(r'[^\w\s]','',text)
text = text.lower()
text = text.replace('x', '')
return text
review = cleanText("Horrible movie! I don't recommend it to anyone!").split()
vector = model.infer_vector(review)
pkl_filename = "../vectors/750000/linear_regression_model.joblib"
with open(pkl_filename, 'rb') as file:
linreg = pickle.load(file)
review_vector = vector.reshape(1,-1)
predict_star = linreg.predict(review_vector)
print(predict_star)
守着星空守着你
肥皂起泡泡
相关分类