scikit-surprise: python не может найти модуль, даже если pip перечисляет его как установленный - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь использовать модуль 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)

Пип-шоу говорит, что установлена ​​версия 1.0.6

Ответы [ 3 ]

0 голосов
/ 22 февраля 2019

Я думаю, вам нужно сделать

from surprise.reader import Reader

0 голосов
/ 22 февраля 2019

Я думаю, что ваша проблема связана с установкой ... Я установил "сюрприз" и прошёл ваш код, и он заработал:

import pandas as pd
from surprise import Reader, Dataset
print(Reader) # or just print(surprise) if you import surprise

out:

<class 'surprise.reader.Reader'>

Начните с-установить сюрприз и сообщить нам.

Если у вас более одной версии python, выполните:

which pip

, чтобы проверить, установлена ​​ли сюрприз на используемой версии python

0 голосов
/ 22 февраля 2019

Я думаю, что это в 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

...