我正在尝试使用scikit-surprise模块来构建推荐系统,但是在编译时出现了错误。
我收到ImportError:无法导入名称“ Reader”错误
我的课如下
import pandas as pd
from surprise import Reader, Dataset
userReviewsFilePath ="UserReviewsFirst5000WithHeadings.csv"
ratings = pd.read_csv(userReviewsFilePath) # reading data in pandas df
ratings_dict = {'recipeID': list(ratings.recipeID),
'rating': list(ratings.rating),
'userID': list(ratings.userID)}
df = pd.DataFrame(ratings_dict)
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(df[['recipeID', 'rating', 'userID']], reader)
pip show表示已安装1.0.6版本
答案 0 :(得分:2)
我认为您的问题来自于安装...我安装了“惊喜”,并通过了您的代码,它成功了:
import pandas as pd
from surprise import Reader, Dataset
print(Reader) # or just print(surprise) if you import surprise
退出:
<class 'surprise.reader.Reader'>
首先重新安装惊喜并告诉我们。
如果您有多个版本的python,请执行以下操作:
which pip
看看您是否在使用的python版本上安装了Surprise
答案 1 :(得分:0)
我认为它位于surprise.reader
:https://surprise.readthedocs.io/en/stable/reader.html
您的代码应为:
from surprise.reader import Reader
from surprise.dataset import Dataset
编辑:我再次检查了似乎与此相反的说明,并提供了原始代码作为正确的示例。 https://surprise.readthedocs.io/en/stable/getting_started.html#getting-started
那么也许他们添加了自己的快捷方式?无论哪种方式,对不起,这似乎不是正确的解决方案。 (除非有效,在这种情况下,他们的指示可能已过时。)
编辑2:他们确实为其加上了别名,因此“来自意外导入阅读器”确实应该起作用:https://github.com/NicolasHug/Surprise/blob/master/surprise/init.py#L19
答案 2 :(得分:0)
我认为您需要做
from surprise.reader import Reader